def test_eval_cond_val(self): tb = self.pokemon_tb['pokemon'] cond1 = 'pokemon_id_especie <= 151' col1 = tb['pokemon_id_especie'] expected1 = [index for index, val in enumerate(col1) if val <= 151] test1 = consult.eval_cond(cond1, self.tables) test_col_entries1 = test1['pokemon'] self.assertEqual(test_col_entries1, expected1) # Testing for string condition cond2 = "pokemon_nombre PARECIO A 'mega'" col2 = tb['pokemon_nombre'] expected2 = [index for index, val in enumerate(col2) if 'mega' in val] test2 = consult.eval_cond(cond2, self.tables) test_col_entries2 = test2['pokemon'] self.assertEqual(test_col_entries2, expected2)
def test_eval_cond_range(self): cond = 'pokemon_experiencia_base ENTRE (100 Y 150)' tb = self.pokemon_tb['pokemon'] col = tb['pokemon_experiencia_base'] expected = [index for index, val in enumerate(col) if not (val <= 100 or val >= 150)] test = consult.eval_cond(cond, self.tables) test_col_entries = test['pokemon'] self.assertEqual(test_col_entries, expected)
def test_eval_cond_inner_query(self): cond = 'pokemon_id EN ' \ '(EMPRESTA pokemon_id DE pokemon ONDE (pokemon_id != 2))' poke_tb = self.pokemon_tb['pokemon'] poke_col = poke_tb['pokemon_id'] not_two = list(filter(lambda x: x != 2, poke_col)) expected_poke = [index for index, val in enumerate(poke_col) if val in not_two] test = consult.eval_cond(cond, self.tables) test_poke = test['pokemon'] self.assertEqual(test_poke, expected_poke)
def test_eval_cond_col_to_col(self): cond = 'pokemon_id = poke_estadisticas_pokemon_id' estad_tb = self.poke_estad_tb['poke_estadisticas'] poke_tb = self.pokemon_tb['pokemon'] poke_col = poke_tb['pokemon_id'] estad_col = estad_tb['poke_estadisticas_pokemon_id'] expected_poke = [index for index, val in enumerate(poke_col) if val in estad_col] expected_estad = [index for index, val in enumerate(estad_col) if val in poke_col] test = consult.eval_cond(cond, self.tables) test_poke = test['pokemon'] test_estad = test['poke_estadisticas'] self.assertEqual(test_poke, expected_poke) self.assertEqual(test_estad, expected_estad)
def test_eval_cond_neq(self): cond = 'pokemon_id != 2' test = consult.eval_cond(cond, self.tables) test_col = test['pokemon'] # pokemon_id 2 is at index 1, since it goes 0, 1, 2... self.assertNotIn(1, test_col)
def test_eval_cond_exist_cond(self): cond = 'EXISTE (EMPRESTA estadistica_nombre DE estadisticas)' self.assertTrue(consult.eval_cond(cond, self.tables))