示例#1
0
class TestColortableRegistry(object):
    def setUp(self):  # noqa
        self.reg = ColortableRegistry()

    def test_package_resource(self):
        self.reg.scan_resource('metpy.plots', 'nexrad_tables')
        assert 'cc_table' in self.reg

    def test_scan_dir(self):
        with tempfile.NamedTemporaryFile(mode='w',
                                         dir='.',
                                         suffix='.tbl',
                                         **buffer_args) as fobj:
            fobj.write('"red"\n"lime"\n"blue"\n')
            self.reg.scan_dir(os.path.dirname(fobj.name))
        name = os.path.splitext(os.path.basename(fobj.name))[0]

        assert name in self.reg
        eq_(self.reg[name], [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0),
                             (0.0, 0.0, 1.0)])

    def test_read_file(self):
        fobj = StringIO('(0., 0., 1.0)\n"red"\n"#0000FF" #Blue')

        self.reg.add_colortable(fobj, 'test_table')

        assert 'test_table' in self.reg
        assert self.reg['test_table'] == [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0),
                                          (0.0, 0.0, 1.0)]

    def test_get_colortable(self):
        true_colors = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0)]
        self.reg['table'] = true_colors

        table = self.reg.get_colortable('table')
        eq_(table.N, 2)
        eq_(table.colors, true_colors)

    def test_get_steps(self):
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps('table', 5., 10.)
        eq_(cmap(norm(np.array([6.]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([14.9]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([15.1]))).tolist(), [[1.0, 0.0, 0.0, 1.0]])
        eq_(cmap(norm(np.array([26.]))).tolist(), [[0.0, 1.0, 0.0, 1.0]])

    def test_get_steps_negative_start(self):
        'Test for issue #81 (bad start for get with steps'
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps('table', -10, 5)
        eq_(norm.vmin, -10)
        eq_(norm.vmax, 5)

    def test_get_boundaries(self):
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_boundaries('table', [0., 8., 10., 20.])
        eq_(cmap(norm(np.array([7.]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([9.]))).tolist(), [[1.0, 0.0, 0.0, 1.0]])
        eq_(cmap(norm(np.array([10.1]))).tolist(), [[0.0, 1.0, 0.0, 1.0]])
示例#2
0
class TestColortableRegistry(object):
    def setUp(self):  # noqa
        self.reg = ColortableRegistry()

    def test_package_resource(self):
        self.reg.scan_resource("metpy.plots", "nexrad_tables")
        assert "cc_table" in self.reg

    def test_scan_dir(self):
        with tempfile.NamedTemporaryFile(mode="w", dir=".", suffix=".tbl", **buffer_args) as fobj:
            fobj.write('"red"\n"lime"\n"blue"\n')
            self.reg.scan_dir(os.path.dirname(fobj.name))
        name = os.path.splitext(os.path.basename(fobj.name))[0]

        assert name in self.reg
        eq_(self.reg[name], [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0)])

    def test_read_file(self):
        fobj = StringIO('(0., 0., 1.0)\n"red"\n"#0000FF" #Blue')

        self.reg.add_colortable(fobj, "test_table")

        assert "test_table" in self.reg
        assert self.reg["test_table"] == [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 0.0, 1.0)]

    def test_get_colortable(self):
        true_colors = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0)]
        self.reg["table"] = true_colors

        table = self.reg.get_colortable("table")
        eq_(table.N, 2)
        eq_(table.colors, true_colors)

    def test_get_steps(self):
        self.reg["table"] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps("table", 5.0, 10.0)
        eq_(cmap(norm(np.array([6.0]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([14.9]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([15.1]))).tolist(), [[1.0, 0.0, 0.0, 1.0]])
        eq_(cmap(norm(np.array([26.0]))).tolist(), [[0.0, 1.0, 0.0, 1.0]])

    def test_get_steps_negative_start(self):
        "Test for issue #81 (bad start for get with steps"
        self.reg["table"] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps("table", -10, 5)
        eq_(norm.vmin, -10)
        eq_(norm.vmax, 5)

    def test_get_boundaries(self):
        self.reg["table"] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_boundaries("table", [0.0, 8.0, 10.0, 20.0])
        eq_(cmap(norm(np.array([7.0]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([9.0]))).tolist(), [[1.0, 0.0, 0.0, 1.0]])
        eq_(cmap(norm(np.array([10.1]))).tolist(), [[0.0, 1.0, 0.0, 1.0]])
示例#3
0
class TestColortableRegistry(object):
    def setUp(self):  # noqa
        self.reg = ColortableRegistry()

    def test_package_resource(self):
        self.reg.scan_resource('metpy.plots', 'nexrad_tables')
        assert 'cc_table' in self.reg

    def test_scan_dir(self):
        with tempfile.NamedTemporaryFile(mode='w', dir='.', suffix='.tbl',
                                         **buffer_args) as fobj:
            fobj.write('"red"\n"lime"\n"blue"\n')
            self.reg.scan_dir(os.path.dirname(fobj.name))
        name = os.path.splitext(os.path.basename(fobj.name))[0]

        assert name in self.reg
        eq_(self.reg[name], [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0)])

    def test_read_file(self):
        fobj = StringIO('(0., 0., 1.0)\n"red"\n"#0000FF" #Blue')

        self.reg.add_colortable(fobj, 'test_table')

        assert 'test_table' in self.reg
        assert self.reg['test_table'] == [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 0.0, 1.0)]

    def test_get_colortable(self):
        true_colors = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0)]
        self.reg['table'] = true_colors

        table = self.reg.get_colortable('table')
        eq_(table.N, 2)
        eq_(table.colors, true_colors)

    def test_get_steps(self):
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps('table', 5., 10.)
        eq_(cmap(norm(np.array([6.]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([14.9]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([15.1]))).tolist(), [[1.0, 0.0, 0.0, 1.0]])
        eq_(cmap(norm(np.array([26.]))).tolist(), [[0.0, 1.0, 0.0, 1.0]])

    def test_get_boundaries(self):
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_boundaries('table', [0., 8., 10., 20.])
        eq_(cmap(norm(np.array([7.]))).tolist(), [[0.0, 0.0, 1.0, 1.0]])
        eq_(cmap(norm(np.array([9.]))).tolist(), [[1.0, 0.0, 0.0, 1.0]])
        eq_(cmap(norm(np.array([10.1]))).tolist(), [[0.0, 1.0, 0.0, 1.0]])
示例#4
0
 def setup_method(self, _):
     'Set up a registry for use by the tests.'
     self.reg = ColortableRegistry()
示例#5
0
class TestColortableRegistry(object):
    'Tests for ColortableRegistry'

    def setup_method(self, _):
        'Set up a registry for use by the tests.'
        self.reg = ColortableRegistry()

    def test_package_resource(self):
        'Test registry scanning package resource'
        self.reg.scan_resource('metpy.plots', 'nexrad_tables')
        assert 'cc_table' in self.reg

    def test_scan_dir(self):
        'Test registry scanning a directory'
        try:
            with tempfile.NamedTemporaryFile(mode='w',
                                             dir='.',
                                             suffix='.tbl',
                                             delete=False,
                                             **buffer_args) as fobj:
                fobj.write('"red"\n"lime"\n"blue"\n')
                fname = fobj.name

            # Needs to be outside with so it's closed on windows
            self.reg.scan_dir(os.path.dirname(fname))
            name = os.path.splitext(os.path.basename(fobj.name))[0]

            assert name in self.reg
            assert self.reg[name] == [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0),
                                      (0.0, 0.0, 1.0)]
        finally:
            os.remove(fname)

    def test_read_file(self):
        'Test reading a colortable from a file'
        fobj = StringIO('(0., 0., 1.0)\n"red"\n"#0000FF" #Blue')

        self.reg.add_colortable(fobj, 'test_table')

        assert 'test_table' in self.reg
        assert self.reg['test_table'] == [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0),
                                          (0.0, 0.0, 1.0)]

    def test_get_colortable(self):
        'Test getting a colortable from the registry'
        true_colors = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0)]
        self.reg['table'] = true_colors

        table = self.reg.get_colortable('table')
        assert table.N == 2
        assert table.colors == true_colors

    def test_get_steps(self):
        'Test getting a colortable and norm with appropriate steps'
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps('table', 5., 10.)
        assert cmap(norm(np.array([6.]))).tolist() == [[0.0, 0.0, 1.0, 1.0]]
        assert cmap(norm(np.array([14.9]))).tolist() == [[0.0, 0.0, 1.0, 1.0]]
        assert cmap(norm(np.array([15.1]))).tolist() == [[1.0, 0.0, 0.0, 1.0]]
        assert cmap(norm(np.array([26.]))).tolist() == [[0.0, 1.0, 0.0, 1.0]]

    def test_get_steps_negative_start(self):
        'Test for issue #81 (bad start for get with steps)'
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps('table', -10, 5)
        assert norm.vmin == -10
        assert norm.vmax == 5

    def test_get_boundaries(self):
        'Test getting a colortable with explicit boundaries'
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_boundaries('table', [0., 8., 10., 20.])
        assert cmap(norm(np.array([7.]))).tolist() == [[0.0, 0.0, 1.0, 1.0]]
        assert cmap(norm(np.array([9.]))).tolist() == [[1.0, 0.0, 0.0, 1.0]]
        assert cmap(norm(np.array([10.1]))).tolist() == [[0.0, 1.0, 0.0, 1.0]]
