|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|