Skip to content

Commit d148271

Browse files
🐛 fix(Integer): Fix and test squaring and power methods.
1 parent 1075c5c commit d148271

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/Integer.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,19 +218,19 @@ export class Integer {
218218

219219
ipown ( number ) {
220220
// TODO optimize but be careful with side effects
221-
return this.pown(other).move(this);
221+
return this.pown(number).move(this);
222222
}
223223

224224
square ( ) {
225225
// TODO optimize but be careful with side effects
226226
// TODO use this.mul(this) instead?
227-
return this.pow(2);
227+
return this.pown(2);
228228
}
229229

230230
isquare ( ) {
231231
// TODO optimize but be careful with side effects
232232
// TODO use this.imul(this) instead?
233-
return this.ipow(2);
233+
return this.ipown(2);
234234
}
235235

236236
div ( other ) {

test/src/Integer/square.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import test from 'ava' ;
2+
import { ZZ } from '../../../src' ;
3+
4+
function number ( t , x ) {
5+
t.is(x*x, ZZ.from(x).isquare().valueOf() ) ;
6+
}
7+
8+
number.title = ( providedTitle , x ) => `${x}^2 = ${x*x}` ;
9+
10+
test( number , -1 ) ;
11+
test( number , 0 ) ;
12+
test( number , 1 ) ;
13+
test( number , 2 ) ;
14+
test( number , 777 ) ;
15+
test( number , -17321983 ) ;

0 commit comments

Comments
 (0)