public void GetInformation_SecondValueLineFromAyala_ReturnsCorrectInfo() { ThreeParamModelParameters modelParameters = new ThreeParamModelParameters(2.954, .560, 0); ThreeParamItemInformationFunction informationFunction = new ThreeParamItemInformationFunction(modelParameters); const double theta = .3; var calculatedInformation = informationFunction.GetInformation(theta); const double expectedInfo = 1.889; Assert.AreEqual(expectedInfo, calculatedInformation, Tolerance); }
public void GetInformation_NonzeroChi_ReturnsCorrectInfo() { double alpha = 2; double chi = .5; double delta = 1; ThreeParamModelParameters modelParameters = new ThreeParamModelParameters(alpha, delta, chi); ThreeParamItemInformationFunction informationFunction = new ThreeParamItemInformationFunction(modelParameters); const double theta = .3; ThreeParamProbabilityFunction probabilityFunction = new ThreeParamProbabilityFunction(new ThreeParamModelParameters(alpha, delta, chi)); double p = probabilityFunction.ProbabilityOfCorrectResponse(theta); double expectedInfo = alpha*alpha*Math.Pow((p - chi)/(1 - chi), 2)*((1 - p)/p); var calculatedInformation = informationFunction.GetInformation(theta); Assert.AreEqual(expectedInfo, calculatedInformation, Tolerance); }