Exemplo n.º 1
0
        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);
 }