def test_resolve_category_for_room_matches_correctly(self): for t in ["AUL01", "aul01", "aula", " aula", "aula ", " AULA "]: for r in self.generate_rooms_with_text(t): m = DXFRoomCatsResolver._resolve_category_for_room(r, self.cats) self.assertTrue(m) self.assertEqual(r["cat_id"], "AUL01") for t in ["WC01", "bAGNO", "bagno ", " wc01", " wc01", " BaGnO "]: for r in self.generate_rooms_with_text(t): m = DXFRoomCatsResolver._resolve_category_for_room(r, self.cats) self.assertTrue(m) self.assertEqual(r["cat_id"], "WC01")
def test_resolve_category_for_room_does_not_match(self): should_not_match = [ "AULs01", "aul001", "aulas", " l'aula", "aulai ", " AAULA ", "WC011", "baAGNO", "B bagno ", " w c01", " wc001", " BaGnOs " ] for t in should_not_match: for r in self.generate_rooms_with_text(t): m = DXFRoomCatsResolver._resolve_category_for_room(r, self.cats) self.assertFalse(m) self.assertTrue("cat_id" not in r)
def test_cat_id_has_higher_priority_on_resolution(self): # Dovrà matchare "Aula" anche se le stanze contengono "Bagno" e "Aula Informatica" for t in ["AUL01", "aul01", " aul01"]: for r in self.generate_rooms_with_text(t): r["texts"].append({ "text": "BAgno" }) r["texts"].insert(0, { "text": "Aula Informatica" }) m = DXFRoomCatsResolver._resolve_category_for_room(r, self.cats) self.assertTrue(m) self.assertEqual(r["cat_id"], "AUL01") # Dovrà matchare "Bagno" anche se le stanze contengono "Aula" e "Aula Informatica" for t in ["WC01", " wc01 ", " wC01 "]: for r in self.generate_rooms_with_text(t): r["texts"].append({ "text": "Aula" }) r["texts"].insert(0, { "text": "Aula Informatica" }) m = DXFRoomCatsResolver._resolve_category_for_room(r, self.cats) self.assertTrue(m) self.assertEqual(r["cat_id"], "WC01")