Ejemplo n.º 1
0
    def test_item(self):
        d = orange.Domain(self.vars)
        self.assertEqual(d[2], self.vars[2])
        self.assertEqual(d[9], self.vars[9])
        #self.assertEqual(d[-1], d.class_var)
        with self.assertRaises(IndexError):
            d[-2]

        self.assertEqual(d[2], self.vars[2])
        self.assertEqual(d[self.vars[-1].name], self.vars[-1])
        with self.assertRaises(IndexError):
            d["foo"]

        self.assertEqual(d[self.vars[2]], self.vars[2])
        self.assertEqual(d[self.vars[-1]], self.vars[-1])
        with self.assertRaises(IndexError):
            d[orange.ContinuousVariable("foo")]
        with self.assertRaises(IndexError):
            d[orange.ContinuousVariable("a")]
        a = orange.Variable.make("a", orange.Variable.Type.Continuous)[0]
        self.assertIs(a, self.vars[0])
        self.assertEqual(d[a], self.vars[0])

        with self.assertRaises(TypeError):
            d[orange]
Ejemplo n.º 2
0
 def setUp(self):
     self.domain = orange.Domain([
         orange.ContinuousVariable("a"),
         orange.ContinuousVariable("b"),
         orange.DiscreteVariable("c", values="abc")
     ])
     self.data = orange.ExampleTable(self.domain)
Ejemplo n.º 3
0
    def test_saveTab(self):
        d = orange.ExampleTable("iris")[:3]
        d.save("test-save.tab")
        try:
            d2 = orange.ExampleTable("test-save.tab")
            for e1, e2 in zip(d, d2):
                self.assertEqual(e1, e2)
        finally:
            os.remove("test-save.tab")

        dom = orange.Domain([orange.ContinuousVariable("a")])
        d = orange.ExampleTable(dom)
        d += [[i] for i in range(3)]
        d.save("test-save.tab")
        try:
            d2 = orange.ExampleTable("test-save.tab")
            self.assertEqual(len(d.domain.attributes), 0)
            self.assertEqual(d.domain.classVar, dom[0])
            for i in range(3):
                self.assertEqual(d2[i], [i])
        finally:
            os.remove("test-save.tab")

        dom = orange.Domain([orange.ContinuousVariable("a")], None)
        d = orange.ExampleTable(dom)
        d += [[i] for i in range(3)]
        d.save("test-save.tab")
        try:
            d2 = orange.ExampleTable("test-save.tab")
            self.assertEqual(len(d.domain.attributes), 1)
            self.assertEqual(d.domain[0], dom[0])
            for i in range(3):
                self.assertEqual(d2[i], [i])
        finally:
            os.remove("test-save.tab")
Ejemplo n.º 4
0
    def test_aliases(self):
        d = orange.Domain([])

        id = orange.newmetaid()
        d.addmeta(id, orange.ContinuousVariable())
        d.hasmeta(id)

        id = orange.newmetaid()
        d.add_meta(id, orange.ContinuousVariable())
        d.has_meta(id)
Ejemplo n.º 5
0
    def test_addGaussianClassNoise(self):
        self.assertRaises(ValueError,
                          orange.Preprocessor_addGaussianClassNoise, self.data)

        domain = orange.Domain(
            [orange.ContinuousVariable("a"),
             orange.ContinuousVariable("b")])
        data = orange.ExampleTable(domain)
        data += [[0, 0]] * 12 + [[1, 1]] * 12 + [[2, 2]] * 12
        d2 = orange.Preprocessor_addGaussianClassNoise(data, deviation=1)
        cd = len([e for e in d2 if float(e[0]) == float(e[1])])
        self.assertLessEqual(cd, 2)
Ejemplo n.º 6
0
 def test_in(self):
     i = self.ll[1] in self.l
     self.assertTrue(i)
     i = orange.ContinuousVariable("a") in self.l
     self.assertFalse(i)
     with self.assertRaises(TypeError):
         42 in self.l
