llm-arch / src /testing.py
alfraser's picture
Added utility to serve up the test questions
a732fe2
raw
history blame
1.04 kB
import json
import os
from random import choices
from typing import List
from src.common import data_dir
class TestGenerator:
"""
Wrapper to hold testing questions and serve up examples
"""
questions: List[str] = None
@classmethod
def load_questions(cls, reload=False) -> None:
"""
Load the available questions from the json file.
Default to not re-loading if already done, but allow for the option to do so
"""
if cls.questions is not None and not reload:
return
question_file = os.path.join(data_dir, 'json', 'test_questions.json')
with open(question_file, 'r') as f:
question_json = json.load(f)
cls.questions = question_json['questions']
@classmethod
def question_count(cls) -> int:
cls.load_questions()
return len(cls.questions)
@classmethod
def get_random_questions(cls, n: int):
"""
Return n random questions
"""
return choices(cls.questions, k=n)