def test_partial_name_dtk_champion_of_arashin(self): result = match_card("Charnpion of Arashin", edition="dtk") self.assertIsNotNone(result) self.assertEquals("Champion of Arashin", result["name"]) self.assertEquals("9", result["number"]) result = match_card("Charnpion Arashin", edition="dtk") self.assertIsNotNone(result) self.assertEquals("Champion of Arashin", result["name"]) self.assertEquals("9", result["number"])
def identify_image(image, find_card=False): if find_card: image = find_card_image(image) color_dict = get_card_color(image) # Resize images that are too small for good OCR image_height, image_width = _get_image_size(image) if image_height < MINIMUM_HEIGHT or image_width < MINIMUM_WIDTH: scale_x = max(MINIMUM_WIDTH / image_width, 1) scale_y = max(MINIMUM_HEIGHT / image_height, 1) image = cv2.resize(image, (0, 0), fx=scale_x, fy=scale_y, interpolation=cv2.INTER_LANCZOS4) grayscale_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) card_name = get_card_name(grayscale_image).strip() card_text = get_card_text(grayscale_image).strip() card_type = get_card_type(grayscale_image).strip() number, edition = get_card_number_and_edition(grayscale_image) debug = { "card_name": card_name, "number": number, "edition": edition, "color": color_dict, "text": card_text, "type": card_type, } with open(os.path.join(LATEST_DIR, "latest_debug.json"), 'w') as outfile: json.dump(debug, outfile) if DEBUG: print(debug) return match_card(card_name, number, edition)
def test_partial_name_ori_claustrophobia(self): result = match_card("daListropholoia",) self.assertIsNotNone(result) self.assertEquals("Claustrophobia", result["name"]) self.assertEquals("50", result["number"])
def test_exact_ainok_bond_kin(self): result = match_card("Ainok Bond-Kin", "003", edition="ktk") self.assertEquals("Ainok Bond-Kin", result["name"]) self.assertEquals("3", result["number"])
def test_partial_name_bfz_tandem_tactics(self): result = match_card("Tanolem Tactios", edition="bfz") self.assertIsNotNone(result) self.assertEquals("Tandem Tactics", result["name"]) self.assertEquals("52", result["number"])
def test_all_none(self): result = match_card() self.assertIsNone(result)
def test_exact_ainok_bond_kin(self): result = match_card("Ainok Bond-Kin", "003") self.assertEquals("Ainok Bond-Kin", result["name"]) self.assertEquals("3", result["number"]) self.assertEqual(386471, result["multiverseid"])
def test_exact_number_dtk_champion_of_arashin(self): result = match_card(None, 9, edition="dtk") self.assertEquals("Champion of Arashin", result["name"]) self.assertEquals("9", result["number"])
def test_exact_number_bfz_tandem_tactics(self): result = match_card(None, 52, edition="bfz") self.assertEquals("Tandem Tactics", result["name"]) self.assertEquals("52", result["number"])
def test_exact_avacyn_guardian_angel(self): result = match_card("Avacyn, Guardian Angel", "003") self.assertEquals("Avacyn, Guardian Angel", result["name"]) self.assertEquals("3", result["number"]) self.assertEqual(383185, result["multiverseid"])
def test_exact_number_bfz_ghostly_sentinel(self): result = match_card(None, "028", edition="bfz") self.assertEquals("Ghostly Sentinel", result["name"]) self.assertEquals("28", result["number"])
def test_exact_number_bfz_endless_one(self): result = match_card(None, 8, edition="bfz") self.assertEquals("Endless One", result["name"]) self.assertEquals("8", result["number"])
def test_exact_avacyn_guardian_angel(self): result = match_card("Avacyn, Guardian Angel", "003", edition="m15") self.assertEquals("Avacyn, Guardian Angel", result["name"]) self.assertEquals("3", result["number"])
def test_exact_name_bfz_endless_one(self): result = match_card("Endless One") self.assertEquals("Endless One", result["name"]) self.assertEquals("8", result["number"]) self.assertEqual(401871, result["multiverseid"])
def test_partial_name_ori_claustrophobia(self): result = match_card("daListropholoia", ) self.assertIsNotNone(result) self.assertEquals("Claustrophobia", result["name"]) self.assertEquals("50", result["number"])
def test_partial_name_bfz_endless_one(self): result = match_card("Endless One fm", edition="bfz") self.assertIsNotNone(result) self.assertEquals("Endless One", result["name"]) self.assertEquals("8", result["number"])