Ejemplo n.º 1
0
    def gen_wavelet(self):

        S_pos_list = self.get_pos_vec_list()
        hist = self.get_hist()
        l_hist = len(hist)
        levels = self.get_levels()
        T = self.get_seq()
        len_alpha = len(self.get_alphabet())
        bv_list = self.get_bv_list()
        int_alpha_map = self.get_alpha_map()
        T_sub = self.get_alpha_bit_rep()

        for l in reversed(range(1, levels)):

            for i in range(int(math.pow(2, l))):
                #print(i)
                if ((2 * i + 1) >= l_hist):
                    break
                if (2 * i + 1) < l_hist:
                    hist[i] = hist[2 * i] + hist[2 * i + 1]

            if (l_hist - 1) == (2 * i):
                hist[i] = hist[2 * i]

            for i in range(1, min(int(math.pow(2, l)), len_alpha)):
                S_pos_list[l][i] = S_pos_list[l][i - 1].deep_copy()
                Rank.add_num(S_pos_list[l][i], hist[i - 1])

            for i in range(len(T)):
                interval = Wavelet.get_prefix(T_sub[int_alpha_map[T[i]]], l)
                pos = S_pos_list[l][interval].int_val()
                Rank.add_num(S_pos_list[l][interval], 1)
                bv_list[l][pos] = T_sub[int_alpha_map[T[i]]][l]

            l_hist = math.ceil(l_hist / 2)
Ejemplo n.º 2
0
    def getRanks(self):
        for i in keywords:
            print('processing keyword [{0}] [{1}]'.format(keywords.index(i), i))
            x = Rank(i)
            self.rawRank[i] = x.getRank(30)

        self.countWebsitesCSV()
        self.countWebsitesXLSX()
Ejemplo n.º 3
0
 def test_diff_value(self):
     rank1 = Rank(2)
     rank2 = Rank(14)
     self.assertNotEqual(rank1, rank2)
     self.assertLess(rank1, rank2)
     self.assertLessEqual(rank1, rank2)
     self.assertGreater(rank2, rank1)
     self.assertGreaterEqual(rank2, rank1)
     self.assertFalse(rank1 == rank2)
Ejemplo n.º 4
0
 def test_same_value(self):
     rank1 = Rank(2)
     rank2 = Rank(2)
     self.assertEqual(rank1, rank2)
     self.assertGreaterEqual(rank1, rank2)
     self.assertLessEqual(rank1, rank2)
     self.assertFalse(rank1 > rank2)
     self.assertFalse(rank1 < rank2)
     self.assertFalse(rank1 != rank2)
Ejemplo n.º 5
0
    def getRanks(self):
        for i in keywords:
            print('processing keyword [{0}] [{1}]'.format(
                keywords.index(i), i))
            x = Rank(i)
            self.rawRank[i] = x.getRank(30)

        self.countWebsitesCSV()
        self.countWebsitesXLSX()
Ejemplo n.º 6
0
    def _is_straight(self):
        """ :return: True if Hand is a Straight """
        # straight == Ranks of n, n-1, n-2, n-3, n-4

        # test for Ace-Low Straight
        if ((self[0].rank == Rank.ACE) and (self[1].rank == Rank.FIVE) and (self[2].rank == Rank.FOUR)
                and (self[3].rank == Rank.THREE) and (self[4].rank == Rank.TWO)):
            return True

        return all((Rank(self[x].rank) == Rank(self[x + 1].rank + 1) for x in range(len(self) - 1)))
Ejemplo n.º 7
0
    def __init__(self, name, force_name, force_strenght, rank, rank_strenght):
        """ Creates a new Force Wielding Duelist """
        self.name = name  # The name of the duelist
        self.rank = Rank(rank, rank_strenght)
        self.forcePower = ForcePower(force_name, force_strenght)

        self.combatant_strenght = ForcePower.get_force_strenght(
            self.forcePower
        ) + Rank.get_rank_strenght(
            self.rank
        )  # Takes the force_strenght and rank_strenght and combines them into a value
Ejemplo n.º 8
0
    def __init__(self, rank, suit):
        if rank not in Card.VALID_RANKS:
            raise ValueError(f'Invalid rank: {rank}')
        if suit.upper() not in Card.VALID_SUITS:
            raise ValueError(f'Invalid suit: {suit}')

        self.rank = Rank(rank)
        self.suit = suit.upper()
Ejemplo n.º 9
0
 def __init__(self, name, force_power, rank, lightsaber_color, hilt_type,
              force_name, species):
     self.name = name
     self.lightsaber = Lightsaber(lightsaber_color, hilt_type)
     self.rank = rank
     self.combatant_strenght = ForcePower.return_force_strenght(
         force_name) + Rank.return_rank_strenght(rank)
     self.species = Species(species)
