squiggle/packages/squiggle-lang/__tests__/TS/Parser_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

59 lines
1.4 KiB
TypeScript

import {
run,
squiggleExpression,
errorValue,
result,
} from "../../src/js/index";
import * as fc from "fast-check";
let testRun = (x: string): result<squiggleExpression, errorValue> => {
return run(x, { sampleCount: 1000, xyPointLength: 100 });
};
describe("Squiggle is whitespace insensitive", () => {
test("when assigning a distribution to a name and calling that name", () => {
/*
* intersperse varying amounts of whitespace in a squiggle string
*/
let squiggleString = (
a: string,
b: string,
c: string,
d: string,
e: string,
f: string,
g: string,
h: string
): string => {
return `theDist${a}=${b}beta(${c}4${d},${e}5e1)${f};${g}theDist${h}`;
};
let squiggleOutput = testRun(
squiggleString("", "", "", "", "", "", "", "")
);
/*
* Add "\n" to this when multiline is introduced.
*/
let whitespaceGen = () => {
return fc.constantFrom("", " ", "\t", " ", " ", " ", " ");
};
fc.assert(
fc.property(
whitespaceGen(),
whitespaceGen(),
whitespaceGen(),
whitespaceGen(),
whitespaceGen(),
whitespaceGen(),
whitespaceGen(),
whitespaceGen(),
(a, b, c, d, e, f, g, h) => {
expect(testRun(squiggleString(a, b, c, d, e, f, g, h))).toEqual(
squiggleOutput
);
}
)
);
});
});