Beispiel #1
0
    def test_report(self):
        settings = {
            "context_settings":
                [Context(
                    attributes=dict(x=2, y=2, z=2), metas={},
                    values=dict(
                        descriptors=[
                            ContinuousDescriptor("a", "x + 2", 1),
                            DiscreteDescriptor("b", "x < 3", (), False),
                            DiscreteDescriptor("c", "x > 15", (), True),
                            DiscreteDescriptor("d", "y > x", ("foo", "bar"), False),
                            DiscreteDescriptor("e", "x ** 2 + y == 5", ("foo", "bar"), True),
                            StringDescriptor("f", "str(x)"),
                            DateTimeDescriptor("g", "z")
                        ],
                        currentIndex=0)
                )]
        }

        w = self.create_widget(OWFeatureConstructor, settings)
        v = [ContinuousVariable(name) for name in "xyz"]
        domain = Domain(v, [])
        self.send_signal(w.Inputs.data, Table.from_numpy(domain, [[0, 1, 2]]))
        w.report_items = Mock()
        w.send_report()
        args = w.report_items.call_args[0][1]
        self.assertEqual(list(args), list("abcdefg"))
Beispiel #2
0
 def test_construct_variables_discrete(self):
     data = Table("iris")
     name = "Discrete Variable"
     expression = ("iris_one if iris == 'Iris-setosa' else iris_two "
                   "if iris == 'Iris-versicolor' else iris_three")
     values = ("iris one", "iris two", "iris three")
     desc = PyListModel([
         DiscreteDescriptor(
             name=name,
             expression=expression,
             values=values,
             base_value=-1,
             ordered=False,
         )
     ])
     data = Table(
         Domain(
             list(data.domain.attributes) +
             construct_variables(desc, data.domain.variables),
             data.domain.class_vars,
             data.domain.metas,
         ),
         data,
     )
     self.assertTrue(isinstance(data.domain[name], DiscreteVariable))
     self.assertEqual(data.domain[name].values, list(values))
     for i in range(3):
         self.assertEqual(data[i * 50, name], values[i])
Beispiel #3
0
 def test_construct_variables_discrete(self):
     data = Table("iris")
     name = 'Discrete Variable'
     expression = "iris_one if iris == 'Iris-setosa' else iris_two " \
                  "if iris == 'Iris-versicolor' else iris_three"
     values = ('iris one', 'iris two', 'iris three')
     desc = PyListModel(
         [DiscreteDescriptor(name=name, expression=expression,
                             values=values, ordered=False)]
     )
     data = data.transform(Domain(list(data.domain.attributes) +
                                  construct_variables(desc, data),
                                  data.domain.class_vars,
                                  data.domain.metas))
     self.assertTrue(isinstance(data.domain[name], DiscreteVariable))
     self.assertEqual(data.domain[name].values, values)
     for i in range(3):
         self.assertEqual(data[i * 50, name], values[i])
Beispiel #4
0
 def test_construct_variables_discrete_no_values(self):
     data = Table("iris")
     name = 'Discrete Variable'
     expression = "str(iris)[-1]"  # last letter - a or r
     values = ()
     desc = PyListModel(
         [DiscreteDescriptor(name=name, expression=expression,
                             values=values, ordered=False)]
     )
     data = data.transform(Domain(list(data.domain.attributes) +
                                  construct_variables(desc, data),
                                  data.domain.class_vars,
                                  data.domain.metas))
     newvar = data.domain[name]
     self.assertTrue(isinstance(newvar, DiscreteVariable))
     self.assertEqual(set(data.domain[name].values), set("ar"))
     for i in range(3):
         inst = data[i * 50]
         self.assertEqual(str(inst[name]), str(inst["iris"])[-1])