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]])
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]])
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]])
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]]
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]]