Ejemplo n.º 7
0
 def test_append(self):
     f = orange.ContinuousVariable("f")
     self.ll.append(f)
     self.l.append(f)
     self.assertEqual(self.l, self.ll)
     with self.assertRaises(TypeError):
         self.l.append(12)
Ejemplo n.º 8
0
 def test_remove(self):
     self.l.remove(self.ll[2])
     self.ll.remove(self.ll[2])
     self.assertEqual(self.l, self.ll)
     self.assertRaises(ValueError, self.l.remove,
                       orange.ContinuousVariable())
     self.assertRaises(TypeError, self.l.remove, 42)
Ejemplo n.º 9
0
    def test_camel(self):
        f = orange.ContinuousVariable()

        # For builtins, it must support both forms
        self.assertEqual(f.numberOfDecimals, 3)
        self.assertEqual(f.number_of_decimals, 3)

        # Both forms must be equivalent - for built-ins,
        # for both setting and getting
        f.numberOfDecimals = 4
        self.assertEqual(f.numberOfDecimals, 4)
        self.assertEqual(f.number_of_decimals, 4)
        f.number_of_decimals = 5
        self.assertEqual(f.numberOfDecimals, 5)
        self.assertEqual(f.number_of_decimals, 5)

        # For non-builtins, they must be separate
        f.abc_abc = 5
        self.assertEqual(f.abc_abc, 5)
        with self.assertRaises(AttributeError):
            f.abcAbc
        f.abcAbc = 6
        self.assertEqual(f.abc_abc, 5)
        self.assertEqual(f.abcAbc, 6)

        f.defDef = 5
        self.assertEqual(f.defDef, 5)
        with self.assertRaises(AttributeError):
            f.def_def
        f.def_def = 6
        self.assertEqual(f.defDef, 5)
        self.assertEqual(f.def_def, 6)
Ejemplo n.º 10
0
    def test_make_continuous_old(self):
        # Creates a new variable
        v1 = orange.ContinuousVariable("a123")

        # Reuses v1
        v2, s = orange.Variable.make("a123", orange.VarTypes.Continuous)
        self.assertEqual(s, orange.Variable.MakeStatus.OK)
        self.assertIs(v1, v2)
Ejemplo n.º 11
0
 def setUp(self):
     self.contvars = [orange.ContinuousVariable(x) for x in "abcde"]
     self.discvars = [orange.DiscreteVariable(x, values=["ana", "berta", "cilka"]) for x in "ABCDE"]
     self.yvar = [orange.DiscreteVariable("y", values="01")]
     self.contdomain = orange.Domain(self.contvars, self.yvar)
     self.discdomain = orange.Domain(self.discvars, self.yvar)
     self.allvars = self.contvars+self.discvars+[self.yvar]
     self.domain = orange.Domain(self.contvars+self.discvars, self.yvar)
Ejemplo n.º 12
0
    def test_anonymous_from_numpy(self):
        a = numpy.zeros((4, 5))
        a[0, 0] = 0.5
        a[3, 1] = 11
        a[3, 2] = -1
        a[1, 3] = 5
        knn = orange.kNNLearner(a)
        data = knn.find_nearest.examples
        domain = data.domain
        self.assertEqual([var.name for var in domain.variables],
                         ["var%05i" % i for i in range(5)])
        self.assertEqual(domain[0].var_type, orange.VarTypes.Continuous)
        self.assertEqual(domain[1].var_type, orange.VarTypes.Continuous)
        self.assertEqual(domain[2].var_type, orange.VarTypes.Continuous)
        self.assertEqual(domain[3].var_type, orange.VarTypes.Discrete)
        self.assertEqual(domain[3].values, ["v%i" % i for i in range(6)])
        self.assertEqual(domain[4].var_type, orange.VarTypes.Discrete)
        self.assertEqual(domain[4].values, ["v0"])

        dom2 = orange.Domain([
            orange.ContinuousVariable("a"),
            orange.ContinuousVariable("b"),
            orange.ContinuousVariable("c"),
            orange.DiscreteVariable("d", values="abcdef"),
            orange.DiscreteVariable("e", values="ab")
        ])
        ex = orange.Example(dom2, [3.14, 42, 2.7, "d", "a"])
        knn(ex)
        ex1 = domain(ex)
        self.assertEqual(list(map(float, ex1)), list(map(float, ex)))
        ex2 = dom2(ex1)
        self.assertEqual(list(map(float, ex1)), list(map(float, ex2)))
        self.assertEqual(ex1, ex2)
        self.assertEqual(ex1, ex)

        iris = orange.ExampleTable("iris")
        with self.assertRaises(ValueError):
            domain(iris[0])

        knn.find_nearest.examples = numpy.zeros((3, 3))
        domain = knn.find_nearest.examples.domain
        for i in range(3):
            var = domain[i]
            self.assertEqual(var.name, "var%05i" % i)
            self.assertEqual(var.values, ["v0"])
