def __init__(self, queries=None, articles=None): """ Creates a new tester instance and loads necessary data :return: None """ self.dataSource = TestDataSource(queries=queries, articles=articles) self.query_articles = self.dataSource.get_query_articles() self.results = self.dataSource.get_validation_results() self.article_ids = self.dataSource.get_articles() self.query_ids = self.dataSource.get_queries() self.algorithms = self.dataSource.get_algorithms() self.results_by_algorithm = self.dataSource.separate_algorithm_data() self.alg_testers = [] for algorithm in self.algorithms: algorithm_id = algorithm["id"] algorithm_name = algorithm["algorithm"] self.alg_testers.append(AlgorithmTester(algorithm_id, algorithm_name, tester_datasource=self.dataSource))
def __init__(self, algorithm_id, algorithm_name, tester_datasource=TestDataSource()): """ Creates a test environment for a given algorithm :param algorithm_id id of algorithm of interest :param algorithm_name name of algorithm of interest :param tester_datasource: tester datasouce instance to help us get data, default new :return: """ self.algorithm_id = algorithm_id self.algorithm_name = algorithm_name self.dataSource = tester_datasource self.query_articles = self.dataSource.get_query_articles() self.results = self.dataSource.get_validation_results() self.article_ids = self.dataSource.get_articles() self.query_ids = self.dataSource.get_queries() self.algorithm_results = tester_datasource.get_results_by_algorithms( self.algorithm_id) self.get_best_threshold_for_algorithm() #controls for variation in "randomness" random.seed(10)