예제 #1
0
    def test_everything_missing_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")

        with self.assertRaises(AttributeError):
            aero_file.setup_aerodynamic_forces_moments_calculation(
                input_parameters={"mach"},
                output_dimensions=3,
                default_alpha=None)
예제 #2
0
    def test_coefficient_model_is_missing_aerodynamic_input_parameters_parachute_1d(
            self):
        aero_file = AeroFile(test_path / "data_files" /
                             "Missing_aerodynamic_input_1D.yaml")

        with self.assertRaises(AttributeError):
            aero_file.setup_aerodynamic_forces_moments_calculation(
                input_parameters={"mach"}, output_dimensions=1)
예제 #3
0
    def test_alpha_dcm_missing_default_alpha_missing_parachute_2d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")

        with self.assertRaisesRegex(
                AttributeError,
                r"2d aerodynamic calculations require either 'alpha' or 'dcm_ab' to be input parameters\."
        ):
            aero_file.setup_aerodynamic_forces_moments_calculation(
                input_parameters={"beta", "mach"},
                output_dimensions=2,
                default_alpha=None)
예제 #4
0
    def test_invalid_dimension(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")

        for i in range(4, 8):
            with self.subTest(k=i):
                with self.assertRaisesRegex(
                        ValueError,
                        f"'{i}' is an invalid value for 'output_dimensions'\."
                ):
                    aero_file.setup_aerodynamic_forces_moments_calculation(
                        {'alpha', 'mach', 'beta'}, i)
예제 #5
0
    def test_setup_aerodynamic_forces_moments_calculation_simple(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")

        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha"},
            output_dimensions=3,
        )
예제 #6
0
    def test_dcm_missing_parachute_2d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "beta", "mach"}, output_dimensions=2)

        # print("test_dcm_missing")
        # code_print(code)
        self.assert_md5(code, "07da3fc6f5c192cd91eb0da7dc6cd5e8")
예제 #7
0
    def test_alpha_dcm_missing_use_defeault_alpha_parachute_2d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"beta", "mach"}, output_dimensions=2)

        # print("test_alpha_dcm_missing")
        # code_print(code)
        self.assert_md5(code, "0aa6f2fe6e787a56aab2ae47898186b1")
예제 #8
0
    def test_alpha_and_beta_missing_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"mach", "dcm_ab"}, output_dimensions=3)

        # print("test_alpha_beta_missing")
        # code_print(code)
        self.assert_md5(code, "4fc7d5906af7f7e5734d413fd1665b3c")
예제 #9
0
    def test_calculate_dcm_from_default_alpha_and_beta_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"beta", "mach"}, output_dimensions=3)

        # print("test_calculate_dcm_from_default_alpha_and_beta_3d")
        # code_print(code)
        self.assert_md5(code, "fa32af0ac4240f54ba57cae075027cfb")
예제 #10
0
    def test_discard_dcm_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "beta", "mach", "dcm_ab"},
            output_dimensions=3)

        self.assertEqual(aero_file.aero_parameter_names,
                         {"alpha", "beta", "mach"})
예제 #11
0
    def test_calculate_dcm_from_alpha_and_default_beta_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "mach"}, output_dimensions=3)

        # print("test_calculate_dcm_from_alpha_default_beta_3d")
        # code_print(code)
        self.assert_md5(code, "1be66bf6b65e1ef7646ff1d75f362323")
예제 #12
0
    def test_dcm_missing_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"mach", "alpha", "beta"}, output_dimensions=3)

        # print("test_dcm_missing")
        # code_print(code)
        self.assert_md5(code, "966128c6c4c27d523baa9fa22721a233")
예제 #13
0
    def test_alpha_missing_parachute_2d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"dcm_ab", "beta", "mach"}, output_dimensions=2)

        # print("test_alpha_missing")
        # code_print(code)

        self.assert_md5(code, "3ee941c7cb34d83af6acced41038fa50")
예제 #14
0
    def test_calculate_dcm_from_default_alpha_and_default_beta_parachute_3d(
            self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"mach"}, output_dimensions=3)

        # print("test_calculate_dcm_from_default_alpha_and_default_beta_3d")
        # code_print(code)
        self.assert_md5(code, "374ffe1ba1b6f65df8a745fbd892956a")
예제 #15
0
    def test_nothing_missing_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "beta", "mach", "dcm_ab"},
            output_dimensions=3)

        # print("test_nothing_missing")
        # code_print(code)
        self.assert_md5(code, "c3d3e420bee34e1f240c7865ca08b1a2")
예제 #16
0
    def test_alpha_dcm_available_parachute_2d(self):
        aero_file = AeroFile(test_path / "data_files" / "3d_aero.aero")
        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "beta", "mach", "dcm_ab"},
            output_dimensions=2)

        # print("test_alpha_dcm_available")
        # code_print(code)
        self.assert_md5(code, "995ce2376db78884bc4ecf7106792ae3")
예제 #17
0
    def test_aerodynamic_model_missing_required_coefficient(self):
        aero_file = AeroFile(test_path / "data_files" /
                             "aero_para_simple.yaml")

        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "beta", "mach"}, output_dimensions=2)

        # print("")
        # print(code)
        # code_print(code)
        self.assert_md5(code, "ff4d6f485e1c0e42b662e57f082ce907")
예제 #18
0
    def test_no_aerodynamics_parachute_1d(self):
        aero_file = AeroFile(test_path / "data_files" /
                             "no_aero_dynamics_parachute_1D.yaml")

        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"mach"}, output_dimensions=1)

        # print("test_no_aerodynamics_parachute_1D")
        # print("test_no_aerodynamics_parachute_1D")
        # print(code)
        # code_print(code)
        self.assert_md5(code, "8255a47a2a62c10f16a45426a0d4fd01")
예제 #19
0
    def test_setup_aerodynamic_forces_moments_calculation_parachute_3d(self):
        aero_file = AeroFile(test_path / "data_files" /
                             "aero_para_simple.yaml")

        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "beta", "mach"},
            output_dimensions=3,
            # default_alpha=1.0
        )

        print("test_setup_aerodynamic_forces_moments_calculation_parachute_3d")
        code_print(code)

        md5_obj = md5()
        md5_obj.update(code.encode("utf-8"))
        hash = md5_obj.hexdigest()
        self.assertEqual(hash, "da4b66f5119ad6a87aeb3a2fed675fd1")
예제 #20
0
    def test_setup_aerodynamic_forces_moments_calculation_parachute_2d(self):
        aero_file = AeroFile(test_path / "data_files" /
                             "aero_para_simple.yaml")

        code = aero_file.setup_aerodynamic_forces_moments_calculation(
            input_parameters={"alpha", "beta", "mach"},
            output_dimensions=2,
            # default_alpha=1.0
        )

        print("test_setup_aerodynamic_forces_moments_calculation_parachute_2d")
        code_print(code)

        md5_obj = md5()
        md5_obj.update(code.encode("utf-8"))
        hash = md5_obj.hexdigest()
        self.assertEqual(hash, "ff4d6f485e1c0e42b662e57f082ce907")