2022-03-29 02:39:59 +00:00
|
|
|
open Jest
|
|
|
|
open Expect
|
|
|
|
open Js.Array
|
|
|
|
open SymbolicDist
|
|
|
|
|
|
|
|
let makeTest = (~only=false, str, item1, item2) =>
|
|
|
|
only
|
|
|
|
? Only.test(str, () => expect(item1) -> toEqual(item2))
|
|
|
|
: test(str, () => expect(item1) -> toEqual(item2))
|
|
|
|
|
|
|
|
let normalParams1: SymbolicDistTypes.normal = {mean: 5.0, stdev: 2.0}
|
2022-03-29 14:40:38 +00:00
|
|
|
// let normalParams2: SymbolicDistTypes.normal = {mean: 10.0, stdev: 2.0}
|
2022-03-29 02:39:59 +00:00
|
|
|
let normalParams3: SymbolicDistTypes.normal = {mean: 20.0, stdev: 2.0}
|
|
|
|
let range20 = [0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0]
|
|
|
|
let forSparkline = (thisPdf, inps) => map(thisPdf, inps)
|
|
|
|
|
2022-03-29 14:40:38 +00:00
|
|
|
describe("Normal with Sparklines", () => {
|
2022-03-29 02:39:59 +00:00
|
|
|
let pdf1 = x => Normal.pdf(x, normalParams1)
|
|
|
|
let forSparkline1 = forSparkline(pdf1, range20)
|
2022-03-29 14:40:38 +00:00
|
|
|
makeTest("mean=5", Sparklines.sparkly(forSparkline1, ~options={minimum: None, maximum: None}), `▁▂▃▅███▅▃▂▁▁▁▁▁▁▁▁▁▁▁`)
|
|
|
|
|
|
|
|
let normal4 = Normal.add(normalParams1, normalParams3)
|
|
|
|
let normalParams4 = switch normal4 {
|
|
|
|
| #Normal(params) => params
|
|
|
|
| _ => {mean: 0.0, stdev: 1.0}
|
|
|
|
}
|
|
|
|
let pdf4 = x => Normal.pdf(x, normalParams4)
|
|
|
|
let forSparkline4 = forSparkline(pdf4, range20)
|
|
|
|
makeTest("mixture of two normals", Sparklines.sparkly(forSparkline4, ~options={minimum: None, maximum: None}), `▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▅█`)
|
2022-03-29 02:39:59 +00:00
|
|
|
})
|