def test_scenes_should_not_be_overwriten_if_4_valley_is_passed(self): first = mockCVF(0, 0, 0, 1) second = mockCVF(0, 0, 0, 0) third = mockCVF(0, 0, 0, 0.5) fourth = mockCVF(0, 0, 0, 1) morph.findInflection.return_value = 2 morph.overrideSunMovement([first, second, third, fourth]) self.assertEqual(first.getSunAltitude(), 1) self.assertEqual(second.getSunAltitude(), 0) self.assertEqual(third.getSunAltitude(), 0.5) self.assertEqual(fourth.getSunAltitude(), 1)
def test_spike_should_create_two_segments(self): first = mockCVF(0, 0, 0, 0) second = mockCVF(0, 0, 0, 0) third = mockCVF(0, 0, 0, 1) fourth = mockCVF(0, 0, 0, 0) fifth = mockCVF(0, 0, 0, 0) mockCVF.setSunAltitude = self.setSun morph.findInflection.return_value = 3 morph.overrideSunMovement([first, second, third, fourth, fifth]) self.assertEqual(first.getSunAltitude(), 0.0) self.assertEqual(second.getSunAltitude(), 0.5) self.assertEqual(third.getSunAltitude(), 1.0) self.assertEqual(fourth.getSunAltitude(), 0.5) self.assertEqual(fifth.getSunAltitude(), 0.0)
def test_dual_mountain_should_be_handled_right(self): first = mockCVF(0, 0, 0, 0) second = mockCVF(0, 0, 0, 0) third = mockCVF(0, 0, 0, 1) fourth = mockCVF(0, 0, 0, 0) fifth = mockCVF(0, 0, 0, 0) sixth = mockCVF(0, 0, 0, 1) seventh = mockCVF(0, 0, 0, 0) mockCVF.setSunAltitude = self.setSun morph.findInflection = self.findInflection morph.overrideSunMovement([first, second, third, fourth, fifth, sixth, seventh]) self.assertEqual(first.getSunAltitude(), 0) self.assertEqual(second.getSunAltitude(), 0.5) self.assertEqual(third.getSunAltitude(), 1) self.assertEqual(fourth.getSunAltitude(), 0.5) self.assertEqual(fifth.getSunAltitude(), 0) self.assertEqual(sixth.getSunAltitude(), 1) self.assertEqual(seventh.getSunAltitude(), 0)
def test_dual_mountain_should_be_handled_right(self): first = mockCVF(0, 0, 0, 0) second = mockCVF(0, 0, 0, 0) third = mockCVF(0, 0, 0, 1) fourth = mockCVF(0, 0, 0, 0) fifth = mockCVF(0, 0, 0, 0) sixth = mockCVF(0, 0, 0, 1) seventh = mockCVF(0, 0, 0, 0) mockCVF.setSunAltitude = self.setSun morph.findInflection = self.findInflection morph.overrideSunMovement( [first, second, third, fourth, fifth, sixth, seventh]) self.assertEqual(first.getSunAltitude(), 0) self.assertEqual(second.getSunAltitude(), 0.5) self.assertEqual(third.getSunAltitude(), 1) self.assertEqual(fourth.getSunAltitude(), 0.5) self.assertEqual(fifth.getSunAltitude(), 0) self.assertEqual(sixth.getSunAltitude(), 1) self.assertEqual(seventh.getSunAltitude(), 0)
def test_overrideSunMovement_should_not_call_findInflection_for_short_inputs(self): morph.overrideSunMovement([self.noon, self.dusk]) self.assertFalse(morph.findInflection.called)
def test_last_scene_shouldnt_be_overwritten_if_decreasing_is_passed(self): oldLast = self.dusk.getSunAltitude() morph.overrideSunMovement([self.noon, self.dusk, self.dusk]) self.assertEqual(self.dusk.getSunAltitude(), oldLast)
def test_middle_scene_should_be_overwritten_if_increasing_is_passed(self): morph.overrideSunMovement([self.dusk, self.dawn, self.noon]) mockCVF.setSunAltitude.assert_any_call(1.507/2)
def test_no_scenes_should_be_overwritten_if_two_are_passed(self): self.assertIsNone(morph.overrideSunMovement([self.dawn, self.dawn])) self.assertFalse(self.dawn.setSunAltitude.called)
def test_no_scenes_should_be_overwritten_if_none_are_passed(self): self.assertIsNone(morph.overrideSunMovement([]))
def test_overrideSunMovement_should_not_call_findInflection_for_short_inputs( self): morph.overrideSunMovement([self.noon, self.dusk]) self.assertFalse(morph.findInflection.called)
def test_middle_scene_should_be_overwritten_if_increasing_is_passed(self): morph.overrideSunMovement([self.dusk, self.dawn, self.noon]) mockCVF.setSunAltitude.assert_any_call(1.507 / 2)
def test_increasing_sun_should_stay_the_same(self): backup = self.scenes morph.overrideSunMovement(self.scenes) self.assertListEqual(backup, self.scenes)