예제 #1
0
 @Test(expected = TypeErrorException.class)
 public void testCartesianProductException() throws FrontEndException, TLA2BException {
   final String module =
       "-------------- MODULE Testing ----------------\n"
           + "CONSTANTS k \n"
           + "ASSUME k = BOOLEAN \\X 1 \n"
           + "=================================";
   TestUtil.typeCheckString(module);
 }
예제 #2
0
  @Test(expected = TypeErrorException.class)
  public void testTypeConflict6() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "CONSTANTS a,b \n"
            + "ASSUME a = [x|->1] /\\ b = [y|->a, x|->1] /\\ a=b  \n"
            + "=================================";

    TestUtil.typeCheckString(module);
  }
예제 #3
0
  @Test(expected = TypeErrorException.class)
  public void testTypeConflict4() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "CONSTANTS k \n"
            + "ASSUME k = [a |-> k]  \n"
            + "=================================";

    TestUtil.typeCheckString(module);
  }
예제 #4
0
 /**
  * ******************************************************************** Cartesian Product
  * ********************************************************************
  */
 @Test
 public void testCartesianProduct2() throws FrontEndException, TLA2BException {
   final String module =
       "-------------- MODULE Testing ----------------\n"
           + "CONSTANTS k \n"
           + "ASSUME k = BOOLEAN \\X {1} \n"
           + "=================================";
   TestTypeChecker t = TestUtil.typeCheckString(module);
   assertEquals("POW(BOOL*INTEGER)", t.getConstantType("k").toString());
 }
예제 #5
0
  @Test(expected = TypeErrorException.class)
  public void testUnifyTuple4() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "CONSTANTS k \n"
            + "ASSUME k \\in <<TRUE>>\n"
            + "=================================";

    TestUtil.typeCheckString(module);
  }
예제 #6
0
  @Test(expected = TypeErrorException.class)
  public void testTuple2Elements() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "CONSTANTS k, k2, k3 \n"
            + "ASSUME k = <<k2, k3>> /\\ k3 = TRUE \n"
            + "=================================";

    TestUtil.typeCheckString(module);
  }
예제 #7
0
  @Test
  public void testTupleSingleElement() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "CONSTANTS k \n"
            + "ASSUME k = <<TRUE>> \n"
            + "=================================";

    TestTypeChecker t = TestUtil.typeCheckString(module);
    assertEquals("POW(INTEGER*BOOL)", t.getConstantType("k").toString());
  }
예제 #8
0
  @Test
  public void testTupleComponentsOfTheSameType() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "EXTENDS Naturals \n"
            + "CONSTANTS k \n"
            + "ASSUME k = <<1,1>> \n"
            + "=================================";

    TestTypeChecker t = TestUtil.typeCheckString(module);
    assertEquals("POW(INTEGER*INTEGER)", t.getConstantType("k").toString());
  }
예제 #9
0
  @Test
  public void testTupleFunctionCall2() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "EXTENDS Naturals \n"
            + "CONSTANTS k \n"
            + "ASSUME k = <<1,TRUE,\"str\">>[3] \n"
            + "=================================";

    TestTypeChecker t = TestUtil.typeCheckString(module);
    assertEquals("STRING", t.getConstantType("k").toString());
  }
예제 #10
0
  @Test
  public void testSimpleTuple() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "EXTENDS Naturals \n"
            + "CONSTANTS k \n"
            + "ASSUME k = <<1,TRUE>> \n"
            + "=================================";

    TestTypeChecker t = TestUtil.typeCheckString(module);
    assertEquals("INTEGER*BOOL", t.getConstantType("k").toString());
  }
예제 #11
0
  @Test
  public void testUnifyTuple3() throws FrontEndException, TLA2BException {
    final String module =
        "-------------- MODULE Testing ----------------\n"
            + "CONSTANTS k, k2, k3 \n"
            + "ASSUME k = <<k2, <<k3>> >> /\\ k3 = TRUE /\\ k2 = 1\n"
            + "=================================";

    TestTypeChecker t = TestUtil.typeCheckString(module);
    assertEquals("INTEGER*POW(INTEGER*BOOL)", t.getConstantType("k").toString());
    assertEquals("INTEGER", t.getConstantType("k2").toString());
    assertEquals("BOOL", t.getConstantType("k3").toString());
  }