def test_daylight_saving(): """Test the applicaiton of daylight saving time.""" nyc = Location('New_York', country='USA', latitude=40.72, longitude=-74.02, time_zone=-5) daylight_saving = AnalysisPeriod(st_month=3, st_day=8, st_hour=2, end_month=11, end_day=1, end_hour=2) sp = Sunpath.from_location(nyc, daylight_saving_period=daylight_saving) dt1 = DateTime(6, 21, 12, 0) dt2 = DateTime(12, 21, 12, 0) dt3 = DateTime(6, 21, 0) dt4 = DateTime(12, 21, 0) assert sp.is_daylight_saving_hour(dt1) assert not sp.is_daylight_saving_hour(dt2) assert sp.is_daylight_saving_hour(dt3) assert not sp.is_daylight_saving_hour(dt4) sun1ds = sp.calculate_sun_from_date_time(dt1) sun2ds = sp.calculate_sun_from_date_time(dt2) sun3ds = sp.calculate_sun_from_date_time(dt3) sun4ds = sp.calculate_sun_from_date_time(dt4) sp.daylight_saving_period = None assert sun1ds != sp.calculate_sun_from_date_time(dt1) assert sun3ds != sp.calculate_sun_from_date_time(dt3) assert sun1ds.altitude == \ approx(sp.calculate_sun_from_date_time(dt1.sub_hour(1)).altitude, rel=1e-2) assert sun3ds.altitude == \ approx(sp.calculate_sun_from_date_time(dt3.sub_hour(1)).altitude, rel=1e-2) sun2 = sp.calculate_sun_from_date_time(dt2) sun4 = sp.calculate_sun_from_date_time(dt4) assert sun2 == sun2ds assert sun4 == sun4ds
def test_date_time_add_sub(): """Test the add and subtract methods for DateTime.""" dt1 = DateTime(6, 21, 12) dt2 = dt1.add_hour(1) dt3 = dt1.sub_hour(1) dt4 = dt1.add_minute(1) dt5 = dt1.sub_minute(1) assert dt2 == DateTime(6, 21, 13) assert dt3 == DateTime(6, 21, 11) assert dt4 == DateTime(6, 21, 12, 1) assert dt5 == DateTime(6, 21, 11, 59)