Include equality testing in basic library
This commit is contained in:
		
							
								
								
									
										41
									
								
								test/Spec.hs
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								test/Spec.hs
									
									
									
									
									
								
							| @ -2,6 +2,7 @@ module Main where | ||||
|  | ||||
| import Eval | ||||
| import Lexer | ||||
| import Library | ||||
| import Parser | ||||
| import Research | ||||
| import Control.Exception (evaluate, try, SomeException) | ||||
| @ -227,48 +228,25 @@ evaluationTests = testGroup "Evaluation Tests" | ||||
|       result env @?= Stem Leaf | ||||
|    , testCase "Boolean AND_ TF" $ do | ||||
|       let input = "and (t t) (t)" | ||||
|           env = evalSapling boolEnv (parseSapling input) | ||||
|           env = evalSapling library (parseSapling input) | ||||
|       result env @?= Leaf | ||||
|    , testCase "Boolean AND_ FT" $ do | ||||
|       let input = "and (t) (t t)" | ||||
|           env = evalSapling boolEnv (parseSapling input) | ||||
|           env = evalSapling library (parseSapling input) | ||||
|       result env @?= Leaf | ||||
|    , testCase "Boolean AND_ FF" $ do | ||||
|       let input = "and (t) (t)" | ||||
|           env = evalSapling boolEnv (parseSapling input) | ||||
|           env = evalSapling library (parseSapling input) | ||||
|       result env @?= Leaf | ||||
|     , testCase "Boolean AND_ TT" $ do | ||||
|       let input = "and (t t) (t t)" | ||||
|           env = evalSapling boolEnv (parseSapling input) | ||||
|           env = evalSapling library (parseSapling input) | ||||
|       result env @?= Stem Leaf | ||||
|     , testCase "Verifying Equality" $ do | ||||
|       let input = "equal (t t t) (t t t)" | ||||
|           env = evalSapling library (parseSapling input) | ||||
|       result env @?= Stem Leaf | ||||
|     --, testCase "Verifying Equality" $ do | ||||
|     --  let input = "equal (t t t) (t t t)" | ||||
|     --      env = evalSapling boolEnv (parseSapling input) | ||||
|     --  result env @?= Stem Leaf | ||||
|   ] | ||||
|   where | ||||
|     boolEnv = evalSapling Map.empty $ parseSapling  | ||||
|       "false = t\n \  | ||||
|      \ true = t t\n \ | ||||
|      \ id = (\\a : a)\n \ | ||||
|      \ triage = (\\a b c : t (t a b) c)\n \ | ||||
|      \ match_bool = (\\ot of : triage of (\\z : ot) t)\n \ | ||||
|      \ and = match_bool id (\\z : false)\n \ | ||||
|      \ if = (\\cond then else : t (t else (t t then)) t cond)\n \ | ||||
|      \ fix = (\\m wait f : wait m (\\x : f (wait m x))) (\\x : x x) (\\a b c : (t (t a) (t t c) b))\n \ | ||||
|      \ equal = fix ((\\self : triage (triage true (\\z : false) (\\z x : false)) (\\ax : triage false (self ax) (\\z x : false)) (\\ax ay : triage false (\\z : false) (\\bx by : and (self ax bx) (self ay by)))))" | ||||
|  | ||||
| -- false = t | ||||
| -- true = t t | ||||
| -- id = \x x | ||||
| -- fix = (\m \wait2 \f wait2 m (\x f (wait2 m x))) (\x x x) (\a \b \c t (t a) (t t c) b) | ||||
| -- triage = \a \b \c t (t a b) c | ||||
| -- match_bool = \ot \of triage of (\_ ot) t | ||||
| -- and = match_bool id (\_ false) | ||||
| -- equal = fix $ \self triage | ||||
| --   (triage true (\_ false) (\_ \_ false)) | ||||
| --   (\ax triage false (self ax) (\_ \_ false)) | ||||
| --   (\ax \ay triage false (\_ false) (\bx \by and (self ax bx) (self ay by))) | ||||
|  | ||||
| lambdaEvalTests :: TestTree | ||||
| lambdaEvalTests = testGroup "Lambda Evaluation Tests" | ||||
| @ -340,4 +318,3 @@ propertyTests = testGroup "Property Tests" | ||||
|           Left _ -> property True | ||||
|           Right ast -> parseSingle input === ast | ||||
|   ] | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 James Eversole
					James Eversole