18 lines
635 B
Python
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")
|