コード例 #1
0
  public void testParseSymmetricNet() {
    final PeriodicGraph H =
        NetParser.stringToNet(
            ""
                + "NET # primitive cubic\n"
                + "  Group P432\n"
                + "  Node 1 0,0,0\n"
                + "  Edge 1 1 x+1,y,z\n"
                + "END\n");
    assertEquals(1, H.numberOfNodes());
    assertEquals(3, H.numberOfEdges());
    final INode v = (INode) H.nodes().next();
    assertNotNull(H.getEdge(v, v, new Vector(1, 0, 0)));
    assertNotNull(H.getEdge(v, v, new Vector(0, 1, 0)));
    assertNotNull(H.getEdge(v, v, new Vector(0, 0, 1)));

    final PeriodicGraph D =
        NetParser.stringToNet(
            ""
                + "NET # the diamond net\n"
                + "  Group Fd-3m\n"
                + "  Node 1 3/8,3/8,3/8\n"
                + "  Edge 1 1 1-x,1-y,1-z\n"
                + "END\n");

    assertEquals(dia, D);

    final PeriodicGraph sq =
        NetParser.stringToNet(
            ""
                + "NET # square lattice on the plane\n"
                + "  Group p4mm\n"
                + "  Node 1 0,0\n"
                + "  Edge 1 1 x+1,y\n"
                + "END\n");
    assertEquals(1, sq.numberOfNodes());
    assertEquals(2, sq.numberOfEdges());
    final INode w = (INode) sq.nodes().next();
    assertNotNull(sq.getEdge(w, w, new Vector(1, 0)));
    assertNotNull(sq.getEdge(w, w, new Vector(0, 1)));

    final PeriodicGraph hex1 =
        NetParser.stringToNet(
            ""
                + "NET # planar honeycombs\n"
                + "  Group p6mm\n"
                + "  Node 1 2/3,1/3\n"
                + "  Edge 1 1 y,y-x\n"
                + "END\n");
    final PeriodicGraph hex2 =
        NetParser.stringToNet(
            ""
                + "PERIODIC_GRAPH # planar honeycombs\n"
                + "  1 2  0 0\n"
                + "  1 2  1 0\n"
                + "  1 2  0 1\n"
                + "END\n");
    assertEquals(hex2, hex1);
  }