Ejemplo n.º 1
0
    def test_simple_expression(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=pd.Index(['S1', 'S2', 'S3'], name='id'))
        metadata = qiime.Metadata(df)

        where = "Subject='subject-1'"
        actual = _ids_where(metadata, where)
        expected = ['S1', 'S2']
        self.assertEqual(actual, expected)

        where = "Subject='subject-2'"
        actual = _ids_where(metadata, where)
        expected = ['S3']
        self.assertEqual(actual, expected)

        where = "Subject='subject-3'"
        actual = _ids_where(metadata, where)
        expected = []
        self.assertEqual(actual, expected)

        where = "SampleType='gut'"
        actual = _ids_where(metadata, where)
        expected = ['S1', 'S3']
        self.assertEqual(actual, expected)

        where = "SampleType='tongue'"
        actual = _ids_where(metadata, where)
        expected = ['S2']
        self.assertEqual(actual, expected)
Ejemplo n.º 2
0
    def test_invalid_where(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=['S1', 'S2', 'S3'])
        metadata = qiime.Metadata(df)

        where = "not-a-column-name='subject-1'"
        with self.assertRaises(ValueError):
            _ids_where(metadata, where)
Ejemplo n.º 3
0
    def test_incomplete_where(self):
        df = pd.DataFrame({'Subject': ['subject-1', 'subject-1', 'subject-2'],
                           'SampleType': ['gut', 'tongue', 'gut']},
                          index=['S1', 'S2', 'S3'])
        metadata = qiime.Metadata(df)

        where = "Subject='subject-1' AND SampleType="
        with self.assertRaises(ValueError):
            _ids_where(metadata, where)

        where = "Subject="
        with self.assertRaises(ValueError):
            _ids_where(metadata, where)