Outer and Partial: test helpers defined
This commit is contained in:
		
							parent
							
								
									0585aa33a9
								
							
						
					
					
						commit
						e2015e1098
					
				|  | @ -7,8 +7,11 @@ open Expect | |||
| let expectParseToBe = (expr: string, answer: string) => | ||||
|   Reducer.parse(expr)->Expression.toStringResult->expect->toBe(answer) | ||||
| 
 | ||||
| let expectParseOuterToBe = (expr: string, answer: string) => | ||||
|   Reducer.parseOuter(expr)->Expression.toStringResult->expect->toBe(answer) | ||||
| 
 | ||||
| let expectParsePartialToBe = (expr: string, answer: string) => | ||||
|   Reducer.parse(expr)->Expression.toStringResult->expect->toBe(answer) | ||||
|   Reducer.parsePartial(expr)->Expression.toStringResult->expect->toBe(answer) | ||||
| 
 | ||||
| let expectEvalToBe = (expr: string, answer: string) => | ||||
|   Reducer.evaluate(expr)->ExpressionValue.toStringResult->expect->toBe(answer) | ||||
|  | @ -16,7 +19,12 @@ let expectEvalToBe = (expr: string, answer: string) => | |||
| let expectEvalBindingsToBe = (expr: string, bindings: Reducer.externalBindings, answer: string) => | ||||
|   Reducer.evaluateWBindings(expr, bindings)->ExpressionValue.toStringResult->expect->toBe(answer) | ||||
| 
 | ||||
| let expectEvalPartialBindingsToBe = (expr: string, bindings: Reducer.externalBindings, answer: string) => | ||||
|   Reducer.evaluatePartialWBindings(expr, bindings)->ExpressionValue.toStringResultRecord->expect->toBe(answer) | ||||
| 
 | ||||
| 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)) | ||||
| 
 | ||||
| let testDescriptionParseToBe = (desc, expr, answer) => | ||||
|   test(desc, () => expectParseToBe(expr, answer)) | ||||
|  | @ -28,13 +36,20 @@ let testDescriptionEvalToBe = (desc, expr, answer) => test(desc, () => expectEva | |||
| 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)) | ||||
| 
 | ||||
| module MySkip = { | ||||
|   let testEvalToBe = (expr, answer) => Skip.test(expr, () => expectEvalToBe(expr, answer)) | ||||
|   let testEvalBindingsToBe = (expr, bindingsList, answer) => | ||||
|     Skip.test(expr, () => expectEvalBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer)) | ||||
|   let testEvalToBe = (expr, answer) => Skip.test(expr, () => expectEvalToBe(expr, answer)) | ||||
|   let testEvalPartialBindingsToBe = (expr, bindingsList, answer) => | ||||
|     Skip.test(expr, () => expectEvalPartialBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer)) | ||||
| } | ||||
| module MyOnly = { | ||||
|   let testEvalToBe = (expr, answer) => Only.test(expr, () => expectEvalToBe(expr, answer)) | ||||
|   let testEvalBindingsToBe = (expr, bindingsList, answer) => | ||||
|     Only.test(expr, () => expectEvalBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer)) | ||||
|   let testEvalToBe = (expr, answer) => Only.test(expr, () => expectEvalToBe(expr, answer)) | ||||
|   let testEvalPartialBindingsToBe = (expr, bindingsList, answer) => | ||||
|     Only.test(expr, () => expectEvalPartialBindingsToBe(expr, bindingsList->Js.Dict.fromList, answer)) | ||||
| } | ||||
|  |  | |||
|  | @ -33,17 +33,18 @@ let rec toString = aValue => | |||
|         ->Js.String.concatMany("") | ||||
|       `[${args}]` | ||||
|     } | ||||
|   | EvRecord(aRecord) => { | ||||
|       let pairs = | ||||
|         aRecord | ||||
|         ->Js.Dict.entries | ||||
|         ->Belt.Array.map(((eachKey, eachValue)) => `${eachKey}: ${toString(eachValue)}`) | ||||
|         ->Extra_Array.interperse(", ") | ||||
|         ->Js.String.concatMany("") | ||||
|       `{${pairs}}` | ||||
|     } | ||||
|   | EvRecord(aRecord) => aRecord->toStringRecord | ||||
|   | EvDistribution(dist) => GenericDist.toString(dist) | ||||
|   } | ||||
| and toStringRecord = aRecord => { | ||||
|   let pairs = | ||||
|     aRecord | ||||
|     ->Js.Dict.entries | ||||
|     ->Belt.Array.map(((eachKey, eachValue)) => `${eachKey}: ${toString(eachValue)}`) | ||||
|     ->Extra_Array.interperse(", ") | ||||
|     ->Js.String.concatMany("") | ||||
|   `{${pairs}}` | ||||
| } | ||||
| 
 | ||||
| let toStringWithType = aValue => | ||||
|   switch aValue { | ||||
|  | @ -68,3 +69,9 @@ let toStringResult = x => | |||
|   | Ok(a) => `Ok(${toString(a)})` | ||||
|   | Error(m) => `Error(${ErrorValue.errorToString(m)})` | ||||
|   } | ||||
| 
 | ||||
| let toStringResultRecord = x => | ||||
|   switch x { | ||||
|   | Ok(a) => `Ok(${toStringRecord(a)})` | ||||
|   | Error(m) => `Error(${ErrorValue.errorToString(m)})` | ||||
|   } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user