Пример #1
0
        public void GoFowardでIndexが進んだCursolが手に入ります()
        {
            var tested = new Cursol("ABC");

            tested = tested.GoFoward(2);
            tested.Index.Is(2);
        }
Пример #2
0
        public void GoFowardは元の値をCursolを変更しません()
        {
            var tested = new Cursol("ABC");

            tested.GoFoward(1);
            tested.Index.Is(0);
        }
Пример #3
0
        public void GoFowardは最後の文字の一個先までしか進むことができません()
        {
            var tested = new Cursol("ABC");

            tested = tested.GoFoward(4);
            tested.Index.Is(3);
        }
Пример #4
0
        public void Copyは同じIndexを持つCursolを返します()
        {
            var tested = new Cursol("ABC");

            tested = tested.GoFoward(1);
            tested.Copy().Index.Is(1);
        }
Пример #5
0
        public void 初期状態のTextはコンストラクタで指定したものです()
        {
            var text   = "ABC";
            var tested = new Cursol(text);

            tested.Text.Is(text);
        }
Пример #6
0
        public void GoFowardは前の状態と比較して進んだ値を指定します()
        {
            var tested = new Cursol("ABC");

            tested = tested.GoFoward(1);
            tested = tested.GoFoward(1);
            tested.Index.Is(2);
        }
Пример #7
0
        public void ParseAsyncは内部パーサーと同じように成功します()
        {
            var cursol = new Cursol("public");
            var parser = new CharParser('p');
            var tested = new DebugParser <char>(parser, () => { });

            (tested.Parse(cursol)).IsStructuralEqual(parser.Parse(cursol));
        }
Пример #8
0
        public void ParseAsyncは内部パーサーと同じように失敗します()
        {
            var cursol = new Cursol("public");
            var parser = new CharParser('a');
            var tested = new RecursiveParser <char>(() => parser);

            (tested.Parse(cursol)).IsStructuralEqual(parser.Parse(cursol));
        }
Пример #9
0
        public void ParseAsyncはIgnoreCaseで大文字指定でも小文字を識別します()
        {
            var cursol = new Cursol("public");
            var tested = new CharParser('P', true);

            var(isSuccess, _, _) = tested.Parse(cursol);

            isSuccess.IsTrue();
        }
Пример #10
0
        public void ParseAsyncは指定していない文字を読み込みに失敗します()
        {
            var cursol = new Cursol("internal");
            var tested = new ConditionalCharParser(c => c == 'p');

            var result = tested.Parse(cursol);

            result.isSuccess.IsFalse();
        }
Пример #11
0
        public void ParseAsyncはIgnoreCaseで大文字指定の場合に実際に識別した文字を結果とします()
        {
            var cursol = new Cursol("public");
            var tested = new CharParser('P', true);

            var(_, _, parsed) = tested.Parse(cursol);

            parsed.Is('p');
        }
Пример #12
0
        public void ParseAsyncは読み込みに成功した場合にその分進んだカーソルを返します()
        {
            var cursol = new Cursol("public");
            var tested = new ConditionalCharParser(c => c == 'p');

            var result = tested.Parse(cursol);

            result.cursol.Index.Is(1);
        }
Пример #13
0
        public void ParseAsyncは読み込みに失敗した場合には進んでいないカーソルを返します()
        {
            var cursol = new Cursol("publi");
            var tested = new WordParser("public");

            var result = tested.Parse(cursol);

            result.cursol.Index.Is(0);
        }
Пример #14
0
        public void ParseAsyncはIgnoreCaseでない場合に大文字指定の場合に小文字を区別します()
        {
            var cursol = new Cursol("public");
            var tested = new CharParser('P');

            var(isSuccess, _, _) = tested.Parse(cursol);

            isSuccess.IsFalse();
        }
Пример #15
0
        public void ParseAsyncは指定した単語を読み込みに成功します()
        {
            var cursol = new Cursol("public");
            var tested = new WordParser("public");

            var result = tested.Parse(cursol);

            result.isSuccess.IsTrue();
        }
Пример #16
0
        public void ParseAsyncは単語後のスペースを読み飛ばします()
        {
            var cursol = new Cursol("public ");
            var tested = new WordParser("public");

            var result = tested.Parse(cursol);

            result.cursol.Index.Is(7);
        }
