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