public static void Main(string[] args) { var compiler = new BrainFuckCompiler("+++{-}"); compiler.Run(); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); }
public void ハローワールドテスト() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+."); var answerList = new System.Collections.Generic.List<byte>(); compiler.OutputEvent += output => { answerList.Add(output); }; compiler.Run(); answerList.Is( "Hello, world!".Select(ch => (byte)ch)); }
public void ループテスト_左括弧閉じられず() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("++--[-"); Assert.Throws<ApplicationException>(() => compiler.Run()); }
public void ループテスト_ネスト_ループしない() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("[[++++]]"); compiler.Run(); compiler.CurrentValue.Is((byte)0); }
public void ポインタデクリメント例外テスト() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("<"); Assert.Throws<IndexOutOfRangeException>( () => compiler.Run()); }
public void ポインタデクリメントテスト() { var compiler = new BrainFuckCompiler.BrainFuckCompiler(">><"); compiler.Run(); compiler.ProgramPointer.Is(1); }
public void ポインタインクリメント値インクリメントテスト() { var compiler = new BrainFuckCompiler.BrainFuckCompiler(">+"); compiler.Run(); compiler.CurrentValue.Is((byte)1); }
public void 出力テスト() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("+++.+.+."); var answerList = new System.Collections.Generic.List<byte>(); compiler.OutputEvent += output => { answerList.Add(output); }; compiler.Run(); //Chainning Asserition最強説 answerList.Is((byte)3,(byte)4,(byte)5); }
public void 入力テスト() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("+++,"); compiler.InputEvent += () => 10; compiler.Run(); compiler.CurrentValue.Is((byte)10); }
public void 値デクリメントテスト_通常() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("++-"); compiler.Run(); compiler.CurrentValue.Is((byte)1); }
public void 値デクリメントテスト_アンダーフロー() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("-"); compiler.Run(); compiler.CurrentValue.Is(byte.MaxValue); }
public void 値インクリメントテスト_オーバフロー() { var compiler = new BrainFuckCompiler.BrainFuckCompiler( new String( Enumerable.Range(0,256).Select(_=> '+' ).ToArray()) ); compiler.Run(); compiler.CurrentValue.Is(byte.MinValue); }
public void ループテスト_通常() { var compiler = new BrainFuckCompiler.BrainFuckCompiler("+++[-]"); compiler.Run(); compiler.CurrentValue.Is((byte)0); }