import json class Test: names = ["ДС", "БМ", "ОШ", "ІС", "ЕС", "АК", "АШ", "ФС", "НП", "НГ", "МВ", "АД"] def __init__(self): self.data = self.read_test_data() self.descriptions = self.read_image_descriptions() def __len__(self): return len(self.data) @staticmethod def read_test_data(): with open("test.json") as f: test_data = json.load(f) return test_data @staticmethod def read_image_descriptions(): with open("images/descriptions.txt") as f: lines = f.readlines() clean_lines = [line.strip() for line in lines] return clean_lines def get_question(self, idx): question = self.data[idx]["question"] return question def get_answers(self, idx): responces = self.data[idx]["responces"] answers = [responce["answer"] for responce in responces] return answers def get_description(self, idx): description = self.descriptions[idx] return description def get_image_path(self, idx): image_path = f"images/{idx}.jpg" return image_path def convert_to_answer_ids(self, responces): answer_ids = [] for idx, responce in enumerate(responces): answers = self.get_answers(idx) index = answers.index(responce) answer_ids.append(index) return answer_ids