Exemple #1
0
 def test_input_validation(self):
     with self.assertRaises(TypeError):
         Map(False)
     with self.assertRaises(TypeError):
         Map(lambda: None)
     with self.assertRaises(TypeError):
         Map(Runnable)
     self.assertIsInstance(Map(Runnable()), Runnable)
Exemple #2
0
    def test_branch(self):
        class Inc(Runnable):
            def next(self, state):
                return state.updated(cnt=state.cnt + 1)

        states = States(State(cnt=1), State(cnt=2))
        branch = Map(Inc()) | ArgMin('cnt')
        result = branch.run(states).result()

        self.assertEqual(result.cnt, states[0].cnt + 1)
    def test_map(self):
        class A(Runnable, traits.ProblemDecomposer):
            def next(self, state):
                return state.updated(subproblem=state.problem)

        a = A()
        m = Map(a)
        r = m.run(States(State(problem=1))).result()
        self.assertSetEqual(m.inputs, a.inputs)
        self.assertSetEqual(m.outputs, a.outputs)
    def test_dimensions_match_on_compose(self):
        class A(Runnable, traits.ProblemSampler):
            def next(self, state):
                pass

        # dimensionality check
        Map(A()) | ArgMin()
        with self.assertRaises(TypeError):
            A() | ArgMin()
        with self.assertRaises(TypeError):
            ArgMin() | Map(A())
        with self.assertRaises(TypeError):
            ArgMin() | Map(ArgMin())
        with self.assertRaises(TypeError):
            Loop(ArgMin())
Exemple #5
0
    def test_map_lambda(self):
        states = States(State(cnt=1), State(cnt=2))
        result = Map(Lambda(lambda _, s: s.updated(cnt=s.cnt + 1))).run(
            states).result()

        self.assertEqual(result[0].cnt, states[0].cnt + 1)
        self.assertEqual(result[1].cnt, states[1].cnt + 1)
Exemple #6
0
    def test_isolated(self):
        class Inc(Runnable):
            def next(self, state):
                return state.updated(cnt=state.cnt + 1)

        states = States(State(cnt=1), State(cnt=2))
        result = Map(Inc()).run(states).result()

        self.assertEqual(result[0].cnt, states[0].cnt + 1)
        self.assertEqual(result[1].cnt, states[1].cnt + 1)