Ejemplo n.º 10
0
    def test_value(self):
        # partial hands
        hand = Hand(Card(10, 'H'))
        self.assertEqual(hand.value, Rank.TEN)
        hand = Hand(Card(10, 'H'), Card(9, 'D'))
        self.assertEqual(hand.value, Rank.TEN)
        hand = Hand(Card(10, 'H'), Card(10, 'D'))
        self.assertEqual(hand.value, Rank.ONE_PAIR)
        hand = Hand(Card(5, 'H'), Card(5, 'D'), Card(2, 'C'))
        self.assertEqual(hand.value, Rank.ONE_PAIR)
        hand = Hand(Card(2, 'D'), Card(2, 'C'), Card(3, 'D'), Card(3, 'C'))
        self.assertEqual(hand.value, Rank.TWO_PAIR)
        hand = Hand(Card(5, 'H'), Card(5, 'D'), Card(5, 'C'))
        self.assertEqual(hand.value, Rank.THREE_OF_A_KIND)
        hand = Hand(Card(5, 'H'), Card(5, 'D'), Card(5, 'C'), Card(2, 'C'))
        self.assertEqual(hand.value, Rank.THREE_OF_A_KIND)
        hand = Hand(Card(7, 'H'), Card(7, 'D'), Card(7, 'C'), Card(7, 'S'))
        self.assertEqual(hand.value, Rank.FOUR_OF_A_KIND)

        # 5-card hands
        for i, j in enumerate(range(0, 46, 3)):
            self.assertEqual(test_hands[j].value, Rank(i + 7))
            self.assertEqual(test_hands[j + 1].value, Rank(i + 7))
            self.assertEqual(test_hands[j + 2].value, Rank(i + 7))

        # 6-card hands
        for i, j in enumerate(range(48, 51, 1)):
            self.assertEqual(test_hands[j].value, Rank.STRAIGHT)
            self.assertEqual(test_hands[j+3].value, Rank.FLUSH)
            self.assertEqual(test_hands[j+6].value, Rank.STRAIGHT_FLUSH)

        # 7-card hands
        for i, j in enumerate(range(57, 60, 1)):
            self.assertEqual(test_hands[j].value, Rank.STRAIGHT)
            self.assertEqual(test_hands[j+3].value, Rank.FLUSH)
            self.assertEqual(test_hands[j+6].value, Rank.STRAIGHT_FLUSH)

        # edge-case: Ace-Low Straight => A,2,3,4,5
        for i in range(66, 69):
            self.assertEqual(test_hands[i].value, Rank.STRAIGHT)
Ejemplo n.º 11
0
 def addMoreStats(self, data):
     for item in list(self.statsList):
         if (data[0] == item[1]):
             nGram = item[0]
             docID = item[1]
             pageRank = float(data[1])
             position = 0
             frequency = float(item[4])
             section = item[5]
             date = str(data[2])
             temp = Rank(nGram, docID, pageRank, position, frequency,
                         section, date)
             self.rankList.append(temp)
             self.statsList.remove(item)
     return
Ejemplo n.º 12
0
def WTquery():
    script = sys.argv[0]
    action = sys.argv[1]

    if action == 'build':
        filename = sys.argv[2]
        outputfile = sys.argv[3]
        data = open(filename, "r")
        inputString = data.read()  # type(inputString): str
        inputString = list(inputString)

        for i in range(len(inputString)):
            if inputString[i] == ' ':
                inputString[i] = '_'
        wt = WaveletTree(inputString)
        sys.stdout = open(outputfile, "w")
        print(wt.UNIQ)
        print(wt.SIZE)
        print(wt.character)
        print(wt.wt)
        print(wt.int)

    elif action == 'access':
        wtfile = sys.argv[2]
        index = sys.argv[3]
        with open(wtfile, "r") as df:
            lines = df.readlines()
            s = lines[3].rstrip('\n')
            wtTable = yaml.load(s, Loader=yaml.FullLoader)
        #wtAccess = Access(wtTable, index)

    elif action == 'rank':
        wtfile = sys.argv[2]
        index = int(sys.argv[3])
        with open(wtfile, "r") as df:
            lines = df.readlines()
            a = lines[3].rstrip('\n')
            wtTable = yaml.load(a, Loader=yaml.FullLoader)
            b = lines[4].rstrip('\n')
            wtInterval = yaml.load(b, Loader=yaml.FullLoader)
        #print(wtTable)
        wtRank = Rank(wtTable, wtInterval, index)

    elif action == 'select':
        values = data
Ejemplo n.º 13
0
    def __init__(self):
        """ Creates assets for the program """

        self.force_powers = [
            ForcePower("push", 1),
            ForcePower("choke", 2),
            ForcePower("heal", 2),
            ForcePower("lightning", 3),
            ForcePower("battle meditation", 3)
        ]

        self.jedi_ranks = [
            Rank("master", 3),
            Rank("knight", 2),
            Rank("padawan", 1),
        ]

        self.sith_ranks = [
            Rank("lord", 3),
            Rank("marauder", 2),
            Rank("apprentice", 1),
        ]
Ejemplo n.º 14
0
 def test_constructor(self):
     rank = Rank(randint(2, 14))
     self.assertIsInstance(rank, Rank)
     self.assertRaises(ValueError, Rank, 1)
     self.assertRaises(ValueError, Rank, 23)
Ejemplo n.º 15
0
from Rank import Rank

from random import randrange
if __name__ == "__main__":

    players = {}
    # create 10 players with rank
    for i in range(0, 10):
        players[i] = Rank(i)

    # some text to beautify output
    verbose = {}
    verbose[0] = "lost vs"
    verbose[1] = "won vs"
    verbose[2] = "played a draw vs"

    # let players play random games versus each other
    for i in range(1, 10000):
        p1 = randrange(10)
        p2 = randrange(10)
        while (p2 == p1):
            p2 = randrange(10)
        gameResult = randrange(3)
        players[p1].vs(players[p2], gameResult)
        print(p1, verbose[gameResult], p2)

    print("\nResults\n##############\n")

    # print sorted results
    for key, value in sorted(players.items(),
                             key=lambda item: item[1].points,
Ejemplo n.º 16
0
 def gen_rank_list(self):
     bv_list = self.get_bv_list()
     rank_list = list()
     for i in range(len(bv_list)):
         rank_list.append(Rank(bv_list[i]))
     return rank_list