squiggle/packages/squiggle-lang/__tests__/Reducer/Reducer_TestHelpers.res

76 lines
3.5 KiB
Plaintext
Raw Normal View History

2022-03-29 09:09:59 +00:00
module Expression = Reducer.Expression
module ExpressionValue = ReducerInterface.ExpressionValue
2022-03-24 12:41:31 +00:00
open Jest
open Expect
let expectParseToBe = (expr: string, answer: string) =>
2022-03-30 10:53:36 +00:00
Reducer.parse(expr)->Expression.toStringResult->expect->toBe(answer)
2022-03-24 12:41:31 +00:00
let expectParseOuterToBe = (expr: string, answer: string) =>
Reducer.parseOuter(expr)->Expression.toStringResult->expect->toBe(answer)
2022-04-17 17:24:39 +00:00
let expectParsePartialToBe = (expr: string, answer: string) =>
Reducer.parsePartial(expr)->Expression.toStringResult->expect->toBe(answer)
2022-04-17 17:24:39 +00:00
2022-03-24 12:41:31 +00:00
let expectEvalToBe = (expr: string, answer: string) =>
Reducer.evaluate(expr)->ExpressionValue.toStringResult->expect->toBe(answer)
2022-04-15 06:56:48 +00:00
let expectEvalBindingsToBe = (expr: string, bindings: Reducer.externalBindings, answer: string) =>
2022-04-23 16:25:33 +00:00
Reducer.evaluateUsingExternalBindings(expr, bindings)
->ExpressionValue.toStringResult
->expect
->toBe(answer)
2022-04-17 17:24:39 +00:00
2022-04-17 18:32:47 +00:00
let expectEvalPartialBindingsToBe = (
expr: string,
bindings: Reducer.externalBindings,
answer: string,
) =>
Reducer.evaluatePartialUsingExternalBindings(expr, bindings)
2022-04-17 18:32:47 +00:00
->ExpressionValue.toStringResultRecord
->expect
->toBe(answer)
2022-04-17 17:24:39 +00:00
let testParseToBe = (expr, answer) => test(expr, () => expectParseToBe(expr, answer))
let testParseOuterToBe = (expr, answer) => test(expr, () => expectParseOuterToBe(expr, answer))
let testParsePartialToBe = (expr, answer) => test(expr, () => expectParsePartialToBe(expr, answer))
2022-04-17 17:24:39 +00:00
let testDescriptionParseToBe = (desc, expr, answer) =>
test(desc, () => expectParseToBe(expr, answer))
let testEvalToBe = (expr, answer) => test(expr, () => expectEvalToBe(expr, answer))
let testDescriptionEvalToBe = (desc, expr, answer) => test(desc, () => expectEvalToBe(expr, answer))
let testEvalBindingsToBe = (expr, bindingsList, answer) =>
test(expr, () => expectEvalBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer))
let testEvalPartialBindingsToBe = (expr, bindingsList, answer) =>
test(expr, () => expectEvalPartialBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer))
2022-04-17 17:24:39 +00:00
module MySkip = {
2022-04-17 18:32:47 +00:00
let testParseToBe = (expr, answer) => Skip.test(expr, () => expectParseToBe(expr, answer))
let testParseOuterToBe = (expr, answer) =>
Skip.test(expr, () => expectParseOuterToBe(expr, answer))
let testParsePartialToBe = (expr, answer) =>
Skip.test(expr, () => expectParsePartialToBe(expr, answer))
let testEvalToBe = (expr, answer) => Skip.test(expr, () => expectEvalToBe(expr, answer))
2022-04-17 17:24:39 +00:00
let testEvalBindingsToBe = (expr, bindingsList, answer) =>
Skip.test(expr, () => expectEvalBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer))
let testEvalPartialBindingsToBe = (expr, bindingsList, answer) =>
2022-04-17 18:32:47 +00:00
Skip.test(expr, () =>
expectEvalPartialBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer)
)
2022-04-17 17:24:39 +00:00
}
module MyOnly = {
2022-04-17 18:32:47 +00:00
let testParseToBe = (expr, answer) => Only.test(expr, () => expectParseToBe(expr, answer))
let testParseOuterToBe = (expr, answer) =>
Only.test(expr, () => expectParseOuterToBe(expr, answer))
let testParsePartialToBe = (expr, answer) =>
Only.test(expr, () => expectParsePartialToBe(expr, answer))
let testEvalToBe = (expr, answer) => Only.test(expr, () => expectEvalToBe(expr, answer))
2022-04-17 17:24:39 +00:00
let testEvalBindingsToBe = (expr, bindingsList, answer) =>
Only.test(expr, () => expectEvalBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer))
let testEvalPartialBindingsToBe = (expr, bindingsList, answer) =>
2022-04-17 18:32:47 +00:00
Only.test(expr, () =>
expectEvalPartialBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer)
)
2022-04-17 17:24:39 +00:00
}