Esempio n. 1
0
class Test(unittest.TestCase):
	
	def setUp(self):
		self._solarsystem = Solar_system()
		#self._planet_1 = None
		
		route_1_x = [1000, 0, 0]
		route_1_v = [0, -1000, 0]
		route_1 = Route(route_1_x, route_1_v)
		name_1 = "Aalto-3"
		mass_1 = 10
		state_1 = State.ALIVE
		self._satellite_1 = Satellite(name_1, route_1, mass_1, state_1)
		
		route_1_x = [152100000000, 0, 0]
		route_1_v = [0, 29780, 0]
		route_1 = Route(route_1_x, route_1_v)
		name_1 = "Earth"
		mass_1 = 5.97237*10**24
		diameter = 2*6371000
		self._planet_1 = Planet(name_1, route_1, mass_1, diameter)
		
		self.pos_test_string = "x:220my:100kmz:20m"
		self.test_read = Read_planets()
		test_file = open("test_read.txt")
		self._solarsystem.read_planets(test_file)		
		test_file.close()
		
		

		
	
	def test_satellites(self):
		
		self.assertEqual("Aalto-3", self._satellite_1.get_name(), "Satellite name should be Aalto-3")
		self.assertEqual([1000, 0, 0], \
		[self._satellite_1.get_route().x_vector.x, self._satellite_1.get_route().x_vector.y, self._satellite_1.get_route().x_vector.z], \
		 "Position coordinates should be 1000, 0, 0")
		self.assertEqual([0, -1000, 0], \
		[self._satellite_1.get_route().v_vector.x, self._satellite_1.get_route().v_vector.y, self._satellite_1.get_route().v_vector.z], \
		"Velocity components should be 0, 1000, 0")
		
	def test_planets(self):
		self.assertEqual("Earth", self._planet_1.get_name(), "Planet name should be Earth")
		self.assertEqual([152100000000, 0, 0], \
		[self._planet_1.get_route().x_vector.x, self._planet_1.get_route().x_vector.y, self._planet_1.get_route().x_vector.z], \
		"Planet coordinates should be" + str([152100000000, 0, 0]))
		self.assertEqual([0, 29780, 0], \
		[self._planet_1.get_route().v_vector.x, self._planet_1.get_route().v_vector.y, self._planet_1.get_route().v_vector.z], \
		"Planet coordinates should be" + str([0, 29780, 0]))
		
	def test_adding_cel_objects(self):
		self._solarsystem.add_satellite(self._satellite_1)
		self._solarsystem.add_planet(self._planet_1)
		self.assertTrue((self._satellite_1 in self._solarsystem.get_satellites()))
		self.assertTrue((self._planet_1 in self._solarsystem.get_planets()))
		
	def test_updating_route(self):
		route_2_x = [500, 500, 0]
		route_2_v = [-500, -500, 0]
		route_2 = Route(route_2_x, route_2_v)
		self._satellite_1.update_route(route_2)
		self.assertEqual(route_2_x, \
		[self._satellite_1.get_route().x_vector.x, self._satellite_1.get_route().x_vector.y, self._satellite_1.get_route().x_vector.z], \
		 "Position coordinates should be " + str(route_2_x))
		self.assertEqual(route_2_v, \
		[self._satellite_1.get_route().v_vector.x, self._satellite_1.get_route().v_vector.y, self._satellite_1.get_route().v_vector.z], \
		"Velocity components should be " + str(route_2_v))
		
	def test_reading_position(self):
		corr_pos = [220.0, 100000.0, 20.0]
		ret_pos = self.test_read.read_position(self.pos_test_string)
		self.assertEqual(corr_pos, ret_pos, "Position vector should be " + str(corr_pos))
		
	def test_reading_file(self):
		test_file = open("test_read.txt")
		self._solarsystem.read_planets(test_file)		
		test_file.close()
		self.assertEqual(self._solarsystem.get_planets()[0].get_name(), "Maa", "planet should be called 'Maa'")
		self.assertEqual(self._solarsystem.get_planets()[0].get_mass(), 5.97219*10**24, "Planet mass wrong") 
		self.assertEqual(self._solarsystem.get_planets()[0].get_diameter(), 6371*10**3, "Planet diameter wrong")
		test_route = Route([149.6*10**9, 0, 0], [0, 30*10**3, 0])
		self.assertEqual(self._solarsystem.get_planets()[0].get_route().x_vector.x, test_route.x_vector.x, "Route is wrong")
		self.assertEqual(self._solarsystem.get_planets()[0].get_route().v_vector.y, test_route.v_vector.y, "Route is wrong")
		
		self.assertEqual(self._solarsystem.get_sun().get_mass(), 1.98855e30, "The sun has wrong mass")
		self.assertEqual(self._solarsystem.get_sun().get_name(), "Aurinko", "The name of the sun should be 'Aurinko'")