Пример #1
0
 def test_ticker_produces_expected_labels(self):
     self.assertListEqual(
         Geometry.LinearTicker(0, 1e8, ticks=3).labels,
         ['0e+00', '5e+07', '1.0e+08'])
     self.assertListEqual(
         Geometry.LogTicker(0, 8, ticks=3).labels,
         ['1e+00', '1e+03', '1e+06', '1e+09'])
     self.assertListEqual(
         Geometry.LinearTicker(0, 1000, ticks=3).labels,
         ['0', '500', '1000'])
     self.assertListEqual(
         Geometry.LogTicker(0, 3, ticks=3).labels,
         ['1e+00', '1e+01', '1e+02', '1e+03'])
     self.assertListEqual(
         Geometry.LinearTicker(2e-18, 1.11252e-10, ticks=5).labels,
         ['0e+00', '5.0e-11', '1.0e-10', '1.50e-10'])
     self.assertListEqual(
         Geometry.LogTicker(math.log10(2e-18),
                            math.log10(1.11252e-10),
                            ticks=5).labels,
         ['1e-18', '1e-16', '1e-14', '1e-12', '1e-10', '1e-08'])
     self.assertListEqual(
         Geometry.LogTicker(math.log10(1E12),
                            math.log10(1.000062E12),
                            ticks=5).labels,
         ['1.00000e+12', '1.00002e+12', '1.00005e+12', '1.00007e+12'])
     self.assertListEqual(
         Geometry.LogTicker(math.log10(1E8 - 0.002),
                            math.log10(1E8 + 0.002),
                            ticks=3).labels,
         ['9.99999999977e+07', '1.00000000000e+08', '1.00000000002e+08'])
Пример #2
0
 def test_linear_ticker_handles_edge_cases(self):
     self.assertEqual(Geometry.LinearTicker(0, 0).labels, ['0'])
     self.assertEqual(Geometry.LinearTicker(1, 1).labels, ['1'])
     self.assertEqual(Geometry.LinearTicker(-1, -1).labels, ['-1'])
     self.assertEqual(
         Geometry.LinearTicker(-math.inf, math.inf).labels, ['0'])
     self.assertEqual(
         Geometry.LinearTicker(-math.nan, math.nan).labels, ['0'])
     self.assertEqual(Geometry.LinearTicker(math.nan, 1).labels, ['0'])
     self.assertEqual(Geometry.LinearTicker(-math.inf, 1).labels, ['0'])
     self.assertEqual(Geometry.LinearTicker(0, math.inf).labels, ['0'])
Пример #3
0
    def test_ticker_produces_unique_labels(self):
        pairs = ((1, 4), (.1, .4), (1E12, 1.000062E12), (1E-18, 1.000062E-18),
                 (-4, -1), (-10000.001, -10000.02), (1E8 - 0.002, 1E8 + 0.002),
                 (0, 1E8 + 0.002))

        for logarithmic in (False, True):
            for l, h in pairs:
                if not logarithmic or (l > 0 and h > 0):
                    with self.subTest(l=l, h=h, logarithmic=logarithmic):
                        if logarithmic:
                            ticker = Geometry.LogTicker(
                                math.log10(l), math.log10(h))
                        else:
                            ticker = Geometry.LinearTicker(l, h)
                        self.assertEqual(len(set(ticker.labels)),
                                         len(ticker.labels))
Пример #4
0
 def test_ticker_value_label(self):
     mn, mx = 18000000, 21000000
     ticker = Geometry.LinearTicker(mn, mx)
     self.assertIsNotNone(ticker.value_label(900000))