import { run, squiggleExpression, errorValueToString, errorValue, result, } from "../../src/js/index"; import * as fc from "fast-check"; let testRun = (x: string): result => { 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( "" ); case "Ok": expect(res.value).toEqual({ tag: "number", value: (x + y + z) / 3, }); } } }) ); }); });