Ejemplo n.º 13
0
    def test_floatvariable(self):
        f = orange.ContinuousVariable()
        self.assertEqual(f.name, "")
        self.assertIsNone(f.source_variable)

        self.assertEqual(f.number_of_decimals, 3)
        self.assertEqual(f.adjust_decimals, 2)
        val = orange.PyValue(f, "2.1")
        self.assertEqual(f.number_of_decimals, 1)
        self.assertEqual(f.adjust_decimals, 1)

        self.assertAlmostEqual(float(val), 2.1, 2)

        f = orange.ContinuousVariable("x")
        self.assertEqual(f.name, "x")
        f = orange.ContinuousVariable(name="x")
        self.assertEqual(f.name, "x")

        s = pickle.dumps(f)
        f2 = pickle.loads(s)
        self.assertEqual(f.name, f2.name)
        self.assertEqual(id(f), id(f2))
Ejemplo n.º 14
0
    def test_gaussian(self):
        d = orange.ExampleTable("iris")
        var = orange.ContinuousVariable("iq")
        cc2 = orange.RandomClassifier(var, orange.GaussianDistribution(100, 20))
        for e in d[0:150:20]:
            anss = set()
            for i in range(5):
                anss.add(cc2(e))
            self.assertEqual(len(anss), 1)

        anss = set()
        for e in d:
            anss.add(cc2(e))
        self.assertGreater(len(anss), 10)
Ejemplo n.º 15
0
    def test_attrtypes(self):
        d = orange.Domain([])
        self.assertFalse(d.has_continuous_attributes(include_class=True))
        self.assertFalse(d.has_continuous_attributes(include_class=False))
        self.assertFalse(d.has_discrete_attributes(include_class=True))
        self.assertFalse(d.has_discrete_attributes(include_class=False))

        d = orange.Domain([orange.ContinuousVariable("a")])
        self.assertTrue(d.has_continuous_attributes(include_class=True))
        self.assertFalse(d.has_continuous_attributes(include_class=False))
        self.assertFalse(d.has_discrete_attributes(include_class=True))
        self.assertFalse(d.has_discrete_attributes(include_class=False))
        
        d = orange.Domain([orange.DiscreteVariable("a")])
        self.assertFalse(d.has_continuous_attributes(include_class=True))
        self.assertFalse(d.has_continuous_attributes(include_class=False))
        self.assertTrue(d.has_discrete_attributes(include_class=True))
        self.assertFalse(d.has_discrete_attributes(include_class=False))
        
        d = orange.Domain([orange.ContinuousVariable("a"), orange.DiscreteVariable("b")])
        self.assertTrue(d.has_continuous_attributes(include_class=True))
        self.assertTrue(d.has_continuous_attributes(include_class=False))
        self.assertTrue(d.has_discrete_attributes(include_class=True))
        self.assertFalse(d.has_discrete_attributes(include_class=False))
