squiggle/packages/squiggle-lang/__tests__/XYShape__Test.res

52 lines
1.3 KiB
Plaintext
Raw Normal View History

2022-01-29 22:43:08 +00:00
open Jest
open Expect
let makeTest = (~only=false, str, item1, item2) =>
only
2022-02-06 23:54:19 +00:00
? Only.test(str, () => expect(item1) -> toEqual(item2))
: test(str, () => expect(item1) -> toEqual(item2))
2022-01-29 22:43:08 +00:00
2022-02-15 20:47:33 +00:00
let shape1: PointSetTypes.xyShape = {xs: [1., 4., 8.], ys: [0.2, 0.4, 0.8]}
2022-01-29 22:43:08 +00:00
2022-02-15 20:47:33 +00:00
let shape2: PointSetTypes.xyShape = {
2022-01-29 22:43:08 +00:00
xs: [1., 5., 10.],
ys: [0.2, 0.5, 0.8],
}
2022-02-15 20:47:33 +00:00
let shape3: PointSetTypes.xyShape = {
2022-01-29 22:43:08 +00:00
xs: [1., 20., 50.],
ys: [0.2, 0.5, 0.8],
}
describe("XYShapes", () => {
describe("logScorePoint", () => {
makeTest("When identical", XYShape.logScorePoint(30, shape1, shape1), Some(0.0))
makeTest("When similar", XYShape.logScorePoint(30, shape1, shape2), Some(1.658971191043856))
makeTest(
"When very different",
XYShape.logScorePoint(30, shape1, shape3),
Some(210.3721280423322),
)
})
// describe("transverse", () => {
// makeTest(
// "When very different",
// XYShape.Transversal._transverse(
// (aCurrent, aLast) => aCurrent +. aLast,
// [|1.0, 2.0, 3.0, 4.0|],
// ),
// [|1.0, 3.0, 6.0, 10.0|],
// )
// });
describe("integrateWithTriangles", () =>
makeTest(
"integrates correctly",
XYShape.Range.integrateWithTriangles(shape1),
Some({
xs: [1., 4., 8.],
ys: [0.0, 0.9000000000000001, 3.3000000000000007],
}),
)
)
})