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