Ejemplo n.º 1
0
    def test_strict(self):
        # Matrices have some matching and nonmatching IDs, with different
        # ordering.
        x = self.x_extra.filter(['1', '0', 'foo', '2'])
        y = self.miny.filter(['0', '2', '1'])
        z = self.z_extra.filter(['bar', '1', '2', '0'])

        np.random.seed(0)

        # strict=False should discard IDs that aren't found in both matrices
        obs = pwmantel((x, y, z), alternative='greater', strict=False)
        assert_frame_equal(obs, self.exp_results_reordered_distance_matrices)

        with self.assertRaises(ValueError):
            pwmantel((x, y, z), strict=True)
Ejemplo n.º 2
0
    def test_id_lookup(self):
        # Matrices have mismatched IDs but a lookup is provided.
        self.x_extra.ids = ['a', 'b', 'c', 'foo']
        self.z_extra.ids = ['d', 'e', 'f', 'bar']
        lookup = {'a': '0', 'b': '1', 'c': '2', 'foo': 'foo',
                  'd': '0', 'e': '1', 'f': '2', 'bar': 'bar',
                  '0': '0', '1': '1', '2': '2'}

        x = self.x_extra.filter(['b', 'a', 'foo', 'c'])
        y = self.miny.filter(['0', '2', '1'])
        z = self.z_extra.filter(['bar', 'e', 'f', 'd'])

        x_copy = x.copy()
        y_copy = y.copy()
        z_copy = z.copy()

        np.random.seed(0)

        obs = pwmantel((x, y, z), alternative='greater', strict=False,
                       lookup=lookup)
        assert_frame_equal(obs, self.exp_results_reordered_distance_matrices)

        # Make sure the inputs aren't modified.
        self.assertEqual(x, x_copy)
        self.assertEqual(y, y_copy)
        self.assertEqual(z, z_copy)
Ejemplo n.º 3
0
    def test_reordered_distance_matrices(self):
        # Matrices have matching IDs but they all have different ordering.
        x = self.minx.filter(['1', '0', '2'])
        y = self.miny.filter(['0', '2', '1'])
        z = self.minz.filter(['1', '2', '0'])

        np.random.seed(0)

        obs = pwmantel((x, y, z), alternative='greater')
        assert_frame_equal(obs, self.exp_results_reordered_distance_matrices)
Ejemplo n.º 4
0
    def test_no_matching_ids(self):
        self.minx.ids = ['foo', 'bar', 'baz']
        self.miny.ids = ['bro', 'fist', 'breh']

        with self.assertRaises(ValueError):
            pwmantel((self.minx, self.miny, self.minz), strict=False)
Ejemplo n.º 5
0
    def test_missing_ids_in_lookup(self):
        # mapping for '1' is missing
        lookup = {'0': 'a', '2': 'c'}

        with self.assertRaises(KeyError):
            pwmantel(self.min_dms, lookup=lookup)
Ejemplo n.º 6
0
 def test_duplicate_labels(self):
     with self.assertRaises(ValueError):
         pwmantel(self.min_dms, labels=['foo', 'bar', 'foo'])
Ejemplo n.º 7
0
 def test_wrong_number_of_labels(self):
     with self.assertRaises(ValueError):
         pwmantel(self.min_dms, labels=['foo', 'bar'])
Ejemplo n.º 8
0
 def test_invalid_input_type(self):
     with self.assertRaises(TypeError):
         pwmantel([self.miny, self.minx, [[0, 42], [42, 0]]])
Ejemplo n.º 9
0
 def test_too_few_dms(self):
     with self.assertRaises(ValueError):
         pwmantel([self.miny])
Ejemplo n.º 10
0
 def test_too_few_permutations_for_p_value(self):
     obs = pwmantel((self.miny, self.minx), method='spearman',
                    permutations=9)
     assert_frame_equal(obs, self.exp_results_too_few_permutations)
Ejemplo n.º 11
0
 def test_na_p_value(self):
     obs = pwmantel((self.miny, self.minx), method='spearman',
                    permutations=0)
     assert_frame_equal(obs, self.exp_results_na_p_value)
Ejemplo n.º 12
0
 def test_duplicate_dms(self):
     obs = pwmantel((self.minx, self.minx, self.minx), alternative='less')
     assert_frame_equal(obs, self.exp_results_duplicate_dms)
Ejemplo n.º 13
0
    def test_minimal_compatible_input_with_labels(self):
        np.random.seed(0)

        obs = pwmantel(self.min_dms, alternative='greater',
                       labels=('minx', 'miny', 'minz'))
        assert_frame_equal(obs, self.exp_results_minimal_with_labels)
Ejemplo n.º 14
0
    def test_minimal_compatible_input(self):
        # Matrices are already in the correct order and have matching IDs.
        np.random.seed(0)

        obs = pwmantel(self.min_dms, alternative='greater')
        assert_frame_equal(obs, self.exp_results_minimal)