def testdb1(self):
        """ test the sig - db functionality """
        conn = self._setupDb()
        ensemble = BitEnsemble()
        for bit in [1, 3, 4]:
            ensemble.AddBit(bit)

        sigBs = [
            ([0, 0, 0, 0, 0, 0], (0, 0, 0)),
            ([0, 1, 0, 1, 0, 0], (1, 1, 0)),
            ([0, 1, 0, 0, 1, 0], (1, 0, 1)),
            ([0, 1, 0, 0, 1, 1], (1, 0, 1)),
        ]
        ensemble.InitScoreTable(conn, self.dbTblName)
        for bs, tgt in sigBs:
            ensemble.ScoreToDb(bs, conn)
        conn.Commit()

        d = conn.GetData(table=self.dbTblName)
        assert len(d) == len(sigBs), 'bad number of results returned'
        for i in range(len(sigBs)):
            bs, tgt = tuple(sigBs[i])
            dbRes = tuple(d[i])
            assert dbRes == tgt, 'bad bits returned: %s != %s' % (str(dbRes),
                                                                  str(tgt))
        d = None
        self.conn = None
    def test3(self):
        ensemble = BitEnsemble()
        for bit in [1, 11, 21, 31]:
            ensemble.AddBit(bit)
        bv = SparseBitVect(100)
        bv.SetBit(1)
        bv.SetBit(11)
        bv.SetBit(13)

        score = ensemble.ScoreWithOnBits(bv)
        assert score == 2, 'bad score: %d' % (score)
        score = ensemble.ScoreWithIndex(bv)
        assert score == 2, 'bad score: %d' % (score)