예제 #1
0
    def test2(self):
        t1 = self.tree
        vc = VectCollection()

        bv = ExplicitBitVect(5)
        bv.SetBitsFromList([0])
        vc.AddVect(1, bv)

        bv = ExplicitBitVect(5)
        bv.SetBitsFromList([1, 2])
        vc.AddVect(2, bv)

        ex = ['nm', bv, 1]
        self.assertTrue(t1.ClassifyExample(ex))

        bv = ExplicitBitVect(5)
        bv.SetBitsFromList([0, 2])
        vc.AddVect(1, bv)
        ex = ['nm', bv, 1]
        self.assertFalse(t1.ClassifyExample(ex))
예제 #2
0
  def test3(self):
    from BuildSigTree import BuildSigTree
    examples = []

    bv = ExplicitBitVect(2)
    vc = VectCollection()
    vc.AddVect(1,bv)
    examples.append(['a',vc,1])

    bv = ExplicitBitVect(2)
    bv.SetBit(1)
    vc = VectCollection()
    vc.AddVect(1,bv)
    examples.append(['c',vc,0])

    bv = ExplicitBitVect(2)
    bv.SetBit(1)
    vc = VectCollection()
    vc.AddVect(1,bv)
    examples.append(['c2',vc,0])

    bv = ExplicitBitVect(2)
    bv.SetBit(0)
    vc = VectCollection()
    vc.AddVect(1,bv)
    examples.append(['d',vc,0])

    bv = ExplicitBitVect(2)
    bv.SetBit(0)
    vc = VectCollection()
    vc.AddVect(1,bv)
    bv = ExplicitBitVect(2)
    bv.SetBit(1)
    vc.AddVect(2,bv)
    examples.append(['d2',vc,0])

    bv = ExplicitBitVect(2)
    bv.SetBit(0)
    bv.SetBit(1)
    vc = VectCollection()
    vc.AddVect(1,bv)
    examples.append(['d',vc,1])

    bv = ExplicitBitVect(2)
    bv.SetBit(0)
    bv.SetBit(1)
    vc = VectCollection()
    vc.AddVect(1,bv)
    examples.append(['e',vc,1])

    t = BuildSigTree(examples,2,metric=InfoTheory.InfoType.ENTROPY,
                     maxDepth=2,verbose=0)

    self.assertEqual(t.GetName(),'Bit-0')
    self.assertEqual(t.GetLabel(),0)
    c0 = t.GetChildren()[0]
    self.assertEqual(c0.GetName(),'Bit-1')
    self.assertEqual(c0.GetLabel(),1)
    c1 = t.GetChildren()[1]
    self.assertEqual(c1.GetName(),'Bit-1')
    self.assertEqual(c1.GetLabel(),1)

    bv = ExplicitBitVect(2)
    bv.SetBit(0)
    vc = VectCollection()
    vc.AddVect(1,bv)
    bv = ExplicitBitVect(2)
    bv.SetBit(1)
    vc.AddVect(2,bv)
    r = t.ClassifyExample(['t',vc,0])
    self.assertEqual(r,0)
예제 #3
0
    def test3(self):
        examples = []

        bv = ExplicitBitVect(2)
        vc = VectCollection()
        vc.AddVect(1, bv)
        examples.append(['a', vc, 1])

        bv = ExplicitBitVect(2)
        bv.SetBit(1)
        vc = VectCollection()
        vc.AddVect(1, bv)
        examples.append(['c', vc, 0])

        bv = ExplicitBitVect(2)
        bv.SetBit(1)
        vc = VectCollection()
        vc.AddVect(1, bv)
        examples.append(['c2', vc, 0])

        bv = ExplicitBitVect(2)
        bv.SetBit(0)
        vc = VectCollection()
        vc.AddVect(1, bv)
        examples.append(['d', vc, 0])

        bv = ExplicitBitVect(2)
        bv.SetBit(0)
        vc = VectCollection()
        vc.AddVect(1, bv)
        bv = ExplicitBitVect(2)
        bv.SetBit(1)
        vc.AddVect(2, bv)
        examples.append(['d2', vc, 0])

        bv = ExplicitBitVect(2)
        bv.SetBit(0)
        bv.SetBit(1)
        vc = VectCollection()
        vc.AddVect(1, bv)
        examples.append(['d', vc, 1])

        bv = ExplicitBitVect(2)
        bv.SetBit(0)
        bv.SetBit(1)
        vc = VectCollection()
        vc.AddVect(1, bv)
        examples.append(['e', vc, 1])

        f = StringIO()
        with redirect_stdout(f):
            t = BuildSigTree(examples,
                             2,
                             metric=InfoTheory.InfoType.ENTROPY,
                             maxDepth=2,
                             verbose=True)
        self.assertIn('Build', f.getvalue())

        self.assertEqual(t.GetName(), 'Bit-0')
        self.assertEqual(t.GetLabel(), 0)
        c0 = t.GetChildren()[0]
        self.assertEqual(c0.GetName(), 'Bit-1')
        self.assertEqual(c0.GetLabel(), 1)
        c1 = t.GetChildren()[1]
        self.assertEqual(c1.GetName(), 'Bit-1')
        self.assertEqual(c1.GetLabel(), 1)

        bv = ExplicitBitVect(2)
        bv.SetBit(0)
        vc = VectCollection()
        vc.AddVect(1, bv)
        bv = ExplicitBitVect(2)
        bv.SetBit(1)
        vc.AddVect(2, bv)
        r = t.ClassifyExample(['t', vc, 0])
        self.assertEqual(r, 0)