public void Inc_Value_By_One() { var instruction = new IncrementCurrentValue(1); var m = new MockGenerator(); instruction.Emit(m); Assert.AreEqual(1, m.ValueIncrements); }
public void WriteOut_Works() { var instruction = new WriteOutCurrentValue(); var m = new MockGenerator(); instruction.Emit(m); Assert.AreEqual(1, m.Writes); }
public void ReadAndStore_Works() { var instruction = new ReadAndStoreChar(); var m = new MockGenerator(); instruction.Emit(m); Assert.AreEqual(1, m.Reads); }
public void Inc_Tape_By_One() { var instruction = new MoveTape(1); var m = new MockGenerator(); instruction.Emit(m); Assert.AreEqual(1, m.TapeAdvances); }
public void Dec_Tape_By_One() { var instruction = new MoveTape(-1); var m = new MockGenerator(); instruction.Emit(m); Assert.AreEqual(1, m.TapeBacks); }
public void InstructionContainer_IncVal_DecVal() { var instruction = new InstructionContainer(new [] { new IncrementCurrentValue(1), new IncrementCurrentValue(-1) }); var m = new MockGenerator(); instruction.Emit(m); Assert.AreEqual(1, m.ValueDecrements); Assert.AreEqual(1, m.ValueIncrements); }
public void While_Dec_Dec() { var instruction = new WhileLoop(new InstructionContainer(new [] { new IncrementCurrentValue(-1), new IncrementCurrentValue(-1) })); var m = new MockGenerator(); instruction.Emit(m); Assert.AreEqual(2, m.ValueDecrements); Assert.AreEqual(1, m.LoopBegins); Assert.AreEqual(1, m.LoopEnds); }