示例#6
0
 def setUp(self):  # noqa
     self.reg = ColortableRegistry()
示例#7
0
 def setUp(self):  # noqa
     self.reg = ColortableRegistry()
示例#8
0
def registry():
    """Set up a registry for use by the tests."""
    return ColortableRegistry()
示例#9
0
 def setUp(self):  # noqa
     "Set up a registry for use by the tests."
     self.reg = ColortableRegistry()
示例#10
0
 def setup_method(self, _):  # noqa
     'Set up a registry for use by the tests.'
     self.reg = ColortableRegistry()
示例#11
0
class TestColortableRegistry(object):
    'Tests for ColortableRegistry'
    def setup_method(self, _):  # noqa
        'Set up a registry for use by the tests.'
        self.reg = ColortableRegistry()

    def test_package_resource(self):
        'Test registry scanning package resource'
        self.reg.scan_resource('metpy.plots', 'nexrad_tables')
        assert 'cc_table' in self.reg

    def test_scan_dir(self):
        'Test registry scanning a directory'
        try:
            with tempfile.NamedTemporaryFile(mode='w', dir='.', suffix='.tbl', delete=False,
                                             **buffer_args) as fobj:
                fobj.write('"red"\n"lime"\n"blue"\n')
                fname = fobj.name

            # Needs to be outside with so it's closed on windows
            self.reg.scan_dir(os.path.dirname(fname))
            name = os.path.splitext(os.path.basename(fobj.name))[0]

            assert name in self.reg
            assert self.reg[name] == [(1.0, 0.0, 0.0), (0.0, 1.0, 0.0), (0.0, 0.0, 1.0)]
        finally:
            os.remove(fname)

    def test_read_file(self):
        'Test reading a colortable from a file'
        fobj = StringIO('(0., 0., 1.0)\n"red"\n"#0000FF" #Blue')

        self.reg.add_colortable(fobj, 'test_table')

        assert 'test_table' in self.reg
        assert self.reg['test_table'] == [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 0.0, 1.0)]

    def test_get_colortable(self):
        'Test getting a colortable from the registry'
        true_colors = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0)]
        self.reg['table'] = true_colors

        table = self.reg.get_colortable('table')
        assert table.N == 2
        assert table.colors == true_colors

    def test_get_steps(self):
        'Test getting a colortable and norm with appropriate steps'
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps('table', 5., 10.)
        assert cmap(norm(np.array([6.]))).tolist() == [[0.0, 0.0, 1.0, 1.0]]
        assert cmap(norm(np.array([14.9]))).tolist() == [[0.0, 0.0, 1.0, 1.0]]
        assert cmap(norm(np.array([15.1]))).tolist() == [[1.0, 0.0, 0.0, 1.0]]
        assert cmap(norm(np.array([26.]))).tolist() == [[0.0, 1.0, 0.0, 1.0]]

    def test_get_steps_negative_start(self):
        'Test for issue #81 (bad start for get with steps)'
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_steps('table', -10, 5)
        assert norm.vmin == -10
        assert norm.vmax == 5

    def test_get_boundaries(self):
        'Test getting a colortable with explicit boundaries'
        self.reg['table'] = [(0.0, 0.0, 1.0), (1.0, 0.0, 0.0), (0.0, 1.0, 0.0)]
        norm, cmap = self.reg.get_with_boundaries('table', [0., 8., 10., 20.])
        assert cmap(norm(np.array([7.]))).tolist() == [[0.0, 0.0, 1.0, 1.0]]
        assert cmap(norm(np.array([9.]))).tolist() == [[1.0, 0.0, 0.0, 1.0]]
        assert cmap(norm(np.array([10.1]))).tolist() == [[0.0, 1.0, 0.0, 1.0]]