target variance for each solver run. authored by Yosh
This commit is contained in:
@ -1,13 +1,15 @@
|
||||
from pydantic import BaseModel
|
||||
from typing import List
|
||||
from typing import List, TypeVar, Type
|
||||
|
||||
from helpers import irt_helper
|
||||
|
||||
from models.solver_run import SolverRun
|
||||
from models.item import Item
|
||||
from models.target import Target
|
||||
|
||||
from lib.irt.test_response_function import TestResponseFunction
|
||||
|
||||
_T = TypeVar("_T")
|
||||
|
||||
class Form(BaseModel):
|
||||
items: List[Item]
|
||||
@ -15,13 +17,15 @@ class Form(BaseModel):
|
||||
tif_results: List[Target]
|
||||
tcc_results: List[Target]
|
||||
status: str = 'Not Optimized'
|
||||
solver_variables: List[str]
|
||||
|
||||
@classmethod
|
||||
def create(cls, items, solver_run, status):
|
||||
def create(cls: Type[_T], items: list, solver_run: SolverRun, status: str, solver_variables: list) -> _T:
|
||||
return cls(
|
||||
items=items,
|
||||
cut_score=TestResponseFunction(solver_run.irt_model).calculate(
|
||||
items, theta=solver_run.theta_cut_score),
|
||||
tif_results=irt_helper.generate_tif_results(items, solver_run),
|
||||
tcc_results=irt_helper.generate_tcc_results(items, solver_run),
|
||||
status=status)
|
||||
status=status,
|
||||
solver_variables=solver_variables)
|
||||
|
@ -10,6 +10,7 @@ class ObjectiveFunction(BaseModel):
|
||||
# likely with models representing each objective function type
|
||||
tif_targets: List[Target]
|
||||
tcc_targets: List[Target]
|
||||
target_variance_percentage: int = 10
|
||||
objective: AnyStr = "minimize"
|
||||
weight: Dict = {'tif': 1, 'tcc': 1}
|
||||
|
||||
|
Reference in New Issue
Block a user