47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
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))
|
|
|
|
describe("Continuous and discrete splits", () => {
|
|
makeTest(
|
|
"check splits one",
|
|
SampleSet.Internals.T.splitContinuousAndDiscrete([1.432, 1.33455, 2.0]),
|
|
([1.432, 1.33455, 2.0], E.FloatFloatMap.empty()),
|
|
)
|
|
makeTest(
|
|
"check splits two",
|
|
SampleSet.Internals.T.splitContinuousAndDiscrete([
|
|
1.432,
|
|
1.33455,
|
|
2.0,
|
|
2.0,
|
|
2.0,
|
|
2.0,
|
|
]) |> (((c, disc)) => (c, disc |> E.FloatFloatMap.toArray)),
|
|
([1.432, 1.33455], [(2.0, 4.0)]),
|
|
)
|
|
|
|
let makeDuplicatedArray = count => {
|
|
let arr = Belt.Array.range(1, count) |> E.A.fmap(float_of_int)
|
|
let sorted = arr |> Belt.SortArray.stableSortBy(_, compare)
|
|
E.A.concatMany([sorted, sorted, sorted, sorted]) |> Belt.SortArray.stableSortBy(_, compare)
|
|
}
|
|
|
|
let (_, discrete) = SampleSet.Internals.T.splitContinuousAndDiscrete(
|
|
makeDuplicatedArray(10),
|
|
)
|
|
let toArr = discrete |> E.FloatFloatMap.toArray
|
|
makeTest("splitMedium at count=10", toArr |> Belt.Array.length, 10)
|
|
|
|
let (_c, discrete) = SampleSet.Internals.T.splitContinuousAndDiscrete(
|
|
makeDuplicatedArray(500),
|
|
)
|
|
let toArr = discrete |> E.FloatFloatMap.toArray
|
|
makeTest("splitMedium at count=500", toArr |> Belt.Array.length, 500)
|
|
})
|
|
|