Ejemplo n.º 16
0
    def test_from_numpy(self):
        import random
        a = numpy.arange(20, dtype="d").reshape((4, 5))
        a[:, -1] = [0, 0, 0, 1]
        dom = orange.Domain([orange.ContinuousVariable(x) for x in "abcd"],
                            orange.DiscreteVariable("e", values=["no", "yes"]))
        table = orange.ExampleTable(dom, a)
        for i in range(4):
            self.assertEqual(table[i].getclass(), "no" if i < 3 else "yes")
            for j in range(5):
                self.assertEqual(a[i, j], table[i, j])
                table[i, j] = random.random()
                self.assertEqual(a[i, j], table[i, j])

        with self.assertRaises(ValueError):
            table[0, orange.newmetaid()] = 5
Ejemplo n.º 17
0
    def test_index(self):
        d = orange.Domain(self.vars)
        
        self.assertEqual(d.index("c"), 2)
        self.assertEqual(d.index(self.vars[2]), 2)
        self.assertEqual(d.index(2), 2)
        
        self.assertEqual(d.index("j"), 9)

        with self.assertRaises(IndexError):
            d.index("x")
        with self.assertRaises(IndexError):
            d.index(orange.ContinuousVariable("x"))
        with self.assertRaises(IndexError):
            d.index(15)
        with self.assertRaises(TypeError):
            d.index[orange]
Ejemplo n.º 18
0
    def test_repr(self):
        d = orange.Domain([])
        self.assertEqual(repr(d), "<orange.Domain []>")

        d = orange.Domain([self.vars[0]])
        self.assertEqual(repr(d), "<orange.Domain [(no attrs) -> a]>")

        d = orange.Domain([self.vars[0]], class_var=False)
        self.assertEqual(repr(d), "<orange.Domain [a -> (no class)]>")
        
        d = orange.Domain(self.vars, class_var=False)
        self.assertEqual(repr(d), "<orange.Domain [a, b, c, d, e, f, g, h, i, j -> (no class)]>")
        
        d = orange.Domain(self.vars)
        self.assertEqual(repr(d), "<orange.Domain [a, b, c, d, e, f, g, h, i -> j]>")

        d = orange.Domain([orange.ContinuousVariable("A%i" % i) for i in range(1, 101)])
        self.assertEqual(repr(d), "<orange.Domain [%s, ... -> A100]>" % ", ".join("A%i" % i for i in range(1, 21)))
Ejemplo n.º 19
0
 def test_pickle(self):
     import pickle
     d = orange.ExampleTable("iris")
     e = d[0]
     self.assertRaises(pickle.PicklingError, pickle.dumps, e)
     e = orange.Example(e)
     s = pickle.dumps(e)
     e2 = pickle.loads(s)
     self.assertEqual(e, e)
     self.assertEqual(e, e2)
     
     id = orange.newmetaid()
     e[id] = 33
     d.domain.addmeta(id, orange.ContinuousVariable("x"))
     id2 = orange.newmetaid()
     d.domain.addmeta(id2, orange.StringVariable("y"))
     e[id2] = "foo"
     s = pickle.dumps(e)
     e2 = pickle.loads(s)
     self.assertEqual(e, e2)
     self.assertEqual(e2[id], 33)
     self.assertEqual(e2[id2], "foo")
Ejemplo n.º 20
0
 def setUp(self):
     self.domain = orange.Domain([
         orange.DiscreteVariable("corr2", values="01"),
         orange.DiscreteVariable("corr2_h", values="01"),
         orange.DiscreteVariable("corr4", values="0123"),
         orange.DiscreteVariable("uncorr", values="01"),
         orange.DiscreteVariable("const1", values="0"),
         orange.DiscreteVariable("const2", values="01"),
         orange.DiscreteVariable("unk_disc", values="01"),
         orange.ContinuousVariable("const"),
         orange.ContinuousVariable("thresh"),
         orange.ContinuousVariable("thresh_h"),
         orange.ContinuousVariable("bin_corr"),
         orange.ContinuousVariable("bin_uncorr"),
         orange.ContinuousVariable("unk_cont"),
         orange.DiscreteVariable("y", values="01")
     ])
     self.art = orange.ExampleTable(self.domain)
     for i in range(24):
         self.art.append([
             i // 12, i // 12 if i % 2 else "?", i // 6, i % 2, 0, 0, None,
             42, i, i if i % 2 else "?", i // 12, i % 2, None, i // 12
         ])
