Exemple #1
0
def run(xmloutput=False):
    """Run all gpfit unit tests.

    Arguments
    ---------
    xmloutput: bool
        If true, generate xml output files for continuous integration
    """
    if xmloutput:
        run_tests(TESTS, xmloutput='test_reports')
    else:
        run_tests(TESTS)
Exemple #2
0
def run(xmloutput=False):
    """Run all gpkit-models unit tests.

    Arguments
    ---------
    xmloutput: bool
        If true, generate xml output files for continuous integration
    """
    if xmloutput:
        raise NotImplementedError("gpkit-models CI has not yet been set up")
    attach_tests()
    run_tests([TestModels])
Exemple #3
0
def run(xmloutput=False, tests=None, verbosity=1):
    """Run all gpkit unit tests.

    Arguments
    ---------
    xmloutput: bool
        If true, generate xml output files for continuous integration
    """
    if tests is None:
        tests = import_tests()
    if xmloutput:
        run_tests(tests, xmloutput='test_reports')
    else:
        run_tests(tests, verbosity=verbosity)
Exemple #4
0
def run(xmloutput=False, tests=None, verbosity=1):
    """Run all gpkit unit tests.

    Arguments
    ---------
    xmloutput: bool
        If true, generate xml output files for continuous integration
    """
    if tests is None:
        tests = import_tests()
    if xmloutput:
        run_tests(tests, xmloutput='test_reports')
    else:
        run_tests(tests, verbosity=verbosity)
Exemple #5
0
def run(xmloutput=False):
    """Run all gpkit unit tests.

    Arguments
    ---------
    xmloutput: bool
        If true, generate xml output files for continuous integration
    """
    if xmloutput:
        run_tests(TESTS, xmloutput='test_reports')
    else:
        run_tests(TESTS)
    print("\n##################################"
          "####################################")
    print("Running with units disabled:")
    gpkit.disable_units()
    if xmloutput:
        run_tests(TESTS, xmloutput='test_reports_nounits')
    else:
        run_tests(TESTS, verbosity=1)
Exemple #6
0
def run(xmloutput=False):
    """Run all gpkit unit tests.

    Arguments
    ---------
    xmloutput: bool
        If true, generate xml output files for continuous integration
    """
    tests = import_tests()
    if xmloutput:
        run_tests(tests, xmloutput='test_reports')
    else:
        run_tests(tests)
    print("\n##################################"
          "####################################")
    print("Running with units disabled:")
    gpkit.disable_units()
    if xmloutput:
        run_tests(tests, xmloutput='test_reports_nounits')
    else:
        run_tests(tests, verbosity=1)
Exemple #7
0
    def test_modelname_added(self):
        t = Thing(2)
        for vk in t.varkeys:
            self.assertEqual(vk.models, ["Thing"])

    def test_no_naming_on_var_access(self):
        # make sure that analysis models don't add their names to
        # variables looked up from other models
        box = Box()
        area_bounds = BoxAreaBounds(box)
        M = Model(box["V"], [box, area_bounds])
        for var in ("h", "w", "d"):
            self.assertEqual(len(M.variables_byname(var)), 1)


TESTS = [TestModelSolverSpecific, TestModelNoSolve]
MULTI_SOLVER_TESTS = [TestGP, TestSP]

for testcase in MULTI_SOLVER_TESTS:
    for solver in settings["installed_solvers"]:
        if solver:
            test = type(testcase.__name__ + "_" + solver, (testcase, ), {})
            setattr(test, "solver", solver)
            setattr(test, "ndig", NDIGS[solver])
            TESTS.append(test)

if __name__ == "__main__":
    # pylint: disable=wrong-import-position
    from gpkit.tests.helpers import run_tests
    run_tests(TESTS)
Exemple #8
0
        # try for VectorVariable too
        y = VectorVariable(3, 'y')
        self.assertEqual(te_tangent(y, 1), y)
        self.assertEqual(te_tangent(y, 3), y + y**3/3. + 2*y**5/15.)
        self.assertEqual(te_tangent(y, 0), 0)
        # make sure y was not modified
        self.assertEqual(y, VectorVariable(3, 'y'))

    def test_fmincon_generator(self):
        """Test fmincon comparison tool"""
        x = Variable('x')
        y = Variable('y')
        m = Model(x, [x**3.2 >= 17*y + y**-0.2,
                      x >= 2,
                      y == 4])
        obj, c, ceq, DC, DCeq = generate_mfiles(m, writefiles=False)
        self.assertEqual(obj, 'x(2)')
        self.assertEqual(c, ['-x(2)**3.2 + 17*x(1) + x(1)**-0.2', '-x(2) + 2'])
        self.assertEqual(ceq, ['-x(1) + 4'])
        self.assertEqual(DC, ['-0.2*x(1).^-1.2 + 17,...\n          ' +
                              '-3.2*x(2).^2.2', '0,...\n          -1'])
        self.assertEqual(DCeq, ['-1,...\n            0'])

TESTS = [TestTools]


if __name__ == '__main__':
    # pylint: disable=wrong-import-position
    from gpkit.tests.helpers import run_tests
    run_tests(TESTS)
Exemple #9
0
        # w has two Sub models, both with their own variable m
        self.assertEqual(len(w.variables_byname("m")), 2)
        # keys for both submodel m's should be in the parent model varkeys
        self.assertIn(w.subA["m"].key, w.varkeys)
        self.assertIn(w.subB["m"].key, w.varkeys)
        # keys of w.variables_byname("m") should match m.varkeys
        m_vbn_keys = [v.key for v in w.variables_byname("m")]
        self.assertIn(w.subA["m"].key, m_vbn_keys)
        self.assertIn(w.subB["m"].key, m_vbn_keys)
        # dig a level deeper, into the keymap
        self.assertEqual(len(w.varkeys.keymap["m"]), 2)
        w2 = Widget()


TESTS = [TestModelSolverSpecific, TestModelNoSolve]
MULTI_SOLVER_TESTS = [TestGP, TestSP]

for testcase in MULTI_SOLVER_TESTS:
    for solver in settings["installed_solvers"]:
        if solver:
            test = type(str(testcase.__name__ + "_" + solver), (testcase, ),
                        {})
            setattr(test, "solver", solver)
            setattr(test, "ndig", NDIGS[solver])
            TESTS.append(test)

if __name__ == "__main__":  # pragma: no cover
    # pylint: disable=wrong-import-position
    from gpkit.tests.helpers import run_tests
    run_tests(TESTS, verbosity=0)