pimath 0.0.87 → 0.0.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -143,7 +143,13 @@ class NumExp {
143
143
  }
144
144
  else if (element.token === 'nthrt') {
145
145
  // TODO: support nthrt in num. exp.
146
- // this._addToStack(stack, Math.pow(a, 1/b))
146
+ let b = stack.pop();
147
+ if (a % 2 === 0 && b < 0) {
148
+ this._addToStack(stack, NaN);
149
+ }
150
+ else {
151
+ this._addToStack(stack, (b < 0 ? -1 : 1) * Math.pow(Math.abs(b), 1 / a));
152
+ }
147
153
  }
148
154
  else if (element.token === 'ln') {
149
155
  this._addToStack(stack, Math.log(a));
@@ -1 +1 @@
1
- {"version":3,"file":"numexp.js","sourceRoot":"","sources":["../../../src/maths/expressions/numexp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numexp.js","sourceRoot":"","sources":["../../../src/maths/expressions/numexp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pimath",
3
- "version": "0.0.87",
3
+ "version": "0.0.88",
4
4
  "description": "A math library for teacher :)",
5
5
  "scripts": {
6
6
  "test": "mocha -r ts-node/register 'tests/**/*.test.ts'",
@@ -147,7 +147,12 @@ export class NumExp {
147
147
  this._addToStack(stack, Math.sqrt(a))
148
148
  }else if(element.token ==='nthrt') {
149
149
  // TODO: support nthrt in num. exp.
150
- // this._addToStack(stack, Math.pow(a, 1/b))
150
+ let b = stack.pop()
151
+ if(a%2===0 && b<0){
152
+ this._addToStack(stack, NaN)
153
+ }else {
154
+ this._addToStack(stack, (b < 0 ? -1 : 1) * Math.pow(Math.abs(b), 1 / a))
155
+ }
151
156
  } else if(element.token === 'ln'){
152
157
  this._addToStack(stack, Math.log(a))
153
158
  } else if(element.token === 'log') {
@@ -42,8 +42,15 @@ describe('Numerical expression', () => { // the tests container
42
42
  });
43
43
 
44
44
  it('should calculate sqrt from exp', function(){
45
- let a = new NumExp('x^(1/2)')
45
+ // let a = new NumExp('x^(1/3)')
46
+ // console.log(a.evaluate({x: 8}))
46
47
 
47
- console.log(a.evaluate({x: -2}))
48
+ let k = new NumExp('nthrt(x,3)')
49
+ expect(k.evaluate({x: -8})).to.be.equal(-2)
50
+ expect(k.evaluate({x: 27})).to.be.equal(3)
51
+
52
+ let p = new NumExp('nthrt(x,4)')
53
+ expect(p.evaluate({x: 16})).to.be.equal(2)
54
+ expect(p.evaluate({x: -16})).to.be.NaN
48
55
  })
49
56
  });