def test_potential_jumps_if_lattice_is_mostly_filled( self, mock_Jump ): # lattice is mostly occupied
mock_Jump.side_effect = [ 'jump1', 'jump2' ]
self.lattice.number_of_occupied_sites = 3
self.lattice_number_of_sites = 4
site = Mock( spec=Site )
site.neighbours = [ 2, 3 ]
vacant_sites = [ site ]
occupied_sites = [ Mock( spec=Site ), Mock( spec=Site ), Mock( spec=Site ) ]
for s in occupied_sites:
s.is_occupied = True
self.lattice.nn_energy = 'A'
self.lattice.cn_energies = 'B'
self.lattice.jump_lookup_table = 'C'
with patch( 'lattice_mc.lattice.Lattice.vacant_sites' ) as mock_vacant_sites:
with patch( 'lattice_mc.lattice.Lattice.site_with_id' ) as mock_site_with_id:
mock_vacant_sites.return_value = vacant_sites
mock_site_with_id.side_effect = occupied_sites[:2]
jumps = self.lattice.potential_jumps()
self.assertEqual( jumps, [ 'jump1', 'jump2' ] )
self.assertEqual( mock_Jump.mock_calls[0][1], ( occupied_sites[0], site, 'A', 'B', 'C' ) )
self.assertEqual( mock_Jump.mock_calls[1][1], ( occupied_sites[1], site, 'A', 'B', 'C' ) )
mock_site_with_id.assert_has_calls( [ call(2), call(3) ] )
评论列表
文章目录