def test_generation_of_sinle_line_of_scenes(self): ''' Using one level of vertical rotation: the output should be the same as the @see: SingleAxisSceneGenerator. ''' # no beta moves too much beta = GeneratorInterval(0, 0) generatorDesc = self.getGeneratorDescription(self.alfa, beta, self.initTranslate) initCamera = ObjectPose(self.initTranslate, self.initRotate) initAnchor = self.getInitAnchor() # scene 1 (initial) translate_1 = self.initTranslate rotate_1 = self.initRotate expected_scene_1 = SceneDescription(ObjectPose(translate_1, rotate_1), initAnchor) # scene 2 translate_2 = [0, 5, 0] rotate_2 = [radians(90), radians(0), radians(180)] expected_scene_2 = SceneDescription(ObjectPose(translate_2, rotate_2), initAnchor) # scene 3 translate_3 = [-5, 0, 0] rotate_3 = [radians(90), radians(0), radians(270)] expected_scene_3 = SceneDescription(ObjectPose(translate_3, rotate_3), initAnchor) # act generator = DoubleAxisSceneGenerator( generatorDesc=generatorDesc, initCamera=initCamera, initAnchor=initAnchor) scenes = generator.prepareScenes() # verify calling generator intervals verify(generatorDesc, atleast=1).alfa verify(generatorDesc, atleast=1).beta self.assertEqual(3, len(scenes), "Number of scenes generated should be equal to 3") # assertions about each scene values self.assertEqual(scenes[0], expected_scene_1, self.getDifferMessage(expected_scene_1, scenes[0])) self.assertEqual(scenes[1], expected_scene_2, self.getDifferMessage(expected_scene_2, scenes[1])) self.assertEqual(scenes[2], expected_scene_3, self.getDifferMessage(expected_scene_3, scenes[2]))
def test_generation_of_two_lines_of_scene(self): ''' Should produce two lines of vertical rotation the output should be the same as the two independent runs in @see: SingleAxisSceneGenerator. ''' # gets beta movements for 0 and 30 ! beta = GeneratorInterval(0, 30, 30) generatorDesc = self.getGeneratorDescription(self.alfa, beta, self.initTranslate) initCamera = ObjectPose(self.initTranslate, self.initRotate) initAnchor = self.getInitAnchor() # setting up expected scenes (line 1) x_beta = round(cos(radians(30)), 15) * self.radius z_beta = round(sin(radians(30)), 15) * self.radius # scene 1 (initial) translate_1 = self.initTranslate rotate_1 = self.initRotate expected_scene_1 = SceneDescription(ObjectPose(translate_1, rotate_1), initAnchor) # scene 2 translate_2 = [0, 5, 0] rotate_2 = [radians(90), radians(0), radians(180)] expected_scene_2 = SceneDescription(ObjectPose(translate_2, rotate_2), initAnchor) # scene 3 translate_3 = [-5, 0, 0] rotate_3 = [radians(90), radians(0), radians(270)] expected_scene_3 = SceneDescription(ObjectPose(translate_3, rotate_3), initAnchor) # second line of scenes # scene 4 translate_4 = [x_beta, 0, z_beta] rotate_4 = [radians(60), radians(0), radians(90)] expected_scene_4 = SceneDescription(ObjectPose(translate_4, rotate_4), initAnchor) # scene 5 translate_5 = [0, x_beta, z_beta] rotate_5 = [radians(60), radians(0), radians(180)] expected_scene_5 = SceneDescription(ObjectPose(translate_5, rotate_5), initAnchor) # scene 6 translate_6 = [-x_beta, 0, z_beta] rotate_6 = [radians(60), radians(0), radians(270)] expected_scene_6 = SceneDescription(ObjectPose(translate_6, rotate_6), initAnchor) # act generator = DoubleAxisSceneGenerator( generatorDesc=generatorDesc, initCamera=initCamera, initAnchor=initAnchor) scenes = generator.prepareScenes() # verify calling generator intervals verify(generatorDesc, atleast=1).alfa verify(generatorDesc, atleast=1).beta self.assertEqual(6, len(scenes), "Number of scenes generated should be equal to 6") # assertions about each scene values self.assertEqual(scenes[0], expected_scene_1, self.getDifferMessage(expected_scene_1, scenes[0])) self.assertEqual(scenes[1], expected_scene_2, self.getDifferMessage(expected_scene_2, scenes[1])) self.assertEqual(scenes[2], expected_scene_3, self.getDifferMessage(expected_scene_3, scenes[2])) self.assertEqual(scenes[3], expected_scene_4, self.getDifferMessage(expected_scene_4, scenes[3])) self.assertEqual(scenes[4], expected_scene_5, self.getDifferMessage(expected_scene_5, scenes[4])) self.assertEqual(scenes[5], expected_scene_6, self.getDifferMessage(expected_scene_6, scenes[5]))