using System; using System.Collections.Generic; using System.Text; using UnitTestSharp; using Sunweaver.Commands.Abstracts; using Sunweaver.Commands; using Sunweaver.VM; namespace Sunweaver.UnitTesting.Commands { public class addTests : TestFixture { BasePair bp = new add(); VirtualMachine VM; Codule codule; public override void TestSetup() { VM = new VirtualMachine(); codule = new Codule(); codule.BasePairs.Add(bp); } public void AddsCorrectly() { VM.Stack.Push(25); VM.Stack.Push(30); bp.Implementation(VM); CheckEqual(55, VM.Stack.Pop()); } public void Compiled() { VM.Stack.Push(25); VM.Stack.Push(30); codule.Compile(); codule.Execute(VM); CheckEqual(55, VM.Stack.Pop()); } public void NameTest() { CheckEqual("add", bp.ToString()); } public void MaxMax() { VM.Stack.Push(Sunweaver.VM.IntStack.Max); VM.Stack.Push(Sunweaver.VM.IntStack.Max); bp.Implementation(VM); CheckEqual(Sunweaver.VM.IntStack.Max - 1, VM.Stack.Pop()); } public void MinMin() { VM.Stack.Push(Sunweaver.VM.IntStack.Min); VM.Stack.Push(Sunweaver.VM.IntStack.Min); bp.Implementation(VM); CheckEqual(Sunweaver.VM.IntStack.Min + 1, VM.Stack.Pop()); } public void MaxMin() { VM.Stack.Push(Sunweaver.VM.IntStack.Max); VM.Stack.Push(Sunweaver.VM.IntStack.Min); bp.Implementation(VM); CheckEqual(0, VM.Stack.Pop()); } public void MinMax() { VM.Stack.Push(Sunweaver.VM.IntStack.Min); VM.Stack.Push(Sunweaver.VM.IntStack.Max); bp.Implementation(VM); CheckEqual(0, VM.Stack.Pop()); } } }