Newer
Older
import { Result } from "../src/util/result";
import { Nub } from "../src/nub";
import { ComputeNodeType, ParamCalculability, ParamDefinition, ParamDomainValue, ParamsEquation } from "../src/param";

Grand Francois
committed
class NubTestParams extends ParamsEquation {

Grand Francois
committed
private _A: ParamDefinition;
private _B: ParamDefinition;
private _C: ParamDefinition;
constructor() {
super();
this._A = new ParamDefinition(ComputeNodeType.Test, "A", ParamDomainValue.POS_NULL, 1);
this._B = new ParamDefinition(ComputeNodeType.Test, "B", ParamDomainValue.POS_NULL, 2);
this._C = new ParamDefinition(ComputeNodeType.Test, "C", ParamDomainValue.POS_NULL, 3);
this.addParamDefinition(this._A);
this.addParamDefinition(this._B);
this.addParamDefinition(this._C);

Grand Francois
committed
}
get A() {
return this._A;
}
get B() {
return this._B;
}
get C() {
return this._C;
}
}
export class NubTest extends Nub {

Grand Francois
committed
constructor(prms: NubTestParams, dbg: boolean = false) {
super(prms, dbg);
}
protected setParametersCalculability() {
this.getParameter("A").calculability = ParamCalculability.DICHO;
this.getParameter("B").calculability = ParamCalculability.DICHO;
this.getParameter("C").calculability = ParamCalculability.EQUATION;

Grand Francois
committed
get prms(): NubTestParams {
return this._prms as NubTestParams;

Grand Francois
committed
}

Grand Francois
committed
// C = A+B
return new Result(this.prms.A.v + this.prms.B.v);

Grand Francois
committed
export let nub = new NubTest(new NubTestParams());