Exemple #1
0
    def test_home_automation(self):
        """A simple example in the home automation domain"""
        brightness_1 = Input()
        brightness_2 = Input()
        brightness_sum = Node(action=lambda *args: sum(args),
                              inputs=Node.inputs(brightness_1, brightness_2))

        def inverse(value):
            """Return the inverse of a value in the range 0..510"""
            return 510 - value

        brightness_inverse = Node(action=inverse,
                                  inputs=Node.inputs(brightness_sum))

        lamp_power_changes = []

        def set_lamp_power(value):
            """Log changes to lamp power"""
            lamp_power_changes.append(value)

        _lamp_power = Node(action=set_lamp_power,
                           inputs=Node.inputs(brightness_inverse),
                           triggered=True)

        update_inputs_get_triggered([(brightness_1, 20), (brightness_2, 40)])

        self.assertEqual([450], lamp_power_changes)

        update_inputs_get_triggered([(brightness_1, 20), (brightness_2, 40)])

        self.assertEqual([450], lamp_power_changes)

        update_inputs_get_triggered([(brightness_1, 24), (brightness_2, 40)])

        self.assertEqual([450, 446], lamp_power_changes)
Exemple #2
0
    def test_home_automation(self):
        """A simple example in the home automation domain"""
        brightness_1 = Input()
        brightness_2 = Input()
        brightness_sum = Node(action=lambda *args: sum(args),
                              inputs=Node.inputs(brightness_1, brightness_2))

        def inverse(value):
            """Return the inverse of a value in the range 0..510"""
            return 510 - value

        brightness_inverse = Node(action=inverse,
                                  inputs=Node.inputs(brightness_sum))

        lamp_power_changes = []

        def set_lamp_power(value):
            """Log changes to lamp power"""
            lamp_power_changes.append(value)

        _lamp_power = Node(action=set_lamp_power,
                           inputs=Node.inputs(brightness_inverse),
                           triggered=True)

        update_inputs_get_triggered([(brightness_1, 20),
                                    (brightness_2, 40)])

        self.assertEqual([450], lamp_power_changes)

        update_inputs_get_triggered([(brightness_1, 20),
                                    (brightness_2, 40)])

        self.assertEqual([450], lamp_power_changes)

        update_inputs_get_triggered([(brightness_1, 24),
                                    (brightness_2, 40)])

        self.assertEqual([450, 446], lamp_power_changes)
Exemple #3
0
 def test_only_leafs_triggered_2(self):
     """Updating a Node only triggers its descendents"""
     triggered = update_inputs_get_triggered([(self.branch2, 2)])
     self.assertEqual({self.leaf3, self.leaf4}, triggered)
Exemple #4
0
 def test_only_leafs_triggered_2(self):
     """Updating a Node only triggers its descendents"""
     triggered = update_inputs_get_triggered([(self.branch2, 2)])
     self.assertEqual({self.leaf3, self.leaf4}, triggered)