瀏覽代碼

fix(moonphase): fix the Moon phase prediction

tags/v0.3.1
Jérôme Deuchnord 4 年之前
父節點
當前提交
d7157466d9
沒有發現已知的金鑰在資料庫的簽署中 GPG 金鑰 ID: BC6F3C345B7D33B0
共有 2 個檔案被更改,包括 25 行新增4 行删除
  1. +3
    -3
      kosmorrolib/data.py
  2. +22
    -1
      test/ephemerides.py

+ 3
- 3
kosmorrolib/data.py 查看文件

@@ -48,11 +48,11 @@ class MoonPhase:
return MOON_PHASES[self.identifier]

def get_next_phase(self):
if self.identifier == 'NEW_MOON':
if self.identifier == 'NEW_MOON' or self.identifier == 'WAXING_CRESCENT':
next_identifier = 'FIRST_QUARTER'
elif self.identifier == 'FIRST_QUARTER':
elif self.identifier == 'FIRST_QUARTER' or self.identifier == 'WAXING_GIBBOUS':
next_identifier = 'FULL_MOON'
elif self.identifier == 'FULL_MOON':
elif self.identifier == 'FULL_MOON' or self.identifier == 'WANING_GIBBOUS':
next_identifier = 'LAST_QUARTER'
else:
next_identifier = 'NEW_MOON'


+ 22
- 1
test/ephemerides.py 查看文件

@@ -1,7 +1,7 @@
import unittest
from kosmorrolib.ephemerides import EphemeridesComputer
from kosmorrolib.core import get_skf_objects
from kosmorrolib.data import Star, Position
from kosmorrolib.data import Star, Position, MoonPhase
from datetime import date


@@ -81,6 +81,27 @@ class EphemeridesComputerTestCase(unittest.TestCase):
self.assertIsNone(phase.time)
self.assertRegexpMatches(phase.next_phase_date.utc_iso(), '^2019-11-26T')

def test_moon_phase_prediction(self):
phase = MoonPhase('NEW_MOON', None, None)
self.assertEqual('First Quarter', phase.get_next_phase())
phase = MoonPhase('WAXING_CRESCENT', None, None)
self.assertEqual('First Quarter', phase.get_next_phase())

phase = MoonPhase('FIRST_QUARTER', None, None)
self.assertEqual('Full Moon', phase.get_next_phase())
phase = MoonPhase('WAXING_GIBBOUS', None, None)
self.assertEqual('Full Moon', phase.get_next_phase())

phase = MoonPhase('FULL_MOON', None, None)
self.assertEqual('Last Quarter', phase.get_next_phase())
phase = MoonPhase('WANING_GIBBOUS', None, None)
self.assertEqual('Last Quarter', phase.get_next_phase())

phase = MoonPhase('LAST_QUARTER', None, None)
self.assertEqual('New Moon', phase.get_next_phase())
phase = MoonPhase('WANING_CRESCENT', None, None)
self.assertEqual('New Moon', phase.get_next_phase())


if __name__ == '__main__':
unittest.main()

Loading…
取消
儲存