@@ -41,6 +41,14 @@ def rdf_s(u, sels, scheduler):
4141 return InterRDF_s (u , sels ).run ()
4242
4343
44+ @pytest .fixture (scope = 'module' )
45+ def rdf_ref (u ):
46+ s1 = u .select_atoms ('name ZND and resid 289' )
47+ s2 = u .select_atoms (
48+ 'name OD1 and resid 51 and sphzone 5.0 (resid 289)' )
49+ return rdf .InterRDF (s1 , s2 ).run ()
50+
51+
4452def test_nbins (u , sels ):
4553 rdf = InterRDF_s (u , sels , nbins = 412 ).run ()
4654
@@ -100,13 +108,12 @@ def test_reduce(rdf_s):
100108
101109
102110@pytest .mark .parametrize ("n_blocks" , [1 , 2 , 3 , 4 ])
103- def test_same_result (u , sels , n_blocks ):
111+ def test_same_result (u , sels , n_blocks , rdf_ref ):
104112 # should see same results from analysis.rdf.InterRDF_s
105113 # and pmda.rdf.InterRDF_s
106- nrdf = rdf .InterRDF_s (u , sels ).run ()
107114 prdf = InterRDF_s (u , sels ).run (n_blocks = n_blocks )
108- assert_almost_equal (nrdf .count [ 0 ][ 0 ][ 0 ] , prdf .count [0 ][0 ][0 ])
109- assert_almost_equal (nrdf .rdf [ 0 ][ 0 ][ 0 ] , prdf .rdf [0 ][0 ][0 ])
115+ assert_almost_equal (rdf_ref .count , prdf .count [0 ][0 ][0 ])
116+ assert_almost_equal (rdf_ref .rdf , prdf .rdf [0 ][0 ][0 ])
110117
111118
112119@pytest .mark .parametrize ("step" , [1 , 2 , 3 ])
@@ -115,12 +122,17 @@ def test_trj_len(u, sels, step):
115122 nrdf = rdf .InterRDF_s (u , sels ).run (step = step )
116123 prdf = InterRDF_s (u , sels ).run (step = step )
117124 assert_almost_equal (nrdf .n_frames , prdf .n_frames )
118- assert_almost_equal (nrdf .rdf [0 ][0 ][0 ], prdf .rdf [0 ][0 ][0 ])
119125
120126
121- @pytest .mark .parametrize ("density, value" , [
122- (True , 13275.775440503656 ),
123- (False , 0.021915460340071267 )])
124- def test_density (u , sels , density , value ):
125- rdf = InterRDF_s (u , sels , density = density ).run ()
126- assert_almost_equal (max (rdf .rdf [0 ][0 ][0 ]), value )
127+ @pytest .mark .parametrize ("density" , [True , False ])
128+ def test_density (u , sels , density ):
129+ s1 = u .select_atoms ('name ZND and resid 289' )
130+ s2 = u .select_atoms (
131+ 'name OD1 and resid 51 and sphzone 5.0 (resid 289)' )
132+ prdf = InterRDF_s (u , sels , density = density ).run ()
133+ if density :
134+ rdf_ref = rdf .InterRDF (s1 , s2 ).run ()
135+ assert_almost_equal (rdf_ref .rdf , prdf .rdf [0 ][0 ][0 ])
136+ else :
137+ nrdf = rdf .InterRDF_s (u , sels , density = density ).run ()
138+ assert_almost_equal (nrdf .rdf [0 ][0 ][0 ], prdf .rdf [0 ][0 ][0 ])
0 commit comments