using Microsoft.VisualStudio.TestTools.UnitTesting; using SuperBASIC; using System.IO; using System.Linq; namespace TestsSuperBASIC { [TestClass] public class PrebuiltTest { [TestMethod] public void TestA() { Library lib = new Library(); var printer = new Mock.MockPrint(); lib.AddFunction(printer, 1, "PRINT"); lib.AddFunction(new SuperBASIC.Functions.MemoryLoad(), 1, "MEMLOAD"); lib.AddFunction(new SuperBASIC.Functions.MemoryStore(), 2, "MEMSTORE"); lib.AddFunction(new SuperBASIC.Functions.Multiply(), 2, "MULTIPLY"); lib.AddFunction(new SuperBASIC.Functions.Add(), 2, "ADD"); lib.AddFunction(new SuperBASIC.Functions.Compare(), 2, "COMPARE"); lib.AddFunction(new SuperBASIC.Functions.JumpZero(), 2, "JZ"); lib.AddFunction(new SuperBASIC.Functions.Goto(), 1, "GOTO"); lib.AddFunction(new SuperBASIC.Functions.Pi(), 0, "PI"); lib.AddFunction(new SuperBASIC.Functions.Euler(), 0, "EULER"); Runtime r = new Runtime(lib); r.OpenFile(Directory.GetCurrentDirectory() + "\\CasDeTest\\PrebuiltTest-TestA.basic"); r.Run(); foreach(var (expected, received) in Enumerable.Range(1,10).Zip(printer.output)) { Assert.AreEqual(expected, received); } } } }