@Test public void testPackNestedExists() { final GroupElement exists1 = GroupElementFactory.newExistsInstance(); final Pattern pattern1 = new Pattern( 0, null ); exists1.addChild( pattern1 ); assertEquals( 1, exists1.getChildren().size() ); assertSame( pattern1, exists1.getChildren().get( 0 ) ); final GroupElement exists2 = GroupElementFactory.newExistsInstance(); exists2.addChild( exists1 ); exists2.pack(); assertEquals( 1, exists2.getChildren().size() ); assertSame( pattern1, exists2.getChildren().get( 0 ) ); }
@Test public void testAddSingleBranchAnd() { final GroupElement and1 = GroupElementFactory.newAndInstance(); final Pattern pattern = new Pattern( 0, null ); and1.addChild( pattern ); assertEquals( 1, and1.getChildren().size() ); assertSame( pattern, and1.getChildren().get( 0 ) ); final GroupElement or1 = GroupElementFactory.newOrInstance(); or1.addChild( and1 ); or1.pack(); assertEquals( 1, or1.getChildren().size() ); assertSame( pattern, or1.getChildren().get( 0 ) ); }
@Test public void testAddSingleBranchOr() { final GroupElement or1 = GroupElementFactory.newOrInstance(); final Pattern pattern = new Pattern( 0, null ); or1.addChild( pattern ); assertEquals( 1, or1.getChildren().size() ); assertSame( pattern, or1.getChildren().get( 0 ) ); final GroupElement and1 = GroupElementFactory.newAndInstance(); and1.addChild( or1 ); and1.pack(); assertEquals( 1, and1.getChildren().size() ); assertSame( pattern, and1.getChildren().get( 0 ) ); }
@Test public void testPackNestedAnd() { final GroupElement and1 = GroupElementFactory.newAndInstance(); final Pattern pattern1 = new Pattern( 0, null ); and1.addChild( pattern1 ); final Pattern pattern2 = new Pattern( 0, null ); and1.addChild( pattern2 ); assertEquals( 2, and1.getChildren().size() ); assertSame( pattern1, and1.getChildren().get( 0 ) ); assertSame( pattern2, and1.getChildren().get( 1 ) ); final GroupElement and2 = GroupElementFactory.newAndInstance(); and2.addChild( and1 ); and2.pack(); assertEquals( 2, and2.getChildren().size() ); assertSame( pattern1, and2.getChildren().get( 0 ) ); assertSame( pattern2, and2.getChildren().get( 1 ) ); }
@Test public void testPackNestedOr() { final GroupElement or1 = GroupElementFactory.newOrInstance(); final Pattern pattern1 = new Pattern( 0, null ); or1.addChild( pattern1 ); final Pattern pattern2 = new Pattern( 0, null ); or1.addChild( pattern2 ); assertEquals( 2, or1.getChildren().size() ); assertSame( pattern1, or1.getChildren().get( 0 ) ); assertSame( pattern2, or1.getChildren().get( 1 ) ); final GroupElement or2 = GroupElementFactory.newOrInstance(); or2.addChild( or1 ); or2.pack(); assertEquals( 2, or2.getChildren().size() ); assertSame( pattern1, or2.getChildren().get( 0 ) ); assertSame( pattern2, or2.getChildren().get( 1 ) ); }
and2.addChild( pattern3 ); and2.pack(); assertEquals( 3, and2.getChildren().size() );