@@ -117,19 +117,32 @@ def test_tth_to_q_bad(wavelength, tth, expected_error_type, expected_error_msg):
117117
118118
119119@pytest .mark .parametrize (
120- "q, expected_d" ,
120+ "q, expected_d, warning_expected " ,
121121 [
122- # UC1: User specified empty q values
123- (np .array ([]), np .array ([])),
124- # UC2: User specified valid q values
122+ # Test conversion of q to d with valid values
123+ # Case 1: empty q values, expect empty d values
124+ (np .array ([]), np .array ([]), False ),
125+ # Case 2:
126+ # 1. valid q values, expect d values without warning
127+ (
128+ np .array ([0.1 , 1 * np .pi , 2 * np .pi , 3 * np .pi , 4 * np .pi , 5 * np .pi ]),
129+ np .array ([62.83185307 , 2 , 1 , 0.66667 , 0.5 , 0.4 ]),
130+ False ,
131+ ),
132+ # 2. valid q values containing 0, expect d values with divide by zero warning
125133 (
126134 np .array ([0 , 1 * np .pi , 2 * np .pi , 3 * np .pi , 4 * np .pi , 5 * np .pi ]),
127135 np .array ([np .inf , 2 , 1 , 0.66667 , 0.5 , 0.4 ]),
136+ True ,
128137 ),
129138 ],
130139)
131- def test_q_to_d (q , expected_d ):
132- actual_d = q_to_d (q )
140+ def test_q_to_d (q , expected_d , warning_expected ):
141+ if warning_expected :
142+ with pytest .warns (RuntimeWarning , match = "divide by zero encountered in divide" ):
143+ actual_d = q_to_d (q )
144+ else :
145+ actual_d = q_to_d (q )
133146 assert np .allclose (actual_d , expected_d )
134147
135148
0 commit comments