def test_t_one_observation(self): """t_one_observation should match p. 228 of Sokal and Rohlf""" sample = np.array([4.02, 3.88, 3.34, 3.87, 3.18]) x = 3.02 # note that this differs after the 3rd decimal place from what's in # the book, because Sokal and Rohlf round their intermediate steps... np.testing.assert_allclose(t_one_observation(x, sample), (-1.5637254, 0.1929248))
def test_t_one_observation_no_variance(self): """t_one_observation should correctly handle an invariant list.""" sample = np.array([1.0, 1.0, 1.0]) # Can't perform test if invariant list's single value matches x, # regardless of none_on_zero_variance. self.assertEqual(t_one_observation(1, sample), (None, None)) self.assertEqual(t_one_observation(1, sample, none_on_zero_variance=False), (None, None)) # Test correct handling of none_on_zero_variance. self.assertEqual(t_one_observation(2, sample), (None, None)) self.assertEqual(t_one_observation(2, sample, none_on_zero_variance=False), (float('inf'), 0.0)) self.assertEqual(t_one_observation(2, sample, none_on_zero_variance=False, tails='low'), (float('inf'), 1.0))