def test_save_low(self): descA = owcolor.DiscAttrDesc( DiscreteVariable("varA", values=tuple("abc"))) descA.name = "a2" descB = owcolor.DiscAttrDesc( DiscreteVariable("varB", values=tuple("abc"))) descB.set_value(1, "X") descC = owcolor.ContAttrDesc(ContinuousVariable("varC")) descC.name = "c2" descD = owcolor.ContAttrDesc(ContinuousVariable("varD")) descD.palette_name = "linear_viridis" descE = owcolor.ContAttrDesc(ContinuousVariable("varE")) self.widget.disc_descs = [descA, descB] self.widget.cont_descs = [descC, descD, descE] with tempfile.TemporaryDirectory() as path: fname = os.path.join(path, "foo.colors") self.widget._save_var_defs(fname) with open(fname) as f: js = json.load(f) self.assertEqual(js["categorical"], {"varA": {"rename": "a2"}, "varB": {"renamed_values": {"b": "X"}}}) self.assertEqual(js["numeric"], {"varC": {"rename": "c2"}, "varD": {"colors": "linear_viridis"}})
def test_to_dict(self): desc = owcolor.DiscAttrDesc(self.var) self.assertEqual(desc.to_dict(), {}) desc2, warns = owcolor.DiscAttrDesc.from_dict(self.var, desc.to_dict()) self.assertEqual(warns, []) self.assertIsNone(desc2.new_name) self.assertIsNone(desc2.new_values) self.assertIsNone(desc2.new_colors) desc.name = "y" self.assertEqual(desc.to_dict(), {"rename": "y"}) desc2, warns = owcolor.DiscAttrDesc.from_dict(self.var, desc.to_dict()) self.assertEqual(warns, []) self.assertEqual(desc2.new_name, "y") self.assertIsNone(desc2.new_values) self.assertIsNone(desc2.new_colors) desc.set_value(1, "b2") desc.set_color(1, [1, 2, 3]) desc.set_color(2, [2, 3, 4]) self.assertEqual( desc.to_dict(), { "rename": "y", "renamed_values": { "b": "b2" }, "colors": { "a": color_to_hex(desc.colors[0]), "b": "#010203", "c": "#020304" } }) desc2, warns = owcolor.DiscAttrDesc.from_dict(self.var, desc.to_dict()) self.assertEqual(warns, []) cols = list(desc.colors) cols[1:] = [[1, 2, 3], [2, 3, 4]] np.testing.assert_equal(desc2.colors, cols) self.assertEqual(desc2.values, ("a", "b2", "c")) desc2, warns = owcolor.DiscAttrDesc.from_dict( self.var, { "rename": "y", "renamed_values": { "b": "b2", "d": "x" }, # d is redundant "colors": { "b": "#010203", "c": "#020304", "d": "#123456" } # d is redundant and must be ignored }) self.assertEqual(warns, []) cols = list(desc.colors) cols[1:] = [[1, 2, 3], [2, 3, 4]] np.testing.assert_equal(desc2.colors, cols) self.assertEqual(desc2.values, ("a", "b2", "c"))
def _create_descs(self): disc_vars = [DiscreteVariable(f"var{c}", values=("a", "b", "c")) for c in "AB"] cont_vars = [ContinuousVariable(f"var{c}") for c in "CDE"] self.widget.disc_descs = [owcolor.DiscAttrDesc(v) for v in disc_vars] self.widget.cont_descs = [owcolor.ContAttrDesc(v) for v in cont_vars] return disc_vars, cont_vars
def test_compute_colors(self): heart_disease = Table.from_file("heart_disease.tab") colors = compute_colors(heart_disease) self.assertTupleEqual(colors.shape, heart_disease.X.shape + (3,)) # the way to add colors to attributes [owcolor.DiscAttrDesc(a) for a in heart_disease.domain.attributes] colors = compute_colors(heart_disease) self.assertTupleEqual(colors.shape, heart_disease.X.shape + (3,)) titanic = Table("titanic") model = SVMLearner()(titanic) titanic_proc = model.data_to_model_domain(titanic) colors = compute_colors(titanic_proc) self.assertTupleEqual(colors.shape, titanic_proc.X.shape + (3,))
def setUp(self): x = DiscreteVariable("x", ["a", "b", "c"]) self.desc = owcolor.DiscAttrDesc(x)
def setUp(self): x = DiscreteVariable("x", list("abc")) y = DiscreteVariable("y", list("def")) z = DiscreteVariable("z", list("ghijk")) self.descs = [owcolor.DiscAttrDesc(v) for v in (x, y, z)] self.model = owcolor.DiscColorTableModel()