예제 #1
0
  def test_2(self):

    from mmtbx.geometry.shared_types import voxelizer
    v = voxelizer( base = ( 0, 0, 0 ), step = ( 1, 1, 1 ) )
    indexer = indexing.hash( voxelizer = v, margin = 2 )

    for ( coords, obj ) in OBJECTS:
      indexer.add( object = obj, position = coords )

    self.assertEqual( len( indexer ), len( OBJECTS ) )
    self.assertEqual( indexer.cubes(), 8 )

    self.assertEqual(
      sorted( indexer.close_to( centre = ( 0, 0, 0 ) ) ),
      [ 1, 1, 1.5, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 0.5, 0.5, 0.5 ) ) ),
      [ 1, 1, 1.5, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 0, 0, 3 ) ) ),
      [ 1.7, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 1, 1, 1 ) ) ),
      [ 1, 1, 1, 1.5, 1.7, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 2, 2, 2 ) ) ),
      [ 1, 1, 1, 1.5, 1.7, 2, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 3, 3, 3 ) ) ),
      [ 1, 2, 3, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 4, 4, 4 ) ) ),
      [ 1, 3, 4, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 5, 5, 5 ) ) ),
      [ 1, 3, 4, 5, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 6, 6, 6 ) ) ),
      [ 3, 4, 5, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 7, 7, 7 ) ) ),
      [ 3, 4, 5 ],
      )
예제 #2
0
  def test_2(self):

    from mmtbx.geometry.shared_types import voxelizer
    v = voxelizer( base = ( 0, 0, 0 ), step = ( 1, 1, 1 ) )
    indexer = indexing.hash( voxelizer = v, margin = 2 )

    for ( coords, obj ) in OBJECTS:
      indexer.add( object = obj, position = coords )

    self.assertEqual( len( indexer ), len( OBJECTS ) )
    self.assertEqual( indexer.cubes(), 8 )

    self.assertEqual(
      sorted( indexer.close_to( centre = ( 0, 0, 0 ) ) ),
      [ 1, 1, 1.5, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 0.5, 0.5, 0.5 ) ) ),
      [ 1, 1, 1.5, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 0, 0, 3 ) ) ),
      [ 1.7, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 1, 1, 1 ) ) ),
      [ 1, 1, 1, 1.5, 1.7, 2 ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 2, 2, 2 ) ) ),
      [ 1, 1, 1, 1.5, 1.7, 2, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 3, 3, 3 ) ) ),
      [ 1, 2, 3, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 4, 4, 4 ) ) ),
      [ 1, 3, 4, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 5, 5, 5 ) ) ),
      [ 1, 3, 4, 5, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 6, 6, 6 ) ) ),
      [ 3, 4, 5, "foo" ],
      )
    self.assertEqual(
      sorted( indexer.close_to( centre = ( 7, 7, 7 ) ) ),
      [ 3, 4, 5 ],
      )
예제 #3
0
파일: indexing.py 프로젝트: dials/cctbx
    def hash(
        cls,
        base,
        maxdist,
        datagen=lambda o, a: None,
        subdivision=1,
        safescale=1.01,
    ):

        boxsize = safescale / subdivision * maxdist

        from mmtbx.geometry import shared_types
        voxelizer = shared_types.voxelizer(
            base=base,
            step=(boxsize, boxsize, boxsize),
        )

        return cls(
            indexer=hash(voxelizer=voxelizer, margin=subdivision),
            datagen=datagen,
            maxdist=maxdist,
        )
예제 #4
0
  def hash(
    cls,
    base,
    maxdist,
    datagen = lambda o, a: None,
    subdivision = 1,
    safescale = 1.01,
    ):

    boxsize = safescale / subdivision * maxdist

    from mmtbx.geometry import shared_types
    voxelizer = shared_types.voxelizer(
      base = base,
      step = ( boxsize, boxsize, boxsize ),
      )

    return cls(
      indexer = hash( voxelizer = voxelizer, margin = subdivision ),
      datagen = datagen,
      maxdist = maxdist,
      )
예제 #5
0
    def setUp(self):

        self.voxelizer = shared_types.voxelizer(
            base=(100, 200, 300),
            step=(2.0, 3.0, 4.0),
        )
예제 #6
0
  def setUp(self):

    self.voxelizer = shared_types.voxelizer(
      base = ( 100, 200, 300 ),
      step = ( 2.0, 3.0, 4.0 ),
      )