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);
 }
Exemplo n.º 4
0
 public void Inc_Tape_By_One()
 {
     var instruction = new MoveTape(1);
     var m = new MockGenerator();
     instruction.Emit(m);
     Assert.AreEqual(1, m.TapeAdvances);
 }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 7
0
 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);
 }