63 lines
1.4 KiB
ReasonML
63 lines
1.4 KiB
ReasonML
|
open Jest;
|
||
|
open Expect;
|
||
|
|
||
|
let makeTest = (~only=false, str, item1, item2) =>
|
||
|
only
|
||
|
? Only.test(str, () =>
|
||
|
expect(item1) |> toEqual(item2)
|
||
|
)
|
||
|
: test(str, () =>
|
||
|
expect(item1) |> toEqual(item2)
|
||
|
);
|
||
|
|
||
|
let shape1: DistTypes.xyShape = {xs: [|1., 4., 8.|], ys: [|0.2, 0.4, 0.8|]};
|
||
|
|
||
|
let shape2: DistTypes.xyShape = {
|
||
|
xs: [|1., 5., 10.|],
|
||
|
ys: [|0.2, 0.5, 0.8|],
|
||
|
};
|
||
|
|
||
|
let shape3: DistTypes.xyShape = {
|
||
|
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|],
|
||
|
}),
|
||
|
)
|
||
|
});
|
||
|
});
|