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);
        }