瀏覽代碼

Merge pull request #31 from Deuchnord/fix-moon-phase-prediction

fix(moonphase): fix the Moon phase prediction
tags/v0.3.1
Jérôme Deuchnord 4 年之前
committed by GitHub
父節點
當前提交
9511787391
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: 4AEE18F83AFDEB23
共有 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…
取消
儲存