Ejemplo n.º 21
0
 def test_ass_item(self):
     self.l[2] = self.ll[2] = orange.ContinuousVariable("x")
     self.assertEqual(self.l, self.ll)
Ejemplo n.º 22
0
    def test_meta_direct(self):
        e = orange.ExampleTableReader("iris.tab", 3).read()[0]
        d = e.domain
        e[0] = 3.14
        mid1 = orange.newmetaid()
        e[mid1] = 2.79
        self.assertEqual(e[0], 3.14)
        self.assertEqual(e[mid1], 2.79)

        mid2 = orange.newmetaid()
        nf = orange.ContinuousVariable("m2")
        d.addmeta(mid2, nf)
        e[nf] = 6.28
        self.assertEqual(e[nf], 6.28)
        self.assertEqual(e[mid2], 6.28)
        self.assertEqual(e["m2"], 6.28)

        mid3 = orange.newmetaid()
        sf = orange.StringVariable("m3")
        d.addmeta(mid3, sf)
        e["m3"] = "pixies"
        self.assertEqual(e[sf], "pixies")
        self.assertEqual(e[mid3], "pixies")
        self.assertEqual(e["m3"], "pixies")

        self.assertEqual(set(e.get_metas().values()), set([2.79, 6.28, "pixies"]))
        
        del e[mid1]
        with self.assertRaises(KeyError):
            e[mid1]
        self.assertEqual(set(e.get_metas().values()), set([6.28, "pixies"]))
        
        del e[mid3]
        with self.assertRaises(KeyError):
            e[sf]
        self.assertEqual(set(e.get_metas().values()), set([6.28]))

        del e[mid2]
        with self.assertRaises(KeyError):
            e["m2"]
        self.assertEqual(set(e.get_metas().values()), set([]))

        with self.assertRaises(TypeError):
            e[mid1] = "3.15"
        with self.assertRaises(TypeError):
            e[mid3] = 3.15

        with self.assertRaises(TypeError):
            e.set_meta(mid1, "3.15")
        with self.assertRaises(TypeError):
            e.set_meta(mid3 = 3.15)

        e.set_meta(mid1, 3.15)
        e.set_meta("m2", 3.16)
        e.set_meta(sf, "3.17")

        self.assertTrue(e.has_meta(mid1))
        self.assertTrue(e.has_meta(nf))
        self.assertTrue(e.has_meta(sf))

        e.remove_meta(sf)
        self.assertTrue(e.has_meta(mid1))
        self.assertTrue(e.has_meta(nf))
        self.assertFalse(e.has_meta(sf))

        e.remove_meta(mid1)
        self.assertFalse(e.has_meta(mid1))
        self.assertTrue(e.has_meta(nf))
        self.assertFalse(e.has_meta(sf))

        e.remove_meta("m2")        
        self.assertFalse(e.has_meta(mid1))
        self.assertFalse(e.has_meta(nf))
        self.assertFalse(e.has_meta(sf))
Ejemplo n.º 23
0
 def test_insert(self):
     f = orange.ContinuousVariable("f")
     self.ll.insert(2, f)
     self.l.insert(2, f)
     self.assertEqual(self.l, self.ll)
Ejemplo n.º 24
0
 def test_index(self):
     self.assertEqual(self.l.index(self.ll[2]), 2)
     self.assertRaises(ValueError, self.l.index,
                       orange.ContinuousVariable())
     self.assertRaises(TypeError, self.l.index, 13)
Ejemplo n.º 25
0
 def test_count(self):
     self.assertEqual(self.l.count(self.ll[1]), 1)
     self.assertEqual(self.l.count(orange.ContinuousVariable()), 0)
     self.assertRaises(TypeError, self.l.count, 42)
     self.assertEqual((self.l * 3).count(self.ll[1]), 3)
Ejemplo n.º 26
0
def tv(s):
    return [orange.ContinuousVariable(x) for x in s]