Advertisement
KillaMaaki

Working wip Cozi unit test

Jul 6th, 2019
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.91 KB | None | 0 0
  1. [Test]
  2. public void TestBasicOps()
  3. {
  4.     string testProgram = @"
  5. module Main
  6. {
  7.     function FuncAdd(valA: int, valB: int) : int
  8.     {
  9.         return valA + valB;
  10.     }
  11.  
  12.     function FuncSub(valA: int, valB: int) : int
  13.     {
  14.         return valA - valB;
  15.     }
  16.  
  17.     function FuncMul(valA: int, valB: int) : int
  18.     {
  19.         return valA * valB;
  20.     }
  21.  
  22.     function FuncDiv(valA: int, valB: int) : int
  23.     {
  24.         return valA / valB;
  25.     }
  26.  
  27.     function FuncMod(valA: int, valB: int) : int
  28.     {
  29.         return valA % valB;
  30.     }
  31.  
  32.     function FuncAnd(valA: int, valB: int) : int
  33.     {
  34.         return valA & valB;
  35.     }
  36.  
  37.     function FuncOr(valA: int, valB: int) : int
  38.     {
  39.         return valA | valB;
  40.     }
  41.  
  42.     function FuncXor(valA: int, valB: int) : int
  43.     {
  44.         return valA ^ valB;
  45.     }
  46. }
  47. ";
  48.  
  49.     var lexer = new Lexer();
  50.     var tokens = lexer.Extract(testProgram, "");
  51.  
  52.     var parser = new Parser();
  53.     var ast = parser.Parse(tokens);
  54.  
  55.     var compiler = new Compiler();
  56.     compiler.Compile(ast);
  57.  
  58.     using (var execEngine = compiler.InitRuntime()) {
  59.         var funcAdd = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncAdd");
  60.         var funcSub = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncSub");
  61.         var funcMul = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncMul");
  62.         var funcDiv = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncDiv");
  63.         var funcMod = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncMod");
  64.         var funcAnd = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncAnd");
  65.         var funcOr = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncOr");
  66.         var funcXor = execEngine.GetFunc<TestDelegate_int_int>("Main", "FuncXor");
  67.        
  68.         Assert.True(funcAdd(10, 5) == 10 + 5);
  69.         Assert.True(funcSub(10, 5) == 10 - 5);
  70.         Assert.True(funcMul(10, 5) == 10 * 5);
  71.         Assert.True(funcDiv(10, 5) == 10 / 5);
  72.         Assert.True(funcMod(10, 5) == 10 % 5);
  73.         Assert.True(funcAnd(10, 5) == (10 & 5));
  74.         Assert.True(funcOr(10, 5) == (10 | 5));
  75.         Assert.True(funcXor(10, 5) == (10 ^ 5));
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement