Package org.drools.core.util

Examples of org.drools.core.util.HierarchyEncoderImpl




    @Test
    public void testHierEncoderTrivial() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "A", Collections.EMPTY_LIST );
        encoder.encode( "B", Arrays.asList( "A" ) );
        encoder.encode( "C", Arrays.asList( "B" ) );
        encoder.encode( "D", Arrays.asList( "B", "C" ) );

        System.out.println( encoder );

        assertEqualsparseBitSet( "0" ), encoder.getCode( "A" ) );
        assertEqualsparseBitSet( "1" ), encoder.getCode( "B" ) );
        assertEqualsparseBitSet( "11" ), encoder.getCode( "C" ) );
        assertEqualsparseBitSet( "111" ), encoder.getCode( "D" ) );
    }
View Full Code Here


        assertEqualsparseBitSet( "111" ), encoder.getCode( "D" ) );
    }

    @Test
    public void testHierManyRoots() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "A", Collections.EMPTY_LIST );
        encoder.encode( "B", Collections.EMPTY_LIST );
        encoder.encode( "C", Collections.EMPTY_LIST );
        encoder.encode( "D", Collections.EMPTY_LIST );
        encoder.encode( "E", Collections.EMPTY_LIST );

        System.out.println( encoder );

        assertEqualsparseBitSet( "1" ), encoder.getCode( "A" ) );
        assertEqualsparseBitSet( "10" ), encoder.getCode( "B" ) );
        assertEqualsparseBitSet( "100" ), encoder.getCode( "C" ) );
        assertEqualsparseBitSet( "1000" ), encoder.getCode( "D" ) );
        assertEqualsparseBitSet( "10000" ), encoder.getCode( "E" ) );

        assertEquals( 5, encoder.size() );
        assertEquals( 5, encoder.getSortedMembers().size() );
        assertEquals( 5, encoder.getSortedMap().size() );

    }
View Full Code Here

    }


    @Test
    public void testHierManyRootsPropagation() {
        HierarchyEncoderImpl encoder = new HierarchyEncoderImpl();

        encoder.encode( "A", Collections.EMPTY_LIST );
        encoder.encode( "B", Arrays.asList( "A" ) );
        encoder.encode( "C", Arrays.asList( "A" ) );
        encoder.encode( "D", Arrays.asList( "B", "C" ) );
        encoder.encode( "E", Collections.EMPTY_LIST );

        System.out.println( encoder );

        BitSet a = encoder.getCode( "A" );
        BitSet b = encoder.getCode( "B" );
        BitSet c = encoder.getCode( "C" );
        BitSet d = encoder.getCode( "D" );
        BitSet e = encoder.getCode( "E" );

        assertTrue( encoder.superset( b, a ) > 0 );
        assertTrue( encoder.superset( c, a ) > 0 );
        assertTrue( encoder.superset( d, a ) > 0 );
        assertTrue( encoder.superset( d, b ) > 0 );
        assertTrue( encoder.superset( d, c ) > 0 );

        assertTrue( encoder.superset( e, a ) < 0 );
        assertTrue( encoder.superset( e, b ) < 0 );
        assertTrue( encoder.superset( e, c ) < 0 );
        assertTrue( encoder.superset( e, d ) < 0 );
        assertTrue( encoder.superset( e, e ) == 0 );

    }
View Full Code Here

    }


    @Test
    public void testHierALotOfClasses() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();
        int N = 1194;

        encoder.encode( "A", Collections.EMPTY_LIST );
        for ( int j = 1; j < N; j++ ) {
            encoder.encode( "X" + j, Arrays.asList( "A" ) );
        }

        assertEquals( N, encoder.size() );
        BitSet code = encoder.getCode( "X" + ( N -1 ) );
        assertEquals( 1, code.cardinality() );
        assertTrue( code.get( N - 2 ) );
    }
View Full Code Here



    @Test
    public void testHierEncoderSimpleInheritance() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "A", Collections.EMPTY_LIST );
        encoder.encode( "B", Arrays.asList( "A" ) );
        encoder.encode( "C", Arrays.asList( "A" ) );
        encoder.encode( "D", Arrays.asList( "B" ) );
        encoder.encode( "E", Arrays.asList( "B" ) );
        encoder.encode( "F", Arrays.asList( "C" ) );
        encoder.encode( "G", Arrays.asList( "C" ) );

        System.out.println( encoder );

        assertEquals( parseBitSet("0"), encoder.getCode("A"));
        assertEqualsparseBitSet( "1" ), encoder.getCode( "B" ) );
        assertEqualsparseBitSet( "10" ), encoder.getCode( "C" ) );
        assertEqualsparseBitSet( "101" ), encoder.getCode( "D" ) );
        assertEqualsparseBitSet( "1001" ), encoder.getCode( "E" ) );
        assertEqualsparseBitSet( "110" ), encoder.getCode( "F" ) );
        assertEqualsparseBitSet( "1010" ), encoder.getCode( "G" ) );
    }
