irt-service/app/lib/irt/item_response_function.py
2023-10-24 20:06:20 +00:00

18 lines
635 B
Python

from lib.irt.models.three_parameter_logistic import ThreeParameterLogistic
from lib.irt.models.rasch import Rasch
from lib.errors.item_generation_error import ItemGenerationError
class ItemResponseFunction():
def __init__(self, irt_model):
self.model_data = irt_model
def calculate(self, **kwargs):
if self.model_data.model == '3PL':
return ThreeParameterLogistic(self.model_data, kwargs).result()
elif self.model_data.model == 'RASCH':
return Rasch(self.model_data, kwargs).result()
else:
raise ItemGenerationError("irt model not supported or provided")