Example #1
0
    def test_natsort(self):
        """natsort should perform numeric comparisons on strings

        test pulled from QIIME (http://qiime.org)
        """
        # string with alpha and numerics sort correctly
        s = "sample1 sample2 sample11 sample12".split()
        self.assertEqual(natsort(s), "sample1 sample2 sample11 sample12".split())
        s.reverse()
        self.assertEqual(natsort(s), "sample1 sample2 sample11 sample12".split())
        self.assertEqual(natsort(list("cba321")), list("123abc"))

        # strings with alpha only sort correctly
        self.assertEqual(natsort(list("cdba")), list("abcd"))

        # string of ints sort correctly
        self.assertEqual(natsort(["11", "2", "1", "0"]), ["0", "1", "2", "11"])

        # strings of floats sort correctly
        self.assertEqual(natsort(["1.11", "1.12", "1.00", "0.009"]), ["0.009", "1.00", "1.11", "1.12"])

        # string of ints sort correctly
        self.assertEqual(
            natsort([("11", "A"), ("2", "B"), ("1", "C"), ("0", "D")]),
            [("0", "D"), ("1", "C"), ("2", "B"), ("11", "A")],
        )
Example #2
0
    def test_natsort(self):
        """natsort should perform numeric comparisons on strings

        This method is ported from QIIME (http://www.qiime.org). QIIME is a GPL
        project, but we obtained permission from the authors of this method to
        port it to the BIOM Format project (and keep it under BIOM's BSD
        license).
        """
        # string with alpha and numerics sort correctly
        s = 'sample1 sample2 sample11 sample12'.split()
        self.assertEqual(natsort(s),
                         'sample1 sample2 sample11 sample12'.split())
        s.reverse()
        self.assertEqual(natsort(s),
                         'sample1 sample2 sample11 sample12'.split())
        self.assertEqual(natsort(list('cba321')), list('123abc'))

        # strings with alpha only sort correctly
        self.assertEqual(natsort(list('cdba')), list('abcd'))

        # string of ints sort correctly
        self.assertEqual(natsort(['11', '2', '1', '0']),
                         ['0', '1', '2', '11'])

        # strings of floats sort correctly
        self.assertEqual(natsort(['1.11', '1.12', '1.00', '0.009']),
                         ['0.009', '1.00', '1.11', '1.12'])

        # string of ints sort correctly
        self.assertEqual(
            natsort([('11', 'A'), ('2', 'B'), ('1', 'C'), ('0', 'D')]),
            [('0', 'D'), ('1', 'C'), ('2', 'B'), ('11', 'A')])
Example #3
0
    def test_natsort(self):
        """natsort should perform numeric comparisons on strings

        This method is ported from QIIME (http://www.qiime.org). QIIME is a GPL
        project, but we obtained permission from the authors of this method to
        port it to the BIOM Format project (and keep it under BIOM's BSD
        license).
        """
        # string with alpha and numerics sort correctly
        s = "sample1 sample2 sample11 sample12".split()
        self.assertEqual(natsort(s), "sample1 sample2 sample11 sample12".split())
        s.reverse()
        self.assertEqual(natsort(s), "sample1 sample2 sample11 sample12".split())
        self.assertEqual(natsort(list("cba321")), list("123abc"))

        # strings with alpha only sort correctly
        self.assertEqual(natsort(list("cdba")), list("abcd"))

        # string of ints sort correctly
        self.assertEqual(natsort(["11", "2", "1", "0"]), ["0", "1", "2", "11"])

        # strings of floats sort correctly
        self.assertEqual(natsort(["1.11", "1.12", "1.00", "0.009"]), ["0.009", "1.00", "1.11", "1.12"])

        # string of ints sort correctly
        self.assertEqual(
            natsort([("11", "A"), ("2", "B"), ("1", "C"), ("0", "D")]),
            [("0", "D"), ("1", "C"), ("2", "B"), ("11", "A")],
        )
Example #4
0
    def test_natsort(self):
        """natsort should perform numeric comparisons on strings

        This method is ported from QIIME (http://www.qiime.org). QIIME is a GPL
        project, but we obtained permission from the authors of this method to
        port it to the BIOM Format project (and keep it under BIOM's BSD
        license).
        """
        # string with alpha and numerics sort correctly
        s = 'sample1 sample2 sample11 sample12'.split()
        self.assertEqual(natsort(s),
                         'sample1 sample2 sample11 sample12'.split())
        s.reverse()
        self.assertEqual(natsort(s),
                         'sample1 sample2 sample11 sample12'.split())
        self.assertEqual(natsort(list('cba321')), list('123abc'))

        # strings with alpha only sort correctly
        self.assertEqual(natsort(list('cdba')), list('abcd'))

        # string of ints sort correctly
        self.assertEqual(natsort(['11', '2', '1', '0']),
                         ['0', '1', '2', '11'])

        # strings of floats sort correctly
        self.assertEqual(natsort(['1.11', '1.12', '1.00', '0.009']),
                         ['0.009', '1.00', '1.11', '1.12'])

        # string of ints sort correctly
        self.assertEqual(
            natsort([('11', 'A'), ('2', 'B'), ('1', 'C'), ('0', 'D')]),
            [('0', 'D'), ('1', 'C'), ('2', 'B'), ('11', 'A')])
Example #5
0
    def test_natsort(self):
        """natsort should perform numeric comparisons on strings

        test pulled from QIIME (http://qiime.org)
        """
        # string with alpha and numerics sort correctly
        s = 'sample1 sample2 sample11 sample12'.split()
        self.assertEqual(natsort(s), 
          'sample1 sample2 sample11 sample12'.split())
        s.reverse()
        self.assertEqual(natsort(s), 
          'sample1 sample2 sample11 sample12'.split())
        self.assertEqual(natsort(list('cba321')),list('123abc'))

        # strings with alpha only sort correctly
        self.assertEqual(natsort(list('cdba')),list('abcd'))

        # string of ints sort correctly
        self.assertEqual(natsort(['11','2','1','0']),
                               ['0','1','2','11'])

        # strings of floats sort correctly
        self.assertEqual(natsort(['1.11','1.12','1.00','0.009']),
                               ['0.009','1.00','1.11','1.12'])

        # string of ints sort correctly
        self.assertEqual(natsort([('11','A'),('2','B'),('1','C'),('0','D')]),
                            [('0','D'),('1','C'),('2','B'),('11','A')])