public void GoFowardでIndexが進んだCursolが手に入ります() { var tested = new Cursol("ABC"); tested = tested.GoFoward(2); tested.Index.Is(2); }
public void GoFowardは元の値をCursolを変更しません() { var tested = new Cursol("ABC"); tested.GoFoward(1); tested.Index.Is(0); }
public void GoFowardは最後の文字の一個先までしか進むことができません() { var tested = new Cursol("ABC"); tested = tested.GoFoward(4); tested.Index.Is(3); }
public void Copyは同じIndexを持つCursolを返します() { var tested = new Cursol("ABC"); tested = tested.GoFoward(1); tested.Copy().Index.Is(1); }
public void 初期状態のTextはコンストラクタで指定したものです() { var text = "ABC"; var tested = new Cursol(text); tested.Text.Is(text); }
public void GoFowardは前の状態と比較して進んだ値を指定します() { var tested = new Cursol("ABC"); tested = tested.GoFoward(1); tested = tested.GoFoward(1); tested.Index.Is(2); }
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)); }
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)); }
public void ParseAsyncはIgnoreCaseで大文字指定でも小文字を識別します() { var cursol = new Cursol("public"); var tested = new CharParser('P', true); var(isSuccess, _, _) = tested.Parse(cursol); isSuccess.IsTrue(); }
public void ParseAsyncは指定していない文字を読み込みに失敗します() { var cursol = new Cursol("internal"); var tested = new ConditionalCharParser(c => c == 'p'); var result = tested.Parse(cursol); result.isSuccess.IsFalse(); }
public void ParseAsyncはIgnoreCaseで大文字指定の場合に実際に識別した文字を結果とします() { var cursol = new Cursol("public"); var tested = new CharParser('P', true); var(_, _, parsed) = tested.Parse(cursol); parsed.Is('p'); }
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); }
public void ParseAsyncは読み込みに失敗した場合には進んでいないカーソルを返します() { var cursol = new Cursol("publi"); var tested = new WordParser("public"); var result = tested.Parse(cursol); result.cursol.Index.Is(0); }
public void ParseAsyncはIgnoreCaseでない場合に大文字指定の場合に小文字を区別します() { var cursol = new Cursol("public"); var tested = new CharParser('P'); var(isSuccess, _, _) = tested.Parse(cursol); isSuccess.IsFalse(); }
public void ParseAsyncは指定した単語を読み込みに成功します() { var cursol = new Cursol("public"); var tested = new WordParser("public"); var result = tested.Parse(cursol); result.isSuccess.IsTrue(); }
public void ParseAsyncは単語後のスペースを読み飛ばします() { var cursol = new Cursol("public "); var tested = new WordParser("public"); var result = tested.Parse(cursol); result.cursol.Index.Is(7); }
public void ParseAsyncは指定した文字を読み込みに成功します() { var cursol = new Cursol("public"); var tested = new ConditionalCharParser(c => c == 'p'); var result = tested.Parse(cursol); result.isSuccess.IsTrue(); }
public void ParseAsyncは指定した文字を読み込みます() { var cursol = new Cursol("public"); var tested = new ConditionalCharParser(c => c == 'p'); var result = tested.Parse(cursol); result.parsed.Is('p'); }
public void ParseAsyncは指定していない単語を読み込みに失敗します() { var cursol = new Cursol("publi"); var tested = new WordParser("public"); var result = tested.Parse(cursol); result.isSuccess.IsFalse(); }
public void ParseAsyncは指定した単語を読み込みます() { var cursol = new Cursol("public"); var tested = new WordParser("public"); var result = tested.Parse(cursol); result.parsed.Is("public"); }
public void ParseAsyncは読み込みに成功した場合に単語の長さだけ進んだカーソルを返します() { var cursol = new Cursol("void"); var tested = new WordParser("void"); var result = tested.Parse(cursol); result.cursol.Index.Is(4); }
public void ParseAsyncは指定した文字を読み込みに失敗します() { var cursol = new Cursol("public"); var tested = new ExpectCharParser( new CharParser('p')); var(isSuccess, _, _) = tested.Parse(cursol); isSuccess.IsFalse(); }
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(); }
public void ParseAsyncは指定ていない文字を読み込みに成功します() { var cursol = new Cursol("public"); var tested = new ExpectCharParser( new CharParser('a')); var(isSuccess, _, _) = tested.Parse(cursol); isSuccess.IsTrue(); }
public void ParseAsyncは指定していない文字を読み込みます() { var cursol = new Cursol("public"); var tested = new ExpectCharParser( new CharParser('a')); var(_, _, parsed) = tested.Parse(cursol); parsed.Is('p'); }
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(); }
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)); }
public DecideState(Cursol parent, Player p) : base(parent) { player = p; }
public void Copyは同じTextを持つCursolを返します() { var tested = new Cursol("ABC"); tested.Copy().Text.Is("ABC"); }
public NotJoinState(Cursol parent, GamePad pad) : base(parent) { gamePad = pad; }