View Full Code Here



    @Test
    public void testHierEncoderAnotherSimpleInheritance() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "R", Collections.EMPTY_LIST );
        encoder.encode( "A1", Arrays.asList( "R" ) );
        encoder.encode( "A2", Arrays.asList( "R" ) );
        encoder.encode( "A3", Arrays.asList( "R" ) );
        encoder.encode( "B1", Arrays.asList( "R" ) );
        encoder.encode( "B2", Arrays.asList( "R" ) );
        encoder.encode( "B3", Arrays.asList( "R" ) );
        encoder.encode( "B4", Arrays.asList( "B1", "B2" ) );
        encoder.encode( "B5", Arrays.asList( "B1", "B3" ) );
        encoder.encode( "B6", Arrays.asList( "B2", "B3" ) );
        encoder.encode( "B7", Arrays.asList( "B4", "B5", "B6" ) );

        System.out.println( encoder );

        assertEquals( parseBitSet( "0"), encoder.getCode("R"));
        assertEqualsparseBitSet( "1" ), encoder.getCode( "A1" ) );
        assertEqualsparseBitSet( "10" ), encoder.getCode( "A2" ) );
        assertEqualsparseBitSet( "100" ), encoder.getCode( "A3" ) );
        assertEqualsparseBitSet( "1000" ), encoder.getCode( "B1" ) );
        assertEqualsparseBitSet( "10000" ), encoder.getCode( "B2" ) );
        assertEqualsparseBitSet( "100000" ), encoder.getCode( "B3" ) );
        assertEqualsparseBitSet( "11000" ), encoder.getCode( "B4" ) );
        assertEqualsparseBitSet( "101000" ), encoder.getCode( "B5" ) );
        assertEqualsparseBitSet( "110000" ), encoder.getCode( "B6" ) );
        assertEqualsparseBitSet( "111000" ), encoder.getCode( "B7" ) );
    }
View Full Code Here

    }


    @Test
    public void testConflictArising2() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "A", Collections.EMPTY_LIST );
        encoder.encode( "B", Arrays.asList( "A" ) );
        encoder.encode( "C", Arrays.asList( "A" ) );
        encoder.encode( "D", Arrays.asList( "B" ) );
        encoder.encode( "E", Arrays.asList( "B" ) );
        encoder.encode( "F", Arrays.asList( "C" ) );
        encoder.encode( "G", Arrays.asList( "C" ) );
        encoder.encode( "H", Arrays.asList( "E" ) );
        encoder.encode( "J", Arrays.asList( "F" ) );
        encoder.encode( "K", Arrays.asList( "J" ) );


        System.out.println( encoder );

        encoder.encode( "I", Arrays.asList( "E", "F" ) );

        System.out.println( encoder );

        checkHier( encoder, 'K' );
View Full Code Here



    @Test
    public void testHierEncoderBipartiteStarInheritance() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "R", Collections.EMPTY_LIST );

        encoder.encode( "B1", Arrays.asList( "R" ) );
        encoder.encode( "B2", Arrays.asList( "R" ) );
        encoder.encode( "B3", Arrays.asList( "R" ) );
        encoder.encode( "B4", Arrays.asList( "B1", "B2" ) );
        encoder.encode( "B5", Arrays.asList( "B1", "B3" ) );
        encoder.encode( "B6", Arrays.asList( "B2", "B3" ) );
        encoder.encode( "B7", Arrays.asList( "B4", "B5", "B6" ) );

        encoder.encode( "A1", Arrays.asList( "R" ) );
        encoder.encode( "A2", Arrays.asList( "R" ) );
        encoder.encode( "A3", Arrays.asList( "R" ) );
        encoder.encode( "A4", Arrays.asList( "A1", "A2", "A3" ) );
        encoder.encode( "A5", Arrays.asList( "A4" ) );
        encoder.encode( "A6", Arrays.asList( "A4" ) );
        encoder.encode( "A7", Arrays.asList( "A4" ) );


        System.out.println( encoder );

        assertEquals( parseBitSet( "0"), encoder.getCode("R"));
        assertEqualsparseBitSet( "1" ), encoder.getCode( "B1" ) );
        assertEqualsparseBitSet( "10" ), encoder.getCode( "B2" ) );
        assertEqualsparseBitSet( "100" ), encoder.getCode( "B3" ) );
        assertEqualsparseBitSet( "11" ), encoder.getCode( "B4" ) );
        assertEqualsparseBitSet( "101" ), encoder.getCode( "B5" ) );
        assertEqualsparseBitSet( "110" ), encoder.getCode( "B6" ) );
        assertEqualsparseBitSet( "111" ), encoder.getCode( "B7" ) );
        assertEqualsparseBitSet( "1000" ), encoder.getCode( "A1" ) );
        assertEqualsparseBitSet( "10000" ), encoder.getCode( "A2" ) );
        assertEqualsparseBitSet( "100000" ), encoder.getCode( "A3" ) );
        assertEqualsparseBitSet( "111000" ), encoder.getCode( "A4" ) );
        assertEqualsparseBitSet( "1111000" ), encoder.getCode( "A5" ) );
        assertEqualsparseBitSet( "10111000" ), encoder.getCode( "A6" ) );
        assertEqualsparseBitSet( "100111000" ), encoder.getCode( "A7" ) );
    }
View Full Code Here

    }


    @Test
    public void testHierEncoderBipartiteStarInheritanceDiffOrder() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "R", Collections.EMPTY_LIST );

        encoder.encode( "A1", Arrays.asList( "R" ) );
        encoder.encode( "A2", Arrays.asList( "R" ) );
        encoder.encode( "A3", Arrays.asList( "R" ) );
        encoder.encode( "A4", Arrays.asList( "A1", "A2", "A3" ) );
        encoder.encode( "A5", Arrays.asList( "A4" ) );
        encoder.encode( "A6", Arrays.asList( "A4" ) );
        encoder.encode( "A7", Arrays.asList( "A4" ) );

        encoder.encode( "B1", Arrays.asList( "R" ) );
        encoder.encode( "B2", Arrays.asList( "R" ) );
        encoder.encode( "B3", Arrays.asList( "R" ) );
        encoder.encode( "B4", Arrays.asList( "B1", "B2" ) );
        encoder.encode( "B5", Arrays.asList( "B1", "B3" ) );
        encoder.encode( "B6", Arrays.asList( "B2", "B3" ) );
        encoder.encode( "B7", Arrays.asList( "B4", "B5", "B6" ) );



        System.out.println( encoder );

        assertEquals( parseBitSet( "0"), encoder.getCode("R"));

        assertEqualsparseBitSet( "1" ), encoder.getCode( "A1" ) );
        assertEqualsparseBitSet( "10" ), encoder.getCode( "A2" ) );
        assertEqualsparseBitSet( "100" ), encoder.getCode( "A3" ) );
        assertEqualsparseBitSet( "111" ), encoder.getCode( "A4" ) );
        assertEqualsparseBitSet( "1111" ), encoder.getCode( "A5" ) );
        assertEqualsparseBitSet( "10111" ), encoder.getCode( "A6" ) );
        assertEqualsparseBitSet( "100111" ), encoder.getCode( "A7" ) );

        assertEqualsparseBitSet( "1000000" ), encoder.getCode( "B1" ) );
        assertEqualsparseBitSet( "10000000" ), encoder.getCode( "B2" ) );
        assertEqualsparseBitSet( "100000000" ), encoder.getCode( "B3" ) );
        assertEqualsparseBitSet( "011000000" ), encoder.getCode( "B4" ) );
        assertEqualsparseBitSet( "101000000" ), encoder.getCode( "B5" ) );
        assertEqualsparseBitSet( "110000000" ), encoder.getCode( "B6" ) );
        assertEqualsparseBitSet( "111000000" ), encoder.getCode( "B7" ) );
    }
View Full Code Here

    }


    @Test
    public void testHierEncoderComplexInheritance() {
        HierarchyEncoder encoder = new HierarchyEncoderImpl();

        encoder.encode( "A", Collections.EMPTY_LIST );
        checkHier( encoder, 'A' );

        encoder.encode( "B", Arrays.asList( "A" ) );
        checkHier( encoder, 'B' );

        encoder.encode( "C", Arrays.asList( "A" ) );
        checkHier( encoder, 'C' );

        encoder.encode( "D", Arrays.asList( "B" ) );
        checkHier( encoder, 'D' );

        encoder.encode( "E", Arrays.asList( "B" ) );
        checkHier( encoder, 'E' );

        encoder.encode( "F", Arrays.asList( "C" ) );
        checkHier( encoder, 'F' );

        encoder.encode( "G", Arrays.asList( "C" ) );
        checkHier( encoder, 'G' );

        encoder.encode( "H", Arrays.asList( "D" ) );
        checkHier( encoder, 'H' );

        encoder.encode( "I", Arrays.asList( "D" ) );
        checkHier( encoder, 'I' );
//
        encoder.encode( "J", Arrays.asList( "E", "F" ) );
        checkHier( encoder, 'J' );

        encoder.encode( "K", Arrays.asList( "E", "F" ) );
        checkHier( encoder, 'K' );

        encoder.encode( "L", Arrays.asList( "G" ) );
        checkHier( encoder, 'L' );

        encoder.encode( "M", Arrays.asList( "G" ) );
        checkHier( encoder, 'M' );

        encoder.encode( "N", Arrays.asList( "I", "L" ) );
        checkHier( encoder, 'N' );

        encoder.encode( "O", Arrays.asList( "H", "M" ) );
        checkHier( encoder, 'O' );

        System.out.println( encoder );

        Collection<BitSet> codes = encoder.getSortedMap().values();
        Iterator<BitSet> iter = codes.iterator();
        Long last = -1L;
        for ( int j = 0; j < codes.size() -1; j++ ) {
            BitSet ns = iter.next();
            Long next = toLong( ns );
View Full Code Here

TOP

Related Classes of org.drools.core.util.HierarchyEncoderImpl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.