pimath 0.0.106 → 0.0.108
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.
- package/dist/pi.js +82 -4
- package/dist/pi.js.map +1 -1
- package/dist/pi.min.js +1 -1
- package/dist/pi.min.js.map +1 -1
- package/esm/maths/expressions/numexp.js +17 -2
- package/esm/maths/expressions/numexp.js.map +1 -1
- package/esm/maths/geometry/vector.d.ts +3 -2
- package/esm/maths/geometry/vector.js +5 -2
- package/esm/maths/geometry/vector.js.map +1 -1
- package/esm/maths/randomization/random.d.ts +5 -1
- package/esm/maths/randomization/random.js +8 -0
- package/esm/maths/randomization/random.js.map +1 -1
- package/esm/maths/randomization/rndGeometryLine.d.ts +12 -0
- package/esm/maths/randomization/rndGeometryLine.js +46 -0
- package/esm/maths/randomization/rndGeometryLine.js.map +1 -0
- package/esm/maths/randomization/rndTypes.d.ts +8 -0
- package/package.json +1 -1
- package/src/maths/expressions/numexp.ts +16 -2
- package/src/maths/geometry/vector.ts +8 -4
- package/src/maths/randomization/random.ts +9 -1
- package/src/maths/randomization/rndGeometryLine.ts +54 -0
- package/src/maths/randomization/rndTypes.ts +8 -1
- package/tests/custom.test.ts +6 -0
- package/tests/numexp.test.ts +8 -0
|
@@ -6,14 +6,25 @@ const fraction_1 = require("../coefficients/fraction");
|
|
|
6
6
|
class NumExp {
|
|
7
7
|
constructor(value, uniformize) {
|
|
8
8
|
this._expression = value;
|
|
9
|
-
|
|
9
|
+
try {
|
|
10
|
+
this._rpn = new shutingyard_1.Shutingyard(shutingyard_1.ShutingyardMode.NUMERIC).parse(value, uniformize || uniformize === undefined).rpn;
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
this._rpn = null;
|
|
14
|
+
this._isValid = false;
|
|
15
|
+
}
|
|
10
16
|
}
|
|
11
17
|
get rpn() {
|
|
12
18
|
return this._rpn;
|
|
13
19
|
}
|
|
14
20
|
get isValid() {
|
|
15
21
|
if (this._isValid === undefined) {
|
|
16
|
-
|
|
22
|
+
try {
|
|
23
|
+
const v = this.evaluate({ x: 0 });
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
this._isValid = false;
|
|
27
|
+
}
|
|
17
28
|
}
|
|
18
29
|
return this._isValid;
|
|
19
30
|
}
|
|
@@ -68,6 +79,10 @@ class NumExp {
|
|
|
68
79
|
}
|
|
69
80
|
evaluate(values) {
|
|
70
81
|
const stack = [];
|
|
82
|
+
if (this._rpn === null) {
|
|
83
|
+
this._isValid = false;
|
|
84
|
+
return 0;
|
|
85
|
+
}
|
|
71
86
|
this.isValid = true;
|
|
72
87
|
for (const element of this._rpn) {
|
|
73
88
|
if (element.tokenType === shutingyard_1.ShutingyardType.COEFFICIENT) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numexp.js","sourceRoot":"","sources":["../../../src/maths/expressions/numexp.ts"],"names":[],"mappings":";;;AAAA,gDAA4F;AAC5F,uDAAkD;AAElD,MAAa,MAAM;IAKf,YAAY,KAAa,EAAE,UAAmB;QAC1C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,CAAC,6BAAe,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"numexp.js","sourceRoot":"","sources":["../../../src/maths/expressions/numexp.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,9 @@ export declare class Vector {
|
|
|
8
8
|
private _y;
|
|
9
9
|
constructor(...values: unknown[]);
|
|
10
10
|
get x(): Fraction;
|
|
11
|
-
set x(value: Fraction);
|
|
11
|
+
set x(value: Fraction | number | string);
|
|
12
12
|
get y(): Fraction;
|
|
13
|
-
set y(value: Fraction);
|
|
13
|
+
set y(value: Fraction | number | string);
|
|
14
14
|
get normSquare(): Fraction;
|
|
15
15
|
get norm(): number;
|
|
16
16
|
get tex(): string;
|
|
@@ -27,6 +27,7 @@ export declare class Vector {
|
|
|
27
27
|
static scalarProduct: (v1: Vector, v2: Vector) => number;
|
|
28
28
|
normal: () => Vector;
|
|
29
29
|
isNormalTo: (v: Vector) => boolean;
|
|
30
|
+
get isNull(): boolean;
|
|
30
31
|
multiplyByScalar: (k: any) => Vector;
|
|
31
32
|
divideByScalar: (k: any) => Vector;
|
|
32
33
|
simplify: () => Vector;
|
|
@@ -152,13 +152,13 @@ class Vector {
|
|
|
152
152
|
return this._x;
|
|
153
153
|
}
|
|
154
154
|
set x(value) {
|
|
155
|
-
this._x = value;
|
|
155
|
+
this._x = new fraction_1.Fraction(value);
|
|
156
156
|
}
|
|
157
157
|
get y() {
|
|
158
158
|
return this._y;
|
|
159
159
|
}
|
|
160
160
|
set y(value) {
|
|
161
|
-
this._y = value;
|
|
161
|
+
this._y = new fraction_1.Fraction(value);
|
|
162
162
|
}
|
|
163
163
|
get normSquare() {
|
|
164
164
|
return this._x.clone().pow(2).add(this._y.clone().pow(2));
|
|
@@ -169,6 +169,9 @@ class Vector {
|
|
|
169
169
|
get tex() {
|
|
170
170
|
return `\\begin{pmatrix}${this._x.tex} \\\\\ ${this._y.tex} \\end{pmatrix}`;
|
|
171
171
|
}
|
|
172
|
+
get isNull() {
|
|
173
|
+
return this.x.isZero() && this.y.isZero();
|
|
174
|
+
}
|
|
172
175
|
}
|
|
173
176
|
exports.Vector = Vector;
|
|
174
177
|
Vector.scalarProduct = (v1, v2) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/maths/geometry/vector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/maths/geometry/vector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { randomCoefficientConfig, randomMonomConfig, randomPolynomConfig } from "./rndTypes";
|
|
1
|
+
import { randomCoefficientConfig, randomGeometryLineConfig, randomMonomConfig, randomPolynomConfig } from "./rndTypes";
|
|
2
2
|
import { Polynom } from "../algebra/polynom";
|
|
3
3
|
import { Monom } from "../algebra/monom";
|
|
4
4
|
import { Fraction } from "../coefficients/fraction";
|
|
5
|
+
import { Line } from "../geometry/line";
|
|
5
6
|
export * from "./rndTypes";
|
|
6
7
|
export declare namespace Random {
|
|
7
8
|
function polynom(config?: randomPolynomConfig): Polynom;
|
|
@@ -14,4 +15,7 @@ export declare namespace Random {
|
|
|
14
15
|
function array(arr: any[], number?: number): any[];
|
|
15
16
|
function item(arr: any[]): any;
|
|
16
17
|
function shuffle(arr: any[]): any[];
|
|
18
|
+
namespace Geometry {
|
|
19
|
+
function line(config: randomGeometryLineConfig): Line;
|
|
20
|
+
}
|
|
17
21
|
}
|
|
@@ -19,6 +19,7 @@ const rndPolynom_1 = require("./rndPolynom");
|
|
|
19
19
|
const rndMonom_1 = require("./rndMonom");
|
|
20
20
|
const rndHelpers_1 = require("./rndHelpers");
|
|
21
21
|
const rndFraction_1 = require("./rndFraction");
|
|
22
|
+
const rndGeometryLine_1 = require("./rndGeometryLine");
|
|
22
23
|
__exportStar(require("./rndTypes"), exports);
|
|
23
24
|
var Random;
|
|
24
25
|
(function (Random) {
|
|
@@ -62,5 +63,12 @@ var Random;
|
|
|
62
63
|
return rndHelpers_1.rndHelpers.shuffleArray(arr);
|
|
63
64
|
}
|
|
64
65
|
Random.shuffle = shuffle;
|
|
66
|
+
let Geometry;
|
|
67
|
+
(function (Geometry) {
|
|
68
|
+
function line(config) {
|
|
69
|
+
return (new rndGeometryLine_1.rndGeometryLine(config).generate());
|
|
70
|
+
}
|
|
71
|
+
Geometry.line = line;
|
|
72
|
+
})(Geometry = Random.Geometry || (Random.Geometry = {}));
|
|
65
73
|
})(Random = exports.Random || (exports.Random = {}));
|
|
66
74
|
//# sourceMappingURL=random.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/maths/randomization/random.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,yCAAoC;AACpC,6CAAwC;AAExC,+CAA0C;AAK1C,6CAA0B;AAE1B,IAAiB,MAAM,
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../../../src/maths/randomization/random.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6CAAwC;AACxC,yCAAoC;AACpC,6CAAwC;AAExC,+CAA0C;AAK1C,uDAAkD;AAElD,6CAA0B;AAE1B,IAAiB,MAAM,CA8CtB;AA9CD,WAAiB,MAAM;IACnB,SAAgB,OAAO,CAAC,MAA4B;QAChD,OAAO,CAAC,IAAI,uBAAU,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,SAAgB,KAAK,CAAC,MAA0B;QAC5C,OAAO,CAAC,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC5C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,QAAQ,CAAC,MAAgC;QACrD,OAAO,CAAC,IAAI,yBAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC/C,CAAC;IAFe,eAAQ,WAEvB,CAAA;IAED,SAAgB,MAAM,CAAC,IAAY,EAAE,EAAU;QAC3C,OAAO,uBAAU,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACzC,CAAC;IAFe,aAAM,SAErB,CAAA;IAED,SAAgB,SAAS,CAAC,GAAW,EAAE,SAAmB;QACtD,OAAO,uBAAU,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAClD,CAAC;IAFe,gBAAS,YAExB,CAAA;IAED,SAAgB,KAAK,CAAC,GAAW;QAC7B,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,IAAI,CAAC,OAAgB;QACjC,OAAO,uBAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,KAAK,CAAC,GAAU,EAAE,MAAe;QAC7C,OAAO,uBAAU,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAFe,YAAK,QAEpB,CAAA;IAED,SAAgB,IAAI,CAAC,GAAU;QAC3B,OAAO,uBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAFe,WAAI,OAEnB,CAAA;IAED,SAAgB,OAAO,CAAC,GAAU;QAC9B,OAAO,uBAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IAFe,cAAO,UAEtB,CAAA;IAED,IAAiB,QAAQ,CAIxB;IAJD,WAAiB,QAAQ;QACrB,SAAgB,IAAI,CAAC,MAAgC;YACjD,OAAO,CAAC,IAAI,iCAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;QACnD,CAAC;QAFe,aAAI,OAEnB,CAAA;IACL,CAAC,EAJgB,QAAQ,GAAR,eAAQ,KAAR,eAAQ,QAIxB;AACL,CAAC,EA9CgB,MAAM,GAAN,cAAM,KAAN,cAAM,QA8CtB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { randomCore } from "./randomCore";
|
|
2
|
+
import { randomGeometryLineConfig } from "./random";
|
|
3
|
+
import { Line } from "../geometry/line";
|
|
4
|
+
/**
|
|
5
|
+
* Create a random monom based on a based configuration
|
|
6
|
+
*/
|
|
7
|
+
export declare class rndGeometryLine extends randomCore {
|
|
8
|
+
protected _config: randomGeometryLineConfig;
|
|
9
|
+
protected _defaultConfig: randomGeometryLineConfig;
|
|
10
|
+
constructor(userConfig?: randomGeometryLineConfig);
|
|
11
|
+
generate: () => Line;
|
|
12
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.rndGeometryLine = void 0;
|
|
4
|
+
const randomCore_1 = require("./randomCore");
|
|
5
|
+
const random_1 = require("./random");
|
|
6
|
+
const line_1 = require("../geometry/line");
|
|
7
|
+
const vector_1 = require("../geometry/vector");
|
|
8
|
+
const point_1 = require("../geometry/point");
|
|
9
|
+
/**
|
|
10
|
+
* Create a random monom based on a based configuration
|
|
11
|
+
*/
|
|
12
|
+
class rndGeometryLine extends randomCore_1.randomCore {
|
|
13
|
+
constructor(userConfig) {
|
|
14
|
+
super();
|
|
15
|
+
this.generate = () => {
|
|
16
|
+
// The A point exists.
|
|
17
|
+
const d = new vector_1.Vector(random_1.Random.numberSym(10), random_1.Random.numberSym(10));
|
|
18
|
+
while (d.isNull) {
|
|
19
|
+
d.x = random_1.Random.numberSym(10);
|
|
20
|
+
d.y = random_1.Random.numberSym(10);
|
|
21
|
+
}
|
|
22
|
+
if (this._config.slope === 1) {
|
|
23
|
+
if (d.x.sign() !== d.y.sign()) {
|
|
24
|
+
d.y.opposed();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else if (this._config.slope === -1) {
|
|
28
|
+
if (d.x.sign() !== d.y.sign()) {
|
|
29
|
+
d.y.opposed();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return new line_1.Line(new point_1.Point(this._config.A.x, this._config.A.y), d);
|
|
33
|
+
};
|
|
34
|
+
this._defaultConfig = {
|
|
35
|
+
A: {
|
|
36
|
+
x: random_1.Random.numberSym(10),
|
|
37
|
+
y: random_1.Random.numberSym(10)
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
// TODO: Strange that it raise an error
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
this._config = this.mergeConfig(userConfig, this._defaultConfig);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.rndGeometryLine = rndGeometryLine;
|
|
46
|
+
//# sourceMappingURL=rndGeometryLine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rndGeometryLine.js","sourceRoot":"","sources":["../../../src/maths/randomization/rndGeometryLine.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AACxC,qCAA0D;AAC1D,2CAAsC;AACtC,+CAA0C;AAE1C,6CAAwC;AAExC;;GAEG;AACH,MAAa,eAAgB,SAAQ,uBAAU;IAI3C,YAAY,UAAqC;QAC7C,KAAK,EAAE,CAAC;QAcZ,aAAQ,GAAG,GAAS,EAAE;YAClB,sBAAsB;YACtB,MAAM,CAAC,GAAG,IAAI,eAAM,CAChB,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EACpB,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CACvB,CAAA;YAED,OAAM,CAAC,CAAC,MAAM,EAAC;gBACX,CAAC,CAAC,CAAC,GAAG,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;gBAC1B,CAAC,CAAC,CAAC,GAAG,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;aAC7B;YAED,IAAG,IAAI,CAAC,OAAO,CAAC,KAAK,KAAG,CAAC,EAAC;gBACtB,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC;oBACvB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;iBAChB;aACJ;iBAAK,IAAG,IAAI,CAAC,OAAO,CAAC,KAAK,KAAG,CAAC,CAAC,EAAC;gBAC7B,IAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC;oBACvB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;iBAChB;aACJ;YAED,OAAO,IAAI,WAAI,CAAC,IAAI,aAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACrE,CAAC,CAAA;QAnCG,IAAI,CAAC,cAAc,GAAG;YAClB,CAAC,EAAE;gBACC,CAAC,EAAE,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvB,CAAC,EAAE,eAAM,CAAC,SAAS,CAAC,EAAE,CAAC;aAC1B;SACJ,CAAA;QAED,uCAAuC;QACvC,aAAa;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACpE,CAAC;CA0BJ;AA3CD,0CA2CC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Fraction } from "../coefficients/fraction";
|
|
1
2
|
export type randomCoefficientConfig = {
|
|
2
3
|
negative?: boolean;
|
|
3
4
|
max?: number;
|
|
@@ -18,3 +19,10 @@ export type randomPolynomConfig = randomMonomConfig & {
|
|
|
18
19
|
numberOfMonoms?: number;
|
|
19
20
|
positive?: boolean;
|
|
20
21
|
};
|
|
22
|
+
export type randomGeometryLineConfig = {
|
|
23
|
+
A: {
|
|
24
|
+
x: number | Fraction;
|
|
25
|
+
y: number | Fraction;
|
|
26
|
+
};
|
|
27
|
+
slope?: Fraction | string | number;
|
|
28
|
+
};
|
package/package.json
CHANGED
|
@@ -8,7 +8,12 @@ export class NumExp {
|
|
|
8
8
|
|
|
9
9
|
constructor(value: string, uniformize?:boolean) {
|
|
10
10
|
this._expression = value
|
|
11
|
-
|
|
11
|
+
try {
|
|
12
|
+
this._rpn = new Shutingyard(ShutingyardMode.NUMERIC).parse(value, uniformize || uniformize===undefined).rpn
|
|
13
|
+
}catch(e){
|
|
14
|
+
this._rpn = null
|
|
15
|
+
this._isValid = false
|
|
16
|
+
}
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
get rpn(): { token: string; tokenType: string }[] {
|
|
@@ -17,7 +22,11 @@ export class NumExp {
|
|
|
17
22
|
|
|
18
23
|
get isValid(): boolean {
|
|
19
24
|
if(this._isValid===undefined){
|
|
20
|
-
|
|
25
|
+
try {
|
|
26
|
+
const v = this.evaluate({x: 0})
|
|
27
|
+
}catch{
|
|
28
|
+
this._isValid = false
|
|
29
|
+
}
|
|
21
30
|
}
|
|
22
31
|
return this._isValid
|
|
23
32
|
}
|
|
@@ -91,6 +100,11 @@ export class NumExp {
|
|
|
91
100
|
evaluate(values: { [Key: string]: number }): number {
|
|
92
101
|
const stack: number[] = []
|
|
93
102
|
|
|
103
|
+
if(this._rpn===null){
|
|
104
|
+
this._isValid = false
|
|
105
|
+
return 0
|
|
106
|
+
}
|
|
107
|
+
|
|
94
108
|
this.isValid = true
|
|
95
109
|
|
|
96
110
|
for (const element of this._rpn) {
|
|
@@ -26,16 +26,16 @@ export class Vector {
|
|
|
26
26
|
return this._x;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
set x(value: Fraction) {
|
|
30
|
-
this._x = value;
|
|
29
|
+
set x(value: Fraction|number|string) {
|
|
30
|
+
this._x = new Fraction(value);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
get y(): Fraction {
|
|
34
34
|
return this._y;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
set y(value: Fraction) {
|
|
38
|
-
this._y = value;
|
|
37
|
+
set y(value: Fraction|number|string) {
|
|
38
|
+
this._y = new Fraction(value);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
get normSquare(): Fraction {
|
|
@@ -182,6 +182,10 @@ export class Vector {
|
|
|
182
182
|
return this.scalarProductWithVector(v).isZero()
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
+
get isNull(): boolean {
|
|
186
|
+
return this.x.isZero() && this.y.isZero()
|
|
187
|
+
}
|
|
188
|
+
|
|
185
189
|
multiplyByScalar = (k: any): Vector => {
|
|
186
190
|
let scalar = new Fraction(k);
|
|
187
191
|
this._x.multiply(scalar);
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {rndPolynom} from "./rndPolynom";
|
|
2
2
|
import {rndMonom} from "./rndMonom";
|
|
3
3
|
import {rndHelpers} from "./rndHelpers";
|
|
4
|
-
import {randomCoefficientConfig, randomMonomConfig, randomPolynomConfig} from "./rndTypes";
|
|
4
|
+
import {randomCoefficientConfig, randomGeometryLineConfig, randomMonomConfig, randomPolynomConfig} from "./rndTypes";
|
|
5
5
|
import {rndFraction} from "./rndFraction";
|
|
6
6
|
import {Polynom} from "../algebra/polynom";
|
|
7
7
|
import {Monom} from "../algebra/monom";
|
|
8
8
|
import {Fraction} from "../coefficients/fraction";
|
|
9
|
+
import {Line} from "../geometry/line";
|
|
10
|
+
import {rndGeometryLine} from "./rndGeometryLine";
|
|
9
11
|
|
|
10
12
|
export * from "./rndTypes"
|
|
11
13
|
|
|
@@ -49,4 +51,10 @@ export namespace Random {
|
|
|
49
51
|
export function shuffle(arr: any[]): any[] {
|
|
50
52
|
return rndHelpers.shuffleArray(arr)
|
|
51
53
|
}
|
|
54
|
+
|
|
55
|
+
export namespace Geometry {
|
|
56
|
+
export function line(config: randomGeometryLineConfig): Line {
|
|
57
|
+
return (new rndGeometryLine(config).generate())
|
|
58
|
+
}
|
|
59
|
+
}
|
|
52
60
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {randomCore} from "./randomCore";
|
|
2
|
+
import {Random, randomGeometryLineConfig} from "./random";
|
|
3
|
+
import {Line} from "../geometry/line";
|
|
4
|
+
import {Vector} from "../geometry/vector";
|
|
5
|
+
import {PiMath} from "../../index";
|
|
6
|
+
import {Point} from "../geometry/point";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Create a random monom based on a based configuration
|
|
10
|
+
*/
|
|
11
|
+
export class rndGeometryLine extends randomCore {
|
|
12
|
+
declare protected _config: randomGeometryLineConfig
|
|
13
|
+
declare protected _defaultConfig: randomGeometryLineConfig
|
|
14
|
+
|
|
15
|
+
constructor(userConfig?: randomGeometryLineConfig) {
|
|
16
|
+
super();
|
|
17
|
+
|
|
18
|
+
this._defaultConfig = {
|
|
19
|
+
A: {
|
|
20
|
+
x: Random.numberSym(10),
|
|
21
|
+
y: Random.numberSym(10)
|
|
22
|
+
},
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// TODO: Strange that it raise an error
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
this._config = this.mergeConfig(userConfig, this._defaultConfig)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
generate = (): Line => {
|
|
31
|
+
// The A point exists.
|
|
32
|
+
const d = new Vector(
|
|
33
|
+
Random.numberSym(10),
|
|
34
|
+
Random.numberSym(10)
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
while(d.isNull){
|
|
38
|
+
d.x = Random.numberSym(10)
|
|
39
|
+
d.y = Random.numberSym(10)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if(this._config.slope===1){
|
|
43
|
+
if(d.x.sign()!==d.y.sign()){
|
|
44
|
+
d.y.opposed()
|
|
45
|
+
}
|
|
46
|
+
}else if(this._config.slope===-1){
|
|
47
|
+
if(d.x.sign()!==d.y.sign()){
|
|
48
|
+
d.y.opposed()
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return new Line(new Point(this._config.A.x, this._config.A.y), d)
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import {Fraction} from "../coefficients/fraction";
|
|
2
|
+
|
|
1
3
|
export type randomCoefficientConfig = {
|
|
2
4
|
negative?: boolean,
|
|
3
5
|
max?: number,
|
|
@@ -19,4 +21,9 @@ export type randomPolynomConfig = randomMonomConfig & {
|
|
|
19
21
|
allowNullMonom?: boolean,
|
|
20
22
|
numberOfMonoms?: number,
|
|
21
23
|
positive?: boolean
|
|
22
|
-
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type randomGeometryLineConfig = {
|
|
27
|
+
A: { x: number | Fraction, y: number | Fraction },
|
|
28
|
+
slope?: Fraction | string | number,
|
|
29
|
+
}
|
package/tests/custom.test.ts
CHANGED
package/tests/numexp.test.ts
CHANGED
|
@@ -32,6 +32,14 @@ describe('Numerical expression', () => { // the tests container
|
|
|
32
32
|
expect(exprInvalid.isValid).to.be.false
|
|
33
33
|
});
|
|
34
34
|
|
|
35
|
+
it('souldd detect invalid expression withouth crahsing', function() {
|
|
36
|
+
const exprPourrie = new NumExp('3xsi'),
|
|
37
|
+
exprOk = new NumExp('3xsin(x)')
|
|
38
|
+
|
|
39
|
+
expect(exprPourrie.isValid).to.be.false
|
|
40
|
+
expect(exprOk.isValid).to.be.true
|
|
41
|
+
})
|
|
42
|
+
|
|
35
43
|
it('should parse without mult sign', function () {
|
|
36
44
|
|
|
37
45
|
let a = 1 / 5
|