|
1 | | -import unittest |
| 1 | +import pytest |
2 | 2 | import pandas as pd |
3 | 3 |
|
4 | 4 | from rdtools.clearsky_temperature import get_clearsky_tamb |
5 | 5 |
|
6 | 6 |
|
7 | | -class ClearSkyTemperatureTestCase(unittest.TestCase): |
8 | | - '''Unit tests for clearsky_temperature module''' |
| 7 | +@pytest.fixture |
| 8 | +def china_cs_tamb(): |
| 9 | + dt = pd.date_range('2015-01-01', '2015-02-01', freq='15min', tz='Asia/Shanghai') |
| 10 | + china_west = get_clearsky_tamb(dt, 37.951721, 80.609843) |
| 11 | + china_east = get_clearsky_tamb(dt, 36.693692, 117.699686) |
| 12 | + return china_west, china_east |
9 | 13 |
|
10 | | - def setUp(self): |
11 | | - |
12 | | - dt = pd.date_range('2015-01-01', '2015-02-01', freq='15min', tz='Asia/Shanghai') |
13 | | - |
14 | | - self.china_west = get_clearsky_tamb(dt, 37.951721, 80.609843) |
15 | | - self.china_east = get_clearsky_tamb(dt, 36.693692, 117.699686) |
16 | | - |
17 | | - # self.china_west.to_csv("west.csv") |
18 | | - # self.china_east.to_csv("east.csv") |
19 | 14 |
|
| 15 | +def test_hour_offset(china_cs_tamb): |
20 | 16 | # Test for shifting temperature peak with longitude for same timezone |
21 | | - def test_hour_offset(self): |
22 | | - |
23 | | - df = pd.DataFrame(index=self.china_west.index) |
24 | | - df['west'] = self.china_west |
25 | | - df['east'] = self.china_east |
26 | | - df['hour'] = df.index.hour |
| 17 | + china_west, china_east = china_cs_tamb |
27 | 18 |
|
28 | | - west_hottest_hour = df.sort_values(by='west', ascending=False)['hour'].iloc[0] |
29 | | - east_hottest_hour = df.sort_values(by='east', ascending=False)['hour'].iloc[0] |
| 19 | + df = pd.DataFrame(index=china_west.index) |
| 20 | + df['west'] = china_west |
| 21 | + df['east'] = china_east |
| 22 | + df['hour'] = df.index.hour |
30 | 23 |
|
31 | | - # print west_hottest_hour , east_hottest_hour |
| 24 | + west_hottest_hour = df.sort_values(by='west', ascending=False)['hour'].iloc[0] |
| 25 | + east_hottest_hour = df.sort_values(by='east', ascending=False)['hour'].iloc[0] |
32 | 26 |
|
33 | | - self.assertTrue(west_hottest_hour > 12) |
34 | | - self.assertTrue(east_hottest_hour > 12) |
35 | | - self.assertTrue(west_hottest_hour > east_hottest_hour) |
| 27 | + assert west_hottest_hour > 12 |
| 28 | + assert east_hottest_hour > 12 |
| 29 | + assert west_hottest_hour > east_hottest_hour |
36 | 30 |
|
37 | 31 |
|
38 | | -if __name__ == '__main__': |
39 | | - unittest.main() |
| 32 | +def test_not_on_land(): |
| 33 | + # test that specifying a point in the ocean returns NaN and warns |
| 34 | + dt = pd.date_range('2015-01-01', freq='15min', periods=1, tz='UTC') |
| 35 | + with pytest.warns(UserWarning, match='possibly invalid Lat/Lon coordinates'): |
| 36 | + ocean_cs_tamb = get_clearsky_tamb(dt, 40, -60) |
| 37 | + assert ocean_cs_tamb.isnull().all() |
0 commit comments