def test_compound_transform(self): table = self.data_str domain = table.domain v1 = domain.metas[0] v1.attributes["a"] = "a" tv1 = apply_transform(v1, table, [AsContinuous(), Rename("Z1")]) tv2 = apply_transform( v1, table, [AsContinuous(), Rename("Z2"), Annotate((("a", "b"), ))]) self.assertIsInstance(tv1, ContinuousVariable) self.assertEqual(tv1.name, "Z1") self.assertEqual(tv1.attributes, {"a": "a"}) self.assertIsInstance(tv2, ContinuousVariable) self.assertEqual(tv2.name, "Z2") self.assertEqual(tv2.attributes, {"a": "b"}) tdomain = Domain([], metas=[tv1, tv2]) ttable = table.transform(tdomain) assert_array_nanequal( ttable.metas, np.array([ [0.1, 0.1], [1.0, 1.0], ], dtype=object))
def _test_common(self, var): tr = [Rename(var.name + "_copy"), Annotate((("A", "1"),))] XX = apply_transform(var, tr) self.assertEqual(XX.name, var.name + "_copy") self.assertEqual(XX.attributes, {"A": 1}) self.assertIsInstance(XX.compute_value, Identity) self.assertIs(XX.compute_value.variable, var)
def _test_common(self, var): tr = [Rename(var.name + "_copy"), Annotate((("A", "1"),))] XX = apply_transform(var, tr) self.assertEqual(XX.name, var.name + "_copy") self.assertEqual(XX.attributes, {"A": 1}) self.assertIsInstance(XX.compute_value, Identity) self.assertIs(XX.compute_value.variable, var)
def test_discrete_reorder(self): D = DiscreteVariable("D", values=("2", "3", "1", "0")) DD = apply_transform(D, [CategoriesMapping((("0", "0"), ("1", "1"), ("2", "2"), ("3", "3")))]) self.assertSequenceEqual(DD.values, ["0", "1", "2", "3"]) self._assertLookupEquals( DD.compute_value, Lookup(D, np.array([2, 3, 1, 0])) )
def test_discrete_reorder(self): D = DiscreteVariable("D", values=("2", "3", "1", "0")) DD = apply_transform(D, [CategoriesMapping((("0", "0"), ("1", "1"), ("2", "2"), ("3", "3")))]) self.assertSequenceEqual(DD.values, ["0", "1", "2", "3"]) self._assertLookupEquals( DD.compute_value, Lookup(D, np.array([2, 3, 1, 0])) )
def test_discrete_merge(self): D = DiscreteVariable("D", values=("2", "3", "1", "0")) mapping = ( ("0", "x"), ("1", "y"), ("2", "x"), ("3", "y"), ) tr = [CategoriesMapping(mapping)] DD = apply_transform(D, tr) self.assertSequenceEqual(DD.values, ["x", "y"]) self._assertLookupEquals(DD.compute_value, Lookup(D, np.array([0, 1, 1, 0])))
def test_discrete_merge(self): D = DiscreteVariable("D", values=("2", "3", "1", "0")) mapping = ( ("0", "x"), ("1", "y"), ("2", "x"), ("3", "y"), ) tr = [CategoriesMapping(mapping)] DD = apply_transform(D, tr) self.assertSequenceEqual(DD.values, ["x", "y"]) self._assertLookupEquals( DD.compute_value, Lookup(D, np.array([0, 1, 1, 0])) )
def test_discrete_add_drop(self): D = DiscreteVariable("D", values=("2", "3", "1", "0")) mapping = ( ("0", None), ("1", "1"), ("2", "2"), ("3", None), (None, "A"), ) tr = [CategoriesMapping(mapping)] DD = apply_transform(D, tr) self.assertSequenceEqual(DD.values, ["1", "2", "A"]) self._assertLookupEquals(DD.compute_value, Lookup(D, np.array([1, np.nan, 0, np.nan])))
def test_discrete_add_drop(self): D = DiscreteVariable("D", values=("2", "3", "1", "0")) mapping = ( ("0", None), ("1", "1"), ("2", "2"), ("3", None), (None, "A"), ) tr = [CategoriesMapping(mapping)] DD = apply_transform(D, tr) self.assertSequenceEqual(DD.values, ["1", "2", "A"]) self._assertLookupEquals( DD.compute_value, Lookup(D, np.array([1, np.nan, 0, np.nan])) )
def test_ordered_change(self): D = DiscreteVariable("D", values=("a", "b"), ordered=True) Do = apply_transform(D, [ChangeOrdered(False)]) self.assertFalse(Do.ordered)
def test_discrete_rename(self): D = DiscreteVariable("D", values=("a", "b")) DD = apply_transform(D, [CategoriesMapping((("a", "A"), ("b", "B")))]) self.assertSequenceEqual(DD.values, ["A", "B"]) self.assertIs(DD.compute_value.variable, D)
def test_null_transform(self): table = self.data_str domain = table.domain v = apply_transform(domain.metas[0], table, []) self.assertIs(v, domain.metas[0])
def test_ordered_change(self): D = DiscreteVariable("D", values=("a", "b"), ordered=True) Do = apply_transform(D, [ChangeOrdered(False)]) self.assertFalse(Do.ordered)
def test_discrete_rename(self): D = DiscreteVariable("D", values=("a", "b")) DD = apply_transform(D, [CategoriesMapping((("a", "A"), ("b", "B")))]) self.assertSequenceEqual(DD.values, ["A", "B"]) self.assertIs(DD.compute_value.variable, D)