using System; using System.Collections.Generic; using System.Text; using UnitTestSharp; using DNAModule.Sunweaver.Commands; using DNAModule.Sunweaver.Commands.BinaryMath; using DNAModule.Sunweaver.Commands.Abstracts; using DNAModule.Sunweaver.DataPrototypes; namespace DNAModule.Sunweaver.UnitTests { public class CoduleTests : TestFixture { Codule codule; public override void TestSetup() { List<BasePair> dna = new List<BasePair>(); dna.Add(new Constant(10)); dna.Add(new Constant(20)); dna.Add(new add()); codule = new Codule(dna); } public void ExecutesRight() { VirtualMachine VM = new VirtualMachine(); codule.Execute(VM); CheckEqual(1, VM.Stack.Count()); CheckEqual(30, VM.Stack.Pop()); } public void stop() { codule.BasePairs.Add(new stop()); codule.BasePairs.Add(new Constant(10)); codule.BasePairs.Add(new Constant(20)); codule.BasePairs.Add(new add()); codule.BasePairs.Add(new add()); VirtualMachine VM = new VirtualMachine(); codule.Execute(VM); CheckEqual(30, VM.Stack.Pop()); } public void start() { codule.BasePairs.Add(new stop()); codule.BasePairs.Add(new start()); codule.BasePairs.Add(new Constant(10)); VirtualMachine VM = new VirtualMachine(); codule.Execute(VM); CheckEqual(10, VM.Stack.Pop()); } } }