Пример #17
0
        public void ParseAsyncは指定した文字を読み込みに成功します()
        {
            var cursol = new Cursol("public");
            var tested = new ConditionalCharParser(c => c == 'p');

            var result = tested.Parse(cursol);

            result.isSuccess.IsTrue();
        }
Пример #18
0
        public void ParseAsyncは指定した文字を読み込みます()
        {
            var cursol = new Cursol("public");
            var tested = new ConditionalCharParser(c => c == 'p');

            var result = tested.Parse(cursol);

            result.parsed.Is('p');
        }
Пример #19
0
        public void ParseAsyncは指定していない単語を読み込みに失敗します()
        {
            var cursol = new Cursol("publi");
            var tested = new WordParser("public");

            var result = tested.Parse(cursol);

            result.isSuccess.IsFalse();
        }
Пример #20
0
        public void ParseAsyncは指定した単語を読み込みます()
        {
            var cursol = new Cursol("public");
            var tested = new WordParser("public");

            var result = tested.Parse(cursol);

            result.parsed.Is("public");
        }
Пример #21
0
        public void ParseAsyncは読み込みに成功した場合に単語の長さだけ進んだカーソルを返します()
        {
            var cursol = new Cursol("void");
            var tested = new WordParser("void");

            var result = tested.Parse(cursol);

            result.cursol.Index.Is(4);
        }
Пример #22
0
        public void ParseAsyncは指定した文字を読み込みに失敗します()
        {
            var cursol = new Cursol("public");
            var tested = new ExpectCharParser(
                new CharParser('p'));

            var(isSuccess, _, _) = tested.Parse(cursol);

            isSuccess.IsFalse();
        }
Пример #23
0
        public SelectingState(Cursol parent, Player p)
            : base(parent)
        {
            cursol = parent;
            player = p;
            Vector3 scale = Vector3.one;
            velocity = new Vector3(128F * scale.x, 0, 0);

            cursol.Scaling();
        }
Пример #24
0
        public void ParseAsyncは指定ていない文字を読み込みに成功します()
        {
            var cursol = new Cursol("public");
            var tested = new ExpectCharParser(
                new CharParser('a'));

            var(isSuccess, _, _) = tested.Parse(cursol);

            isSuccess.IsTrue();
        }
Пример #25
0
        public void ParseAsyncは指定していない文字を読み込みます()
        {
            var cursol = new Cursol("public");
            var tested = new ExpectCharParser(
                new CharParser('a'));

            var(_, _, parsed) = tested.Parse(cursol);

            parsed.Is('p');
        }
Пример #26
0
        public SelectingState(Cursol parent, Player p)
            : base(parent)
        {
            cursol = parent;
            player = p;
            Vector3 scale = Vector3.one;

            velocity = new Vector3(128F * scale.x, 0, 0);

            cursol.Scaling();
        }
Пример #27
0
        public void ParseAsyncは指定したActionを呼びます()
        {
            bool isActioned = false;
            var  cursol     = new Cursol("public");
            var  parser     = new CharParser('a');
            var  tested     = new DebugParser <char>(parser, () => { isActioned = true; });

            isActioned.IsFalse();
            tested.Parse(cursol);
            isActioned.IsTrue();
        }
Пример #28
0
        protected override (bool isSuccess, Cursol cursol, T parsed) ParseCore(Cursol cursol)
        {
            var  current = cursol;
            bool isSuccess;

            do
            {
                (isSuccess, current, _) = WhiteSpace.Parse(current);
            } while (isSuccess);

            return(Parser.Parse(current));
        }
Пример #29
0
 public DecideState(Cursol parent, Player p)
     : base(parent)
 {
     player = p;
 }
Пример #30
0
        public void Copyは同じTextを持つCursolを返します()
        {
            var tested = new Cursol("ABC");

            tested.Copy().Text.Is("ABC");
        }
Пример #31
0
 public NotJoinState(Cursol parent, GamePad pad)
     : base(parent)
 {
     gamePad = pad;
 }
Пример #32
0
 public NotJoinState(Cursol parent, GamePad pad)
     : base(parent)
 {
     gamePad = pad;
 }
Пример #33
0
 public DecideState(Cursol parent, Player p)
     : base(parent)
 {
     player = p;
 }