def test_split_lines(self):
        '''not(in1) or not(in1)
        function is not a mistake. it tests line's splitting'''
        c_in = BaseComponent(1, function_in)
        c_neg1 = BaseComponent(1, function_neg)
        c_neg2 = BaseComponent(1, function_neg)
        c_or = BaseComponent(2, function_or)

        l_in1 = BaseLine()
        l_in2 = BaseLine()#1 to 2 to neg1
        l_in3 = BaseLine()#1 to 3 to neg2
        l_in4 = BaseLine()#to 'or'
        l_in5 = BaseLine()#to 'or'
        l_out = BaseLine()

        c_in.attach_output_line(l_in1)
        l_in1.attach_output_line(l_in2)
        l_in1.attach_output_line(l_in3)
        c_neg1.attach_input_line(0, l_in2)
        c_neg2.attach_input_line(0, l_in3)

        c_neg1.attach_output_line(l_in4)
        c_neg2.attach_output_line(l_in5)
        c_or.attach_input_line(0, l_in4)
        c_or.attach_input_line(1, l_in5)

        c_or.attach_output_line(l_out)

        c_in.set_input(0, 0)
        c_in.out()
        c_neg1.set_input(0, l_in2.get_value())
        c_neg2.set_input(0, l_in3.get_value())
        c_neg1.out()
        c_neg2.out()
        c_or.set_input(0, l_in4.get_value())
        c_or.set_input(1, l_in5.get_value())
        c_or.out()
        self.assertEqual(1, l_out.get_value())
    def test_split_lines(self):
        '''not(in1) or not(in1)
        function is not a mistake. it tests line's splitting'''
        c_in = BaseComponent(1, function_in)
        c_neg1 = BaseComponent(1, function_neg)
        c_neg2 = BaseComponent(1, function_neg)
        c_or = BaseComponent(2, function_or)

        l_in1 = BaseLine()
        l_in2 = BaseLine()  #1 to 2 to neg1
        l_in3 = BaseLine()  #1 to 3 to neg2
        l_in4 = BaseLine()  #to 'or'
        l_in5 = BaseLine()  #to 'or'
        l_out = BaseLine()

        c_in.attach_output_line(l_in1)
        l_in1.attach_output_line(l_in2)
        l_in1.attach_output_line(l_in3)
        c_neg1.attach_input_line(0, l_in2)
        c_neg2.attach_input_line(0, l_in3)

        c_neg1.attach_output_line(l_in4)
        c_neg2.attach_output_line(l_in5)
        c_or.attach_input_line(0, l_in4)
        c_or.attach_input_line(1, l_in5)

        c_or.attach_output_line(l_out)

        c_in.set_input(0, 0)
        c_in.out()
        c_neg1.set_input(0, l_in2.get_value())
        c_neg2.set_input(0, l_in3.get_value())
        c_neg1.out()
        c_neg2.out()
        c_or.set_input(0, l_in4.get_value())
        c_or.set_input(1, l_in5.get_value())
        c_or.out()
        self.assertEqual(1, l_out.get_value())