def test_case_7(): p0 = Plane(normal_vector=Vector(['1', '1', '1']), constant_term='1') p1 = Plane(normal_vector=Vector(['0', '1', '0']), constant_term='2') p2 = Plane(normal_vector=Vector(['1', '1', '-1']), constant_term='3') p3 = Plane(normal_vector=Vector(['1', '0', '-2']), constant_term='2') s = LinearSystem([p0, p1, p2, p3]) s.swap_rows(0, 1) s.swap_rows(1, 3) s.swap_rows(3, 1) s.multiply_coefficient_and_row(1, 0) s.multiply_coefficient_and_row(-2, 2) s.multiply_coefficient_and_row(10, 1) s.add_multiple_times_row_to_row(0, 0, 1) assert (s[0] == p1 and s[1] == Plane( normal_vector=Vector(['10', '10', '10']), constant_term='10') and s[2] == Plane(normal_vector=Vector(['-1', '-1', '1']), constant_term='-3') and s[3] == p3)
def test_add_multiple_times_to_row(self): p0 = Plane(Vector([0,1,0]), 2) p1 = Plane(Vector([10,10,10]), 10) p2 = Plane(Vector([-1,-1,1]), -3) p3 = Plane(Vector([1,0,-2]), 2) s = LinearSystem([p0,p1,p2,p3]) s.add_multiple_times_row_to_row(0,0,1) self.assertEqual(s[0], p0) self.assertEqual(s[1], p1) self.assertEqual(s[2], p2) self.assertEqual(s[3], p3) s.add_multiple_times_row_to_row(1,0,1) self.assertEqual(s[0], p0) self.assertEqual(s[1], Plane(Vector(['10','11','10']), '12')) self.assertEqual(s[2], p2) self.assertEqual(s[3], p3) assertComponentsHaveSameValues(self, s[0], p0) assertComponentsHaveSameValues(self, s[1], Plane(Vector(['10','11','10']), '12')) assertComponentsHaveSameValues(self, s[2], p2) assertComponentsHaveSameValues(self, s[3], p3) s.add_multiple_times_row_to_row(-1,1,0) self.assertEqual(s[0], Plane(Vector(['-10','-10','-10']), '-10')) self.assertEqual(s[1], Plane(Vector(['10','11','10']), '12')) self.assertEqual(s[2], p2) self.assertEqual(s[3], p3) assertComponentsHaveSameValues(self, s[0], Plane(Vector(['-10','-10','-10']), '-10')) assertComponentsHaveSameValues(self, s[1], Plane(Vector(['10','11','10']), '12')) assertComponentsHaveSameValues(self, s[2], p2) assertComponentsHaveSameValues(self, s[3], p3)
def test_add_multiple_times_to_row(self): p0 = Plane(normal_vector=Vector(['0','1','0']), constant_term='2') p1 = Plane(normal_vector=Vector(['10','10','10']), constant_term='10') p2 = Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') p3 = Plane(normal_vector=Vector(['1','0','-2']), constant_term='2') s = LinearSystem([p0,p1,p2,p3]) s.add_multiple_times_row_to_row(0,0,1) self.assertEqual(s[0], p0) self.assertEqual(s[1], p1) self.assertEqual(s[2], p2) self.assertEqual(s[3], p3) s.add_multiple_times_row_to_row(1,0,1) self.assertEqual(s[0], p0) self.assertEqual(s[1], Plane(normal_vector=Vector(['10','11','10']), constant_term='12'), str(s[1])) self.assertEqual(s[2], p2) self.assertEqual(s[3], p3) s.add_multiple_times_row_to_row(-1,1,0) self.assertEqual(s[0], Plane(normal_vector=Vector(['-10','-10','-10']), constant_term='-10'), str(s[0])) self.assertEqual(s[1], Plane(normal_vector=Vector(['10','11','10']), constant_term='12'), str(s[1])) self.assertEqual(s[2], p2) self.assertEqual(s[3], p3)
def test_linsys_multiply_row_add(): """Test Linear System Multiply Times Row and add to Row""" plane_2 = Plane(Vector([0, 1, 0]), 2) new_plane_1 = Plane(Vector([10, 10, 10]), 10) new_plane_3 = Plane(Vector([-1, -1, 1]), -3) plane_4 = Plane(Vector([1, 0, -2]), 2) # same as the end of the last test lin_sys = LinearSystem([plane_2, new_plane_1, new_plane_3, plane_4]) # multiply the first row by 0 and add to the second row # this should have no affect lin_sys.add_multiple_times_row_to_row(0, 0, 1) assert lin_sys[0] == plane_2 assert lin_sys[1] == new_plane_1 assert lin_sys[2] == new_plane_3 assert lin_sys[3] == plane_4 # multiply the first row by 1 and add it to the second row lin_sys.add_multiple_times_row_to_row(1, 0, 1) plane_1_added = Plane(Vector([10, 11, 10]), 12) assert lin_sys[0] == plane_2 assert lin_sys[1] == plane_1_added assert lin_sys[2] == new_plane_3 assert lin_sys[3] == plane_4 # multiply the second row by -1 and add to the first row lin_sys.add_multiple_times_row_to_row(-1, 1, 0) plane_2_subtracted = Plane(Vector([-10, -10, -10]), -10) assert lin_sys[0] == plane_2_subtracted assert lin_sys[1] == plane_1_added assert lin_sys[2] == new_plane_3 assert lin_sys[3] == plane_4
print s[2].normal_vector == Vector(['-1','-1','1']) print s[2] == Plane(Vector(['-1','-1','1']),'-3') if not (s[0] == p1 and s[1] == p0 and s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print 'test case 5 failed' s.multiply_coefficient_and_row(10,1) if not (s[0] == p1 and s[1] == Plane(normal_vector=Vector(['10','10','10']), constant_term='10') and s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print 'test case 6 failed' s.add_multiple_times_row_to_row(0,0,1) if not (s[0] == p1 and s[1] == Plane(normal_vector=Vector(['10','10','10']), constant_term='10') and s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print 'test case 7 failed' s.add_multiple_times_row_to_row(1,0,1) if not (s[0] == p1 and s[1] == Plane(normal_vector=Vector(['10','11','10']), constant_term='12') and s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print 'test case 8 failed' s.add_multiple_times_row_to_row(-1,1,0) if not (s[0] == Plane(normal_vector=Vector(['-10','-10','-10']), constant_term='-10') and
def test_ge_functions(self): p0 = Plane(normal_vector=Vector([1, 1, 1]), constant_term=1) p1 = Plane(normal_vector=Vector([0, 1, 0]), constant_term=2) p2 = Plane(normal_vector=Vector([1, 1, -1]), constant_term=3) p3 = Plane(normal_vector=Vector([1, 0, -2]), constant_term=2) s = LinearSystem([p0, p1, p2, p3]) s.swap_rows(0, 1) self.assertTrue(s[0] == p1 and s[1] == p0 and s[2] == p2 and s[3] == p3) s.swap_rows(1, 3) self.assertTrue(s[0] == p1 and s[1] == p3 and s[2] == p2 and s[3] == p0) s.swap_rows(3, 1) self.assertTrue(s[0] == p1 and s[1] == p0 and s[2] == p2 and s[3] == p3) s.multiply_coefficient_and_row(1, 0) self.assertTrue(s[0] == p1) self.assertTrue(s[1] == p0) self.assertTrue(s[2] == p2) self.assertTrue(s[3] == p3) s.multiply_coefficient_and_row(-1, 2) self.assertTrue(s[0] == p1 and s[1] == p0 and s[2] == \ Plane(normal_vector=Vector([-1,-1,1]), constant_term=-3) \ and s[3] == p3) s.multiply_coefficient_and_row(10, 1) self.assertTrue(s[0] == p1 and \ s[1] == Plane(normal_vector=Vector([10,10,10]), constant_term=10) and s[2] == Plane(normal_vector=Vector([-1,-1,1]), constant_term=-3) and s[3] == p3) s.add_multiple_times_row_to_row(0, 0, 1) self.assertTrue(s[0] == p1 and \ s[1] == Plane(normal_vector=Vector([10,10,10]), constant_term=10) and s[2] == Plane(normal_vector=Vector([-1,-1,1]), constant_term=-3) and s[3] == p3) s.add_multiple_times_row_to_row(1, 0, 1) self.assertTrue(s[0] == p1 and \ s[1] == Plane(normal_vector=Vector([10,11,10]), constant_term=12) and s[2] == Plane(normal_vector=Vector([-1,-1,1]), constant_term=-3) and s[3] == p3) # params coefficient, row_to_add, row_to_be_added_to s.add_multiple_times_row_to_row(-1, 1, 0) self.assertTrue(s[0] == Plane(normal_vector=Vector([-10, -10, -10]), constant_term=-10) and s[1] == Plane(normal_vector=Vector([10, 11, 10]), constant_term=12) and s[2] == Plane(normal_vector=Vector([-1, -1, 1]), constant_term=-3) and s[3] == p3)
s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print('test case 5 failed') else: print('test case 5 passed') s.multiply_coefficient_and_row(10,1) if not (s[0] == p1 and s[1] == Plane(normal_vector=Vector(['10','10','10']), constant_term='10') and s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print('test case 6 failed') else: print('test case 6 passed') s.add_multiple_times_row_to_row(0,0,1) if not (s[0] == p1 and s[1] == Plane(normal_vector=Vector(['10','10','10']), constant_term='10') and s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print('test case 7 failed') else: print('test case 7 passed') s.add_multiple_times_row_to_row(1,0,1) if not (s[0] == p1 and s[1] == Plane(normal_vector=Vector(['10','11','10']), constant_term='12') and s[2] == Plane(normal_vector=Vector(['-1','-1','1']), constant_term='-3') and s[3] == p3): print('test case 8 failed: ') print(s)