Example #1
0
  @Test
  public void test3() throws Exception {
    NFARuleBook nfaRuleBook =
        new NFARuleBook(
            Arrays.asList(
                new FARule("1", FARule.NIL, "2"),
                new FARule("1", FARule.NIL, "4"),
                new FARule("2", 'a', "3"),
                new FARule("3", 'a', "2"),
                new FARule("4", 'a', "5"),
                new FARule("5", 'a', "6"),
                new FARule("6", 'a', "4")));

    final Set<String> actual = nfaRuleBook.nextStates(SetCreator.create("1"), FARule.NIL);
    assertThat(actual.contains("2"), equalTo(true));
    assertThat(actual.contains("4"), equalTo(true));

    nfaRuleBook =
        new NFARuleBook(
            Arrays.asList(
                new FARule("1", FARule.NIL, "2"),
                new FARule("1", FARule.NIL, "4"),
                new FARule("2", 'a', "3"),
                new FARule("3", 'a', "2"),
                new FARule("4", 'a', "5"),
                new FARule("5", 'a', "6"),
                new FARule("6", 'a', "4")));

    final Set<String> actualFree = nfaRuleBook.followFreeMoves(SetCreator.create("1"));
    assertThat(actualFree.contains("1"), equalTo(true));
    assertThat(actualFree.contains("2"), equalTo(true));
    assertThat(actualFree.contains("4"), equalTo(true));
    assertThat(actualFree.contains("3"), equalTo(false));
  }
Example #2
0
  @Test
  public void test1() throws Exception {

    NFARuleBook ruleBook =
        new NFARuleBook(
            Arrays.asList(
                new FARule("1", 'a', "1"),
                new FARule("1", 'b', "1"),
                new FARule("1", 'b', "2"),
                new FARule("2", 'a', "3"),
                new FARule("2", 'b', "3"),
                new FARule("3", 'a', "4"),
                new FARule("3", 'b', "4")));

    Set<String> actual = ruleBook.nextStates(SetCreator.create("1"), 'b');
    assertThat(actual.contains("1"), equalTo(true));
    assertThat(actual.contains("2"), equalTo(true));

    actual = ruleBook.nextStates(SetCreator.create("1", "2"), 'a');
    assertThat(actual.contains("1"), equalTo(true));
    assertThat(actual.contains("3"), equalTo(true));

    actual = ruleBook.nextStates(SetCreator.create("1", "3"), 'b');
    assertThat(actual.contains("1"), equalTo(true));
    assertThat(actual.contains("2"), equalTo(true));
    assertThat(actual.contains("4"), equalTo(true));
  }