Esempio n. 1
0
    def test_point_index( self ):

        s = set()

        # Test Initialisation and data access
        point_index = GridPointIndex( None )
        s.add( point_index )
        assert point_index.level_and_pos( 0 ) == (0,0)
        assert point_index.level_and_pos( 1 ) == (0,0)
        assert point_index.level_and_pos( 2 ) == (0,0)

        point_index = GridPointIndex( numpy.array( [[1,1,0]], numpy.int32 ) )
        s.add( point_index )
        assert point_index.level_and_pos( 0 ) == (0,0)
        assert point_index.level_and_pos( 1 ) == (1,0)
        assert point_index.level_and_pos( 2 ) == (0,0)

        point_index = GridPointIndex( numpy.array( [[2,1,0]], numpy.int32 ) )
        s.add( point_index )
        assert point_index.level_and_pos( 0 ) == (0,0)
        assert point_index.level_and_pos( 1 ) == (0,0)
        assert point_index.level_and_pos( 2 ) == (1,0)

        point_index = GridPointIndex( numpy.array( [[1,1,0],[2,1,0]], 
                                                   numpy.int32 ) )
        s.add( point_index )
        assert point_index.level_and_pos( 0 ) == (0,0)
        assert point_index.level_and_pos( 1 ) == (1,0)
        assert point_index.level_and_pos( 2 ) == (1,0)

        point_index = GridPointIndex( numpy.array( [[0,1,0],[2,1,0]], 
                                                   numpy.int32 ) )
        s.add( point_index )
        assert point_index.level_and_pos( 0 ) == (1,0)
        assert point_index.level_and_pos( 1 ) == (0,0)
        assert point_index.level_and_pos( 2 ) == (1,0)

        point_index = GridPointIndex( numpy.array( [[0,1,0],[1,1,0]], 
                                                   numpy.int32 ) )
        s.add( point_index )
        assert point_index.level_and_pos( 0 ) == (1,0)
        assert point_index.level_and_pos( 1 ) == (1,0)
        assert point_index.level_and_pos( 2 ) == (0,0)

        # Test hashing
        true_grid_point_indices = {}
        true_grid_point_indices[ None ] = 0
        true_grid_point_indices[((1,1,0),)] = 0
        true_grid_point_indices[((2,1,0),)] = 0
        true_grid_point_indices[((1,1,0),(2,1,0))] = 0
        true_grid_point_indices[((0,1,0),(2,1,0))] = 0
        true_grid_point_indices[((0,1,0),(1,1,0))] = 0
        
        assert len( s ) == 6
        for pt in s:
            if ( not pt.is_root() ):
                # convert array to tuple
                key = tuple( tuple(x) for x in pt.get_id() )
                assert true_grid_point_indices.has_key( key )

        # add point already in set. The set should remain the same
        s.add( point_index )
        assert len( s ) == 6