def test_sof_zman_kiddush_levana_between_moldos(self): calendar = JewishCalendar(5776, 8, 1) next_month = JewishCalendar(5776, 9, 1) first_molad = calendar.molad_as_datetime() second_molad = next_month.molad_as_datetime() expected_offset = (second_molad - first_molad).total_seconds() * 10**6 / 2.0 expected_time = first_molad + timedelta(microseconds=expected_offset) # round for floating microsecond precision inconsistency self.assertEqual( calendar.sof_zman_kiddush_levana_between_moldos().toordinal(), expected_time.toordinal())
def test_molad_as_datetime(self): expected_offset = (2, 20, 56, 496000 ) # UTC is 2:20:56.496 behind Jerusalem Local Time calendar = JewishCalendar(5776, 8, 1) hours, minutes, chalakim = 5, 51, 10 seconds = (chalakim * 10 / 3.0) seconds, microseconds = divmod(seconds * 10**6, 10**6) hours -= expected_offset[0] minutes -= expected_offset[1] seconds -= expected_offset[2] microseconds -= expected_offset[3] total_seconds = (hours * 3600) + (minutes * 60) + seconds total_microseconds = (total_seconds * 10**6) + microseconds expected_molad = datetime( 2015, 10, 13, 0, 0, 0, tzinfo=tz.UTC) + timedelta(microseconds=total_microseconds) self.assertEqual(calendar.molad_as_datetime(), expected_molad)