squiggle/packages/squiggle-lang/__tests__/TS/Symbolic_test.ts
Quinn Dougherty 36f929b726 Tackled infinite loop by changing float64Array generator to
`float32Array` generator; gave up on avoiding `any` type in
`Jstat_test.ts`
2022-04-19 20:52:53 -04:00

45 lines
1.1 KiB
TypeScript

import {
run,
squiggleExpression,
errorValueToString,
errorValue,
result,
} from "../../src/js/index";
import * as fc from "fast-check";
let testRun = (x: string): result<squiggleExpression, errorValue> => {
return run(x, { sampleCount: 100, xyPointLength: 100 });
};
describe("Symbolic mean", () => {
let triangularInputError = {
tag: "Error",
value: {
tag: "RETodo",
value: "Triangular values must be increasing order.",
},
};
test("mean(triangular(x,y,z))", () => {
fc.assert(
fc.property(fc.float(), fc.float(), fc.float(), (x, y, z) => {
let res = testRun(`mean(triangular(${x},${y},${z}))`);
if (!(x < y && y < z)) {
expect(res).toEqual(triangularInputError);
} else {
switch (res.tag) {
case "Error":
expect(errorValueToString(res.value)).toEqual(
"<Test cases don't seem to be finding this>"
);
case "Ok":
expect(res.value).toEqual({
tag: "number",
value: (x + y + z) / 3,
});
}
}
})
);
});
});