comments and type signatures

This commit is contained in:
Quinn Dougherty 2022-04-13 11:54:37 -04:00
parent 165427f137
commit 7e6a26a2d0
2 changed files with 23 additions and 6 deletions

View File

@ -1,5 +1,8 @@
/* /*
This file was going to be too big and it will be factored into smaller files. This file is like a half measure between one-off unit tests and proper invariant validation.
As such, I'm not that excited about it, though it does provide some structure and will alarm us
when things substantially change.
Also, there are some open comments in https://github.com/quantified-uncertainty/squiggle/pull/232 that haven't been addressed.
*/ */
open Jest open Jest

View File

@ -1,3 +1,11 @@
/*
This is the most basic file in our invariants family of tests.
See document in https://github.com/quantified-uncertainty/squiggle/pull/238 for details
Note: digits parameter should be higher than -4.
*/
open Jest open Jest
open Expect open Expect
open TestHelpers open TestHelpers
@ -45,7 +53,13 @@ describe("Mean", () => {
let zipDistsDists = E.L.zip(distributions, distributions) let zipDistsDists = E.L.zip(distributions, distributions)
let digits = -4 let digits = -4
let testOperationMean = (distOp, description, floatOp, dist1', dist2') => { let testOperationMean = (
distOp: (DistributionTypes.genericDist, DistributionTypes.genericDist) => result<DistributionTypes.genericDist, DistributionTypes.error>,
description: string,
floatOp: (float, float) => float,
dist1': result<SymbolicDistTypes.symbolicDist, string>,
dist2': result<SymbolicDistTypes.symbolicDist, string>
) => {
let dist1 = dist1'->E.R2.fmap(x=>DistributionTypes.Symbolic(x))->E.R2.fmap2(s=>DistributionTypes.Other(s)) let dist1 = dist1'->E.R2.fmap(x=>DistributionTypes.Symbolic(x))->E.R2.fmap2(s=>DistributionTypes.Other(s))
let dist2 = dist2'->E.R2.fmap(x=>DistributionTypes.Symbolic(x))->E.R2.fmap2(s=>DistributionTypes.Other(s)) let dist2 = dist2'->E.R2.fmap(x=>DistributionTypes.Symbolic(x))->E.R2.fmap2(s=>DistributionTypes.Other(s))
let received = let received =
@ -72,12 +86,12 @@ describe("Mean", () => {
testAdditionMean(dist1, dist2) testAdditionMean(dist1, dist2)
}) })
testAll("heterogeneoous addition (1)", combinations, dists => { testAll("heterogeneous addition (1)", combinations, dists => {
let (dist1, dist2) = dists let (dist1, dist2) = dists
testAdditionMean(dist1, dist2) testAdditionMean(dist1, dist2)
}) })
testAll("heterogeneoous addition (commuted of 1 (or; 2))", combinations, dists => { testAll("heterogeneous addition (commuted of 1 (or; 2))", combinations, dists => {
let (dist1, dist2) = dists let (dist1, dist2) = dists
testAdditionMean(dist2, dist1) testAdditionMean(dist2, dist1)
}) })
@ -91,12 +105,12 @@ describe("Mean", () => {
testSubtractionMean(dist1, dist2) testSubtractionMean(dist1, dist2)
}) })
testAll("heterogeneoous subtraction (1)", combinations, dists => { testAll("heterogeneous subtraction (1)", combinations, dists => {
let (dist1, dist2) = dists let (dist1, dist2) = dists
testSubtractionMean(dist1, dist2) testSubtractionMean(dist1, dist2)
}) })
testAll("heterogeneoous subtraction (commuted of 1 (or; 2))", combinations, dists => { testAll("heterogeneous subtraction (commuted of 1 (or; 2))", combinations, dists => {
let (dist1, dist2) = dists let (dist1, dist2) = dists
testSubtractionMean(dist2, dist1) testSubtractionMean(dist2, dist1)
}) })