Example #1
0
    def test_practical(cls):
        """Tests a 9 factor practical central composite design."""
        ccd_data = build_ccd(9, "practical")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -314.58564545825374
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-3)
Example #2
0
    def test_orthogonal(cls):
        """Tests a 7 factor orthogonal central composite design."""
        ccd_data = build_ccd(7, "orthogonal")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -164.17093230784621
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-3)
Example #3
0
    def test_spherical(cls):
        """Tests a 3 factor spherical central composite design."""
        ccd_data = build_ccd(3, "spherical")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -23.673909747960984
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-4)
Example #4
0
    def test_rotatable(cls):
        """Tests a 5 factor rotatable central composite design."""
        ccd_data = build_ccd(5, "rotatable")
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -75.66313056042111
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-4)
Example #5
0
    def test_fcd(cls):
        """Tests a simple 2 factor face-centered central composite design."""
        ccd_data = build_ccd(2, 1.0)
        x_matrix = patsy.dmatrix(make_quadratic_model(ccd_data.columns),
                                 ccd_data,
                                 return_type="dataframe")

        answer_d = -8.55333223803211
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
Example #6
0
    def test_three_factor(self):
        """Tests a 3 factor Box-Behnken design."""
        factor_count = 3
        design = build_box_behnken(factor_count)
        self.assertEqual(17, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -17.551823065312842
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
Example #7
0
    def test_twelve_factor(self):
        """Tests a 12 factor Box-Behnken design."""
        factor_count = 12
        design = build_box_behnken(factor_count)
        self.assertEqual(197, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -285.7997819420118
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
Example #8
0
    def test_six_factor(self):
        """Tests a 6 factor Box-Behnken design."""
        factor_count = 6
        design = build_box_behnken(factor_count)
        self.assertEqual(53, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -70.8199239661506
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
Example #9
0
    def test_five_factor(self):
        """Tests a 5 factor Box-Behnken design."""
        factor_count = 5
        design = build_box_behnken(factor_count)
        self.assertEqual(45, len(design))
        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -42.74068763678364
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
Example #10
0
    def test_twentyone_factor(self):
        """Tests a 21 factor Box-Behnken design."""
        factor_count = 21
        design = build_box_behnken(factor_count)
        self.assertEqual(341, len(design))

        x_matrix = patsy.dmatrix(make_quadratic_model(design.columns),
                                 design,
                                 return_type="dataframe")

        answer_d = -765.04475512524230
        np.testing.assert_allclose(answer_d, det_xtxi(x_matrix), rtol=1e-5)
Example #11
0
    def test_d_optimality(cls):
        answer_d = [
            2.513455e3, 2.197654e6, 5.52777e9, 1.85905e13, 3.447727e16,
            1.275709e19
        ]

        actual_d = []
        for i in range(3, 9):
            design = build_simplex_centroid(i)
            model = "-1 + " + make_quadratic_model(design.columns,
                                                   include_squared=False)
            x_matrix = patsy.dmatrix(model, design, return_type="dataframe")
            actual_d.append(det_xtxi(x_matrix, use_log=False))

        np.testing.assert_allclose(answer_d, actual_d, rtol=1e-5)