diff --git a/docs/Release_1.0.md b/docs/Release_1.0.md index 1ac735d..a645dc4 100644 --- a/docs/Release_1.0.md +++ b/docs/Release_1.0.md @@ -62,7 +62,7 @@ Available requests: | `getCoordinates()` | Returns `Coordinates` instance that contains *latitude* and *longitude* information. | | `getWeatherStates()` | Returns list of `WeatherState` instances with the only `getDescription` useful method. | | `getBase()` | Returns `String` with some internal information. Example: `cmc stations` - from official documentation. | -| `getWeatherInfo()` | Returns `Weather.WeatherInfo` instance that contains information about temperature, pressure and humidity. | +| `getWeatherInfo()` | Returns `Weather.WeatherInfo` instance that contains information about temperature, atmosphericPressure and humidity. | | `getWind()` | Returns `Wind` instance that contains information about speed and degree. | | `getClouds()` | Returns `Clouds` instance that contains *cloudiness* percentage information. | | `getRain()` | Returns `Rain` instance that contains information about rain volume for the last 3 hours. | @@ -134,11 +134,11 @@ Available requests: | `getMaximumTemperature()` | Returns maximum temperature from forecasts. | | `getByMinimumTemperature()` | Returns `HourlyForecast.Forecast` for the time where temperature is minimal. | | `getByMaximumTemperature()` | Returns `HourlyForecast.Forecast` for the time where temperature is maximal. | -| `getAveragePressure()` | Returns average pressure from forecasts. | -| `getMinimumPressure()` | Returns minimum pressure from forecasts. | -| `getMaximumPressure()` | Returns maximum pressure from forecasts. | -| `getByMinimumPressure()` | Returns `HourlyForecast.Forecast` for the time where pressure is minimal. | -| `getByMaximumPressure()` | Returns `HourlyForecast.Forecast` for the time where pressure is maximal. | +| `getAveragePressure()` | Returns average atmosphericPressure from forecasts. | +| `getMinimumPressure()` | Returns minimum atmosphericPressure from forecasts. | +| `getMaximumPressure()` | Returns maximum atmosphericPressure from forecasts. | +| `getByMinimumPressure()` | Returns `HourlyForecast.Forecast` for the time where atmosphericPressure is minimal. | +| `getByMaximumPressure()` | Returns `HourlyForecast.Forecast` for the time where atmosphericPressure is maximal. | | `toString()` | Returns pretty string for the whole available forecast information. | `toString()` output example: @@ -146,46 +146,46 @@ Available requests: City: Pruzhany(622997). Coordinates: latitude=52.5582, longitude=24.4567 Country: BY Forecasts: - Time: Tue Jul 17 00:00:00 MSK 2018. Weather: light rain. Temperature: 16.24 ℃. Minimum temperature: 16.24 ℃. Maximum temperature: 17.36 ℃. Pressure: 997.38 hPa. Sea-level pressure: 1018.59 hPa. Ground-level pressure: 997.38 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 2.85 meter/sec, 324 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 03:00:00 MSK 2018. Weather: moderate rain. Temperature: 16.0 ℃. Minimum temperature: 16.0 ℃. Maximum temperature: 16.83 ℃. Pressure: 996.88 hPa. Sea-level pressure: 1017.86 hPa. Ground-level pressure: 996.88 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 1.86 meter/sec, 349 degrees. Rain(last 3 hrs): 3 mm - Time: Tue Jul 17 06:00:00 MSK 2018. Weather: light rain. Temperature: 15.76 ℃. Minimum temperature: 15.76 ℃. Maximum temperature: 16.31 ℃. Pressure: 996.7 hPa. Sea-level pressure: 1017.72 hPa. Ground-level pressure: 996.7 hPa. Humidity: 94%. Cloudiness: 76%. Wind: 1.62 meter/sec, 113 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 09:00:00 MSK 2018. Weather: light rain. Temperature: 18.23 ℃. Minimum temperature: 18.23 ℃. Maximum temperature: 18.51 ℃. Pressure: 997.17 hPa. Sea-level pressure: 1018.18 hPa. Ground-level pressure: 997.17 hPa. Humidity: 100%. Cloudiness: 76%. Wind: 2.11 meter/sec, 107 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 12:00:00 MSK 2018. Weather: light rain. Temperature: 21.0 ℃. Minimum temperature: 21.0 ℃. Maximum temperature: 21.0 ℃. Pressure: 997.6 hPa. Sea-level pressure: 1018.5 hPa. Ground-level pressure: 997.6 hPa. Humidity: 100%. Cloudiness: 68%. Wind: 2.51 meter/sec, 82 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 15:00:00 MSK 2018. Weather: light rain. Temperature: 21.78 ℃. Minimum temperature: 21.78 ℃. Maximum temperature: 21.78 ℃. Pressure: 997.73 hPa. Sea-level pressure: 1018.66 hPa. Ground-level pressure: 997.73 hPa. Humidity: 92%. Cloudiness: 88%. Wind: 4.05 meter/sec, 78 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 18:00:00 MSK 2018. Weather: light rain. Temperature: 22.9 ℃. Minimum temperature: 22.9 ℃. Maximum temperature: 22.9 ℃. Pressure: 997.66 hPa. Sea-level pressure: 1018.55 hPa. Ground-level pressure: 997.66 hPa. Humidity: 93%. Cloudiness: 68%. Wind: 3.06 meter/sec, 67 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 21:00:00 MSK 2018. Weather: light rain. Temperature: 23.04 ℃. Minimum temperature: 23.04 ℃. Maximum temperature: 23.04 ℃. Pressure: 996.89 hPa. Sea-level pressure: 1017.99 hPa. Ground-level pressure: 996.89 hPa. Humidity: 83%. Cloudiness: 88%. Wind: 3.17 meter/sec, 16 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 00:00:00 MSK 2018. Weather: moderate rain. Temperature: 18.5 ℃. Minimum temperature: 18.5 ℃. Maximum temperature: 18.5 ℃. Pressure: 997.33 hPa. Sea-level pressure: 1018.34 hPa. Ground-level pressure: 997.33 hPa. Humidity: 97%. Cloudiness: 44%. Wind: 3.56 meter/sec, 31 degrees. Rain(last 3 hrs): 7 mm - Time: Wed Jul 18 03:00:00 MSK 2018. Weather: few clouds. Temperature: 18.57 ℃. Minimum temperature: 18.57 ℃. Maximum temperature: 18.57 ℃. Pressure: 996.91 hPa. Sea-level pressure: 1017.87 hPa. Ground-level pressure: 996.91 hPa. Humidity: 95%. Cloudiness: 24%. Wind: 5.26 meter/sec, 44 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 06:00:00 MSK 2018. Weather: few clouds. Temperature: 18.94 ℃. Minimum temperature: 18.94 ℃. Maximum temperature: 18.94 ℃. Pressure: 997.07 hPa. Sea-level pressure: 1018.06 hPa. Ground-level pressure: 997.07 hPa. Humidity: 95%. Cloudiness: 20%. Wind: 4.8 meter/sec, 45 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 09:00:00 MSK 2018. Weather: light rain. Temperature: 20.6 ℃. Minimum temperature: 20.6 ℃. Maximum temperature: 20.6 ℃. Pressure: 997.8 hPa. Sea-level pressure: 1018.66 hPa. Ground-level pressure: 997.8 hPa. Humidity: 97%. Cloudiness: 48%. Wind: 5.56 meter/sec, 54 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 12:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.87 ℃. Minimum temperature: 23.87 ℃. Maximum temperature: 23.87 ℃. Pressure: 998.06 hPa. Sea-level pressure: 1019.05 hPa. Ground-level pressure: 998.06 hPa. Humidity: 88%. Cloudiness: 32%. Wind: 5.86 meter/sec, 52 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 24.67 ℃. Minimum temperature: 24.67 ℃. Maximum temperature: 24.67 ℃. Pressure: 998.51 hPa. Sea-level pressure: 1019.33 hPa. Ground-level pressure: 998.51 hPa. Humidity: 84%. Cloudiness: 36%. Wind: 5.63 meter/sec, 51 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.15 ℃. Minimum temperature: 25.15 ℃. Maximum temperature: 25.15 ℃. Pressure: 998.79 hPa. Sea-level pressure: 1019.64 hPa. Ground-level pressure: 998.79 hPa. Humidity: 78%. Cloudiness: 44%. Wind: 5.47 meter/sec, 38 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.23 ℃. Minimum temperature: 23.23 ℃. Maximum temperature: 23.23 ℃. Pressure: 999.08 hPa. Sea-level pressure: 1020.04 hPa. Ground-level pressure: 999.08 hPa. Humidity: 75%. Cloudiness: 48%. Wind: 4.62 meter/sec, 25 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 20.79 ℃. Minimum temperature: 20.79 ℃. Maximum temperature: 20.79 ℃. Pressure: 999.67 hPa. Sea-level pressure: 1020.68 hPa. Ground-level pressure: 999.67 hPa. Humidity: 76%. Cloudiness: 48%. Wind: 4.29 meter/sec, 13 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 03:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.45 ℃. Minimum temperature: 19.45 ℃. Maximum temperature: 19.45 ℃. Pressure: 999.95 hPa. Sea-level pressure: 1021.02 hPa. Ground-level pressure: 999.95 hPa. Humidity: 80%. Cloudiness: 48%. Wind: 4.22 meter/sec, 17 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 06:00:00 MSK 2018. Weather: light rain. Temperature: 18.9 ℃. Minimum temperature: 18.9 ℃. Maximum temperature: 18.9 ℃. Pressure: 1000.6 hPa. Sea-level pressure: 1021.62 hPa. Ground-level pressure: 1000.6 hPa. Humidity: 83%. Cloudiness: 92%. Wind: 4.43 meter/sec, 10 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 09:00:00 MSK 2018. Weather: light rain. Temperature: 21.37 ℃. Minimum temperature: 21.37 ℃. Maximum temperature: 21.37 ℃. Pressure: 1000.95 hPa. Sea-level pressure: 1022.01 hPa. Ground-level pressure: 1000.95 hPa. Humidity: 87%. Cloudiness: 0%. Wind: 4.36 meter/sec, 6 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.92 ℃. Minimum temperature: 23.92 ℃. Maximum temperature: 23.92 ℃. Pressure: 1001.5 hPa. Sea-level pressure: 1022.43 hPa. Ground-level pressure: 1001.5 hPa. Humidity: 77%. Cloudiness: 0%. Wind: 5.66 meter/sec, 12 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 15:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.7 ℃. Minimum temperature: 23.7 ℃. Maximum temperature: 23.7 ℃. Pressure: 1001.75 hPa. Sea-level pressure: 1022.72 hPa. Ground-level pressure: 1001.75 hPa. Humidity: 72%. Cloudiness: 56%. Wind: 5.87 meter/sec, 349 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 18:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.82 ℃. Minimum temperature: 23.82 ℃. Maximum temperature: 23.82 ℃. Pressure: 1001.55 hPa. Sea-level pressure: 1022.59 hPa. Ground-level pressure: 1001.55 hPa. Humidity: 72%. Cloudiness: 68%. Wind: 5.47 meter/sec, 340 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.22 ℃. Minimum temperature: 22.22 ℃. Maximum temperature: 22.22 ℃. Pressure: 1001.82 hPa. Sea-level pressure: 1022.93 hPa. Ground-level pressure: 1001.82 hPa. Humidity: 67%. Cloudiness: 76%. Wind: 4.12 meter/sec, 333 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.76 ℃. Minimum temperature: 19.76 ℃. Maximum temperature: 19.76 ℃. Pressure: 1001.98 hPa. Sea-level pressure: 1023.13 hPa. Ground-level pressure: 1001.98 hPa. Humidity: 76%. Cloudiness: 32%. Wind: 4.11 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 03:00:00 MSK 2018. Weather: clear sky. Temperature: 17.53 ℃. Minimum temperature: 17.53 ℃. Maximum temperature: 17.53 ℃. Pressure: 1001.93 hPa. Sea-level pressure: 1023.13 hPa. Ground-level pressure: 1001.93 hPa. Humidity: 87%. Cloudiness: 8%. Wind: 4.21 meter/sec, 309 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 16.83 ℃. Minimum temperature: 16.83 ℃. Maximum temperature: 16.83 ℃. Pressure: 1001.79 hPa. Sea-level pressure: 1022.99 hPa. Ground-level pressure: 1001.79 hPa. Humidity: 91%. Cloudiness: 44%. Wind: 3.65 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 09:00:00 MSK 2018. Weather: light rain. Temperature: 19.57 ℃. Minimum temperature: 19.57 ℃. Maximum temperature: 19.57 ℃. Pressure: 1001.34 hPa. Sea-level pressure: 1022.41 hPa. Ground-level pressure: 1001.34 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 4.38 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.5 ℃. Minimum temperature: 23.5 ℃. Maximum temperature: 23.5 ℃. Pressure: 1001.0 hPa. Sea-level pressure: 1021.99 hPa. Ground-level pressure: 1001.0 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 5.36 meter/sec, 299 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.14 ℃. Minimum temperature: 25.14 ℃. Maximum temperature: 25.14 ℃. Pressure: 1000.5 hPa. Sea-level pressure: 1021.51 hPa. Ground-level pressure: 1000.5 hPa. Humidity: 73%. Cloudiness: 32%. Wind: 6.72 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 18:00:00 MSK 2018. Weather: overcast clouds. Temperature: 23.56 ℃. Minimum temperature: 23.56 ℃. Maximum temperature: 23.56 ℃. Pressure: 1000.7 hPa. Sea-level pressure: 1021.58 hPa. Ground-level pressure: 1000.7 hPa. Humidity: 66%. Cloudiness: 88%. Wind: 6.57 meter/sec, 317 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.41 ℃. Minimum temperature: 22.41 ℃. Maximum temperature: 22.41 ℃. Pressure: 1000.64 hPa. Sea-level pressure: 1021.67 hPa. Ground-level pressure: 1000.64 hPa. Humidity: 68%. Cloudiness: 64%. Wind: 4.31 meter/sec, 326 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 00:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.92 ℃. Minimum temperature: 20.92 ℃. Maximum temperature: 20.92 ℃. Pressure: 1001.06 hPa. Sea-level pressure: 1022.14 hPa. Ground-level pressure: 1001.06 hPa. Humidity: 78%. Cloudiness: 68%. Wind: 3.42 meter/sec, 327 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 03:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.28 ℃. Minimum temperature: 20.28 ℃. Maximum temperature: 20.28 ℃. Pressure: 1001.04 hPa. Sea-level pressure: 1022.13 hPa. Ground-level pressure: 1001.04 hPa. Humidity: 78%. Cloudiness: 76%. Wind: 4.27 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.11 ℃. Minimum temperature: 19.11 ℃. Maximum temperature: 19.11 ℃. Pressure: 1001.13 hPa. Sea-level pressure: 1022.28 hPa. Ground-level pressure: 1001.13 hPa. Humidity: 74%. Cloudiness: 32%. Wind: 4.96 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 09:00:00 MSK 2018. Weather: few clouds. Temperature: 20.16 ℃. Minimum temperature: 20.16 ℃. Maximum temperature: 20.16 ℃. Pressure: 1001.43 hPa. Sea-level pressure: 1022.62 hPa. Ground-level pressure: 1001.43 hPa. Humidity: 86%. Cloudiness: 20%. Wind: 5.16 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 12:00:00 MSK 2018. Weather: few clouds. Temperature: 22.37 ℃. Minimum temperature: 22.37 ℃. Maximum temperature: 22.37 ℃. Pressure: 1001.53 hPa. Sea-level pressure: 1022.62 hPa. Ground-level pressure: 1001.53 hPa. Humidity: 88%. Cloudiness: 20%. Wind: 5.56 meter/sec, 307 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.85 ℃. Minimum temperature: 22.85 ℃. Maximum temperature: 22.85 ℃. Pressure: 1001.63 hPa. Sea-level pressure: 1022.65 hPa. Ground-level pressure: 1001.63 hPa. Humidity: 81%. Cloudiness: 44%. Wind: 5.46 meter/sec, 314 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.79 ℃. Minimum temperature: 23.79 ℃. Maximum temperature: 23.79 ℃. Pressure: 1001.53 hPa. Sea-level pressure: 1022.53 hPa. Ground-level pressure: 1001.53 hPa. Humidity: 72%. Cloudiness: 32%. Wind: 5.56 meter/sec, 313 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.56 ℃. Minimum temperature: 22.56 ℃. Maximum temperature: 22.56 ℃. Pressure: 1001.72 hPa. Sea-level pressure: 1022.7 hPa. Ground-level pressure: 1001.72 hPa. Humidity: 66%. Cloudiness: 48%. Wind: 3.96 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 00:00:00 MSK 2018. Weather: light rain. Temperature: 16.24 ℃. Minimum temperature: 16.24 ℃. Maximum temperature: 17.36 ℃. Pressure: 997.38 hPa. Sea-level atmosphericPressure: 1018.59 hPa. Ground-level atmosphericPressure: 997.38 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 2.85 meter/sec, 324 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 03:00:00 MSK 2018. Weather: moderate rain. Temperature: 16.0 ℃. Minimum temperature: 16.0 ℃. Maximum temperature: 16.83 ℃. Pressure: 996.88 hPa. Sea-level atmosphericPressure: 1017.86 hPa. Ground-level atmosphericPressure: 996.88 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 1.86 meter/sec, 349 degrees. Rain(last 3 hrs): 3 mm + Time: Tue Jul 17 06:00:00 MSK 2018. Weather: light rain. Temperature: 15.76 ℃. Minimum temperature: 15.76 ℃. Maximum temperature: 16.31 ℃. Pressure: 996.7 hPa. Sea-level atmosphericPressure: 1017.72 hPa. Ground-level atmosphericPressure: 996.7 hPa. Humidity: 94%. Cloudiness: 76%. Wind: 1.62 meter/sec, 113 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 09:00:00 MSK 2018. Weather: light rain. Temperature: 18.23 ℃. Minimum temperature: 18.23 ℃. Maximum temperature: 18.51 ℃. Pressure: 997.17 hPa. Sea-level atmosphericPressure: 1018.18 hPa. Ground-level atmosphericPressure: 997.17 hPa. Humidity: 100%. Cloudiness: 76%. Wind: 2.11 meter/sec, 107 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 12:00:00 MSK 2018. Weather: light rain. Temperature: 21.0 ℃. Minimum temperature: 21.0 ℃. Maximum temperature: 21.0 ℃. Pressure: 997.6 hPa. Sea-level atmosphericPressure: 1018.5 hPa. Ground-level atmosphericPressure: 997.6 hPa. Humidity: 100%. Cloudiness: 68%. Wind: 2.51 meter/sec, 82 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 15:00:00 MSK 2018. Weather: light rain. Temperature: 21.78 ℃. Minimum temperature: 21.78 ℃. Maximum temperature: 21.78 ℃. Pressure: 997.73 hPa. Sea-level atmosphericPressure: 1018.66 hPa. Ground-level atmosphericPressure: 997.73 hPa. Humidity: 92%. Cloudiness: 88%. Wind: 4.05 meter/sec, 78 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 18:00:00 MSK 2018. Weather: light rain. Temperature: 22.9 ℃. Minimum temperature: 22.9 ℃. Maximum temperature: 22.9 ℃. Pressure: 997.66 hPa. Sea-level atmosphericPressure: 1018.55 hPa. Ground-level atmosphericPressure: 997.66 hPa. Humidity: 93%. Cloudiness: 68%. Wind: 3.06 meter/sec, 67 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 21:00:00 MSK 2018. Weather: light rain. Temperature: 23.04 ℃. Minimum temperature: 23.04 ℃. Maximum temperature: 23.04 ℃. Pressure: 996.89 hPa. Sea-level atmosphericPressure: 1017.99 hPa. Ground-level atmosphericPressure: 996.89 hPa. Humidity: 83%. Cloudiness: 88%. Wind: 3.17 meter/sec, 16 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 00:00:00 MSK 2018. Weather: moderate rain. Temperature: 18.5 ℃. Minimum temperature: 18.5 ℃. Maximum temperature: 18.5 ℃. Pressure: 997.33 hPa. Sea-level atmosphericPressure: 1018.34 hPa. Ground-level atmosphericPressure: 997.33 hPa. Humidity: 97%. Cloudiness: 44%. Wind: 3.56 meter/sec, 31 degrees. Rain(last 3 hrs): 7 mm + Time: Wed Jul 18 03:00:00 MSK 2018. Weather: few clouds. Temperature: 18.57 ℃. Minimum temperature: 18.57 ℃. Maximum temperature: 18.57 ℃. Pressure: 996.91 hPa. Sea-level atmosphericPressure: 1017.87 hPa. Ground-level atmosphericPressure: 996.91 hPa. Humidity: 95%. Cloudiness: 24%. Wind: 5.26 meter/sec, 44 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 06:00:00 MSK 2018. Weather: few clouds. Temperature: 18.94 ℃. Minimum temperature: 18.94 ℃. Maximum temperature: 18.94 ℃. Pressure: 997.07 hPa. Sea-level atmosphericPressure: 1018.06 hPa. Ground-level atmosphericPressure: 997.07 hPa. Humidity: 95%. Cloudiness: 20%. Wind: 4.8 meter/sec, 45 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 09:00:00 MSK 2018. Weather: light rain. Temperature: 20.6 ℃. Minimum temperature: 20.6 ℃. Maximum temperature: 20.6 ℃. Pressure: 997.8 hPa. Sea-level atmosphericPressure: 1018.66 hPa. Ground-level atmosphericPressure: 997.8 hPa. Humidity: 97%. Cloudiness: 48%. Wind: 5.56 meter/sec, 54 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 12:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.87 ℃. Minimum temperature: 23.87 ℃. Maximum temperature: 23.87 ℃. Pressure: 998.06 hPa. Sea-level atmosphericPressure: 1019.05 hPa. Ground-level atmosphericPressure: 998.06 hPa. Humidity: 88%. Cloudiness: 32%. Wind: 5.86 meter/sec, 52 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 24.67 ℃. Minimum temperature: 24.67 ℃. Maximum temperature: 24.67 ℃. Pressure: 998.51 hPa. Sea-level atmosphericPressure: 1019.33 hPa. Ground-level atmosphericPressure: 998.51 hPa. Humidity: 84%. Cloudiness: 36%. Wind: 5.63 meter/sec, 51 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.15 ℃. Minimum temperature: 25.15 ℃. Maximum temperature: 25.15 ℃. Pressure: 998.79 hPa. Sea-level atmosphericPressure: 1019.64 hPa. Ground-level atmosphericPressure: 998.79 hPa. Humidity: 78%. Cloudiness: 44%. Wind: 5.47 meter/sec, 38 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.23 ℃. Minimum temperature: 23.23 ℃. Maximum temperature: 23.23 ℃. Pressure: 999.08 hPa. Sea-level atmosphericPressure: 1020.04 hPa. Ground-level atmosphericPressure: 999.08 hPa. Humidity: 75%. Cloudiness: 48%. Wind: 4.62 meter/sec, 25 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 20.79 ℃. Minimum temperature: 20.79 ℃. Maximum temperature: 20.79 ℃. Pressure: 999.67 hPa. Sea-level atmosphericPressure: 1020.68 hPa. Ground-level atmosphericPressure: 999.67 hPa. Humidity: 76%. Cloudiness: 48%. Wind: 4.29 meter/sec, 13 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 03:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.45 ℃. Minimum temperature: 19.45 ℃. Maximum temperature: 19.45 ℃. Pressure: 999.95 hPa. Sea-level atmosphericPressure: 1021.02 hPa. Ground-level atmosphericPressure: 999.95 hPa. Humidity: 80%. Cloudiness: 48%. Wind: 4.22 meter/sec, 17 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 06:00:00 MSK 2018. Weather: light rain. Temperature: 18.9 ℃. Minimum temperature: 18.9 ℃. Maximum temperature: 18.9 ℃. Pressure: 1000.6 hPa. Sea-level atmosphericPressure: 1021.62 hPa. Ground-level atmosphericPressure: 1000.6 hPa. Humidity: 83%. Cloudiness: 92%. Wind: 4.43 meter/sec, 10 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 09:00:00 MSK 2018. Weather: light rain. Temperature: 21.37 ℃. Minimum temperature: 21.37 ℃. Maximum temperature: 21.37 ℃. Pressure: 1000.95 hPa. Sea-level atmosphericPressure: 1022.01 hPa. Ground-level atmosphericPressure: 1000.95 hPa. Humidity: 87%. Cloudiness: 0%. Wind: 4.36 meter/sec, 6 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.92 ℃. Minimum temperature: 23.92 ℃. Maximum temperature: 23.92 ℃. Pressure: 1001.5 hPa. Sea-level atmosphericPressure: 1022.43 hPa. Ground-level atmosphericPressure: 1001.5 hPa. Humidity: 77%. Cloudiness: 0%. Wind: 5.66 meter/sec, 12 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 15:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.7 ℃. Minimum temperature: 23.7 ℃. Maximum temperature: 23.7 ℃. Pressure: 1001.75 hPa. Sea-level atmosphericPressure: 1022.72 hPa. Ground-level atmosphericPressure: 1001.75 hPa. Humidity: 72%. Cloudiness: 56%. Wind: 5.87 meter/sec, 349 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 18:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.82 ℃. Minimum temperature: 23.82 ℃. Maximum temperature: 23.82 ℃. Pressure: 1001.55 hPa. Sea-level atmosphericPressure: 1022.59 hPa. Ground-level atmosphericPressure: 1001.55 hPa. Humidity: 72%. Cloudiness: 68%. Wind: 5.47 meter/sec, 340 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.22 ℃. Minimum temperature: 22.22 ℃. Maximum temperature: 22.22 ℃. Pressure: 1001.82 hPa. Sea-level atmosphericPressure: 1022.93 hPa. Ground-level atmosphericPressure: 1001.82 hPa. Humidity: 67%. Cloudiness: 76%. Wind: 4.12 meter/sec, 333 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.76 ℃. Minimum temperature: 19.76 ℃. Maximum temperature: 19.76 ℃. Pressure: 1001.98 hPa. Sea-level atmosphericPressure: 1023.13 hPa. Ground-level atmosphericPressure: 1001.98 hPa. Humidity: 76%. Cloudiness: 32%. Wind: 4.11 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 03:00:00 MSK 2018. Weather: clear sky. Temperature: 17.53 ℃. Minimum temperature: 17.53 ℃. Maximum temperature: 17.53 ℃. Pressure: 1001.93 hPa. Sea-level atmosphericPressure: 1023.13 hPa. Ground-level atmosphericPressure: 1001.93 hPa. Humidity: 87%. Cloudiness: 8%. Wind: 4.21 meter/sec, 309 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 16.83 ℃. Minimum temperature: 16.83 ℃. Maximum temperature: 16.83 ℃. Pressure: 1001.79 hPa. Sea-level atmosphericPressure: 1022.99 hPa. Ground-level atmosphericPressure: 1001.79 hPa. Humidity: 91%. Cloudiness: 44%. Wind: 3.65 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 09:00:00 MSK 2018. Weather: light rain. Temperature: 19.57 ℃. Minimum temperature: 19.57 ℃. Maximum temperature: 19.57 ℃. Pressure: 1001.34 hPa. Sea-level atmosphericPressure: 1022.41 hPa. Ground-level atmosphericPressure: 1001.34 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 4.38 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.5 ℃. Minimum temperature: 23.5 ℃. Maximum temperature: 23.5 ℃. Pressure: 1001.0 hPa. Sea-level atmosphericPressure: 1021.99 hPa. Ground-level atmosphericPressure: 1001.0 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 5.36 meter/sec, 299 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.14 ℃. Minimum temperature: 25.14 ℃. Maximum temperature: 25.14 ℃. Pressure: 1000.5 hPa. Sea-level atmosphericPressure: 1021.51 hPa. Ground-level atmosphericPressure: 1000.5 hPa. Humidity: 73%. Cloudiness: 32%. Wind: 6.72 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 18:00:00 MSK 2018. Weather: overcast clouds. Temperature: 23.56 ℃. Minimum temperature: 23.56 ℃. Maximum temperature: 23.56 ℃. Pressure: 1000.7 hPa. Sea-level atmosphericPressure: 1021.58 hPa. Ground-level atmosphericPressure: 1000.7 hPa. Humidity: 66%. Cloudiness: 88%. Wind: 6.57 meter/sec, 317 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.41 ℃. Minimum temperature: 22.41 ℃. Maximum temperature: 22.41 ℃. Pressure: 1000.64 hPa. Sea-level atmosphericPressure: 1021.67 hPa. Ground-level atmosphericPressure: 1000.64 hPa. Humidity: 68%. Cloudiness: 64%. Wind: 4.31 meter/sec, 326 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 00:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.92 ℃. Minimum temperature: 20.92 ℃. Maximum temperature: 20.92 ℃. Pressure: 1001.06 hPa. Sea-level atmosphericPressure: 1022.14 hPa. Ground-level atmosphericPressure: 1001.06 hPa. Humidity: 78%. Cloudiness: 68%. Wind: 3.42 meter/sec, 327 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 03:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.28 ℃. Minimum temperature: 20.28 ℃. Maximum temperature: 20.28 ℃. Pressure: 1001.04 hPa. Sea-level atmosphericPressure: 1022.13 hPa. Ground-level atmosphericPressure: 1001.04 hPa. Humidity: 78%. Cloudiness: 76%. Wind: 4.27 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.11 ℃. Minimum temperature: 19.11 ℃. Maximum temperature: 19.11 ℃. Pressure: 1001.13 hPa. Sea-level atmosphericPressure: 1022.28 hPa. Ground-level atmosphericPressure: 1001.13 hPa. Humidity: 74%. Cloudiness: 32%. Wind: 4.96 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 09:00:00 MSK 2018. Weather: few clouds. Temperature: 20.16 ℃. Minimum temperature: 20.16 ℃. Maximum temperature: 20.16 ℃. Pressure: 1001.43 hPa. Sea-level atmosphericPressure: 1022.62 hPa. Ground-level atmosphericPressure: 1001.43 hPa. Humidity: 86%. Cloudiness: 20%. Wind: 5.16 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 12:00:00 MSK 2018. Weather: few clouds. Temperature: 22.37 ℃. Minimum temperature: 22.37 ℃. Maximum temperature: 22.37 ℃. Pressure: 1001.53 hPa. Sea-level atmosphericPressure: 1022.62 hPa. Ground-level atmosphericPressure: 1001.53 hPa. Humidity: 88%. Cloudiness: 20%. Wind: 5.56 meter/sec, 307 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.85 ℃. Minimum temperature: 22.85 ℃. Maximum temperature: 22.85 ℃. Pressure: 1001.63 hPa. Sea-level atmosphericPressure: 1022.65 hPa. Ground-level atmosphericPressure: 1001.63 hPa. Humidity: 81%. Cloudiness: 44%. Wind: 5.46 meter/sec, 314 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.79 ℃. Minimum temperature: 23.79 ℃. Maximum temperature: 23.79 ℃. Pressure: 1001.53 hPa. Sea-level atmosphericPressure: 1022.53 hPa. Ground-level atmosphericPressure: 1001.53 hPa. Humidity: 72%. Cloudiness: 32%. Wind: 5.56 meter/sec, 313 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.56 ℃. Minimum temperature: 22.56 ℃. Maximum temperature: 22.56 ℃. Pressure: 1001.72 hPa. Sea-level atmosphericPressure: 1022.7 hPa. Ground-level atmosphericPressure: 1001.72 hPa. Humidity: 66%. Cloudiness: 48%. Wind: 3.96 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm ``` `Forecast`'s useful public methods(setters are not listed): @@ -194,7 +194,7 @@ Forecasts: |-----------------------------|------------------------------------------------------------------------------------------------------------------| | `getDataCalculationTime()` | Returns `long` value that represents data calculation timestamp. | | `getDataCalculationDate()` | Returns data calculation time in `Date` representation. | -| `getWeatherInfo()` | Returns `HourlyForecast.WeatherInfo` instance that contains information about temperature, pressure and humidity.| +| `getWeatherInfo()` | Returns `HourlyForecast.WeatherInfo` instance that contains information about temperature, atmosphericPressure and humidity.| | `getWeatherStates()` | Returns list of `WeatherState` instances with the only `getDescription` useful method. | | `getClouds()` | Returns `Clouds` instance that contains *cloudiness* percentage information. | | `getWind()` | Returns `Wind` instance that contains information about speed and degree. | diff --git a/docs/Release_1.1.md b/docs/Release_1.1.md index 4d1394f..b17edc6 100644 --- a/docs/Release_1.1.md +++ b/docs/Release_1.1.md @@ -68,7 +68,7 @@ Available requests: | `getCoordinates()` | Returns `Coordinates` instance that contains *latitude* and *longitude* information. | | `getWeatherStates()` | Returns list of `WeatherState` instances with the only `getDescription` useful method. | | `getBase()` | Returns `String` with some internal information. Example: `cmc stations` - from official documentation. | -| `getWeatherInfo()` | Returns `Weather.WeatherInfo` instance that contains information about temperature, pressure and humidity. | +| `getWeatherInfo()` | Returns `Weather.WeatherInfo` instance that contains information about temperature, atmosphericPressure and humidity. | | `getWind()` | Returns `Wind` instance that contains information about speed and degree. | | `getClouds()` | Returns `Clouds` instance that contains *cloudiness* percentage information. | | `getRain()` | Returns `Rain` instance that contains information about rain volume for the last 3 hours. | @@ -140,11 +140,11 @@ Available requests: | `getMaximumTemperature()` | Returns maximum temperature from forecasts. | | `getByMinimumTemperature()` | Returns `HourlyForecast.Forecast` for the time where temperature is minimal. | | `getByMaximumTemperature()` | Returns `HourlyForecast.Forecast` for the time where temperature is maximal. | -| `getAveragePressure()` | Returns average pressure from forecasts. | -| `getMinimumPressure()` | Returns minimum pressure from forecasts. | -| `getMaximumPressure()` | Returns maximum pressure from forecasts. | -| `getByMinimumPressure()` | Returns `HourlyForecast.Forecast` for the time where pressure is minimal. | -| `getByMaximumPressure()` | Returns `HourlyForecast.Forecast` for the time where pressure is maximal. | +| `getAveragePressure()` | Returns average atmosphericPressure from forecasts. | +| `getMinimumPressure()` | Returns minimum atmosphericPressure from forecasts. | +| `getMaximumPressure()` | Returns maximum atmosphericPressure from forecasts. | +| `getByMinimumPressure()` | Returns `HourlyForecast.Forecast` for the time where atmosphericPressure is minimal. | +| `getByMaximumPressure()` | Returns `HourlyForecast.Forecast` for the time where atmosphericPressure is maximal. | | `toString()` | Returns pretty string for the whole available forecast information. | `toString()` output example: @@ -152,46 +152,46 @@ Available requests: City: Pruzhany(622997). Coordinates: latitude=52.5582, longitude=24.4567 Country: BY Forecasts: - Time: Tue Jul 17 00:00:00 MSK 2018. Weather: light rain. Temperature: 16.24 ℃. Minimum temperature: 16.24 ℃. Maximum temperature: 17.36 ℃. Pressure: 997.38 hPa. Sea-level pressure: 1018.59 hPa. Ground-level pressure: 997.38 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 2.85 meter/sec, 324 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 03:00:00 MSK 2018. Weather: moderate rain. Temperature: 16.0 ℃. Minimum temperature: 16.0 ℃. Maximum temperature: 16.83 ℃. Pressure: 996.88 hPa. Sea-level pressure: 1017.86 hPa. Ground-level pressure: 996.88 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 1.86 meter/sec, 349 degrees. Rain(last 3 hrs): 3 mm - Time: Tue Jul 17 06:00:00 MSK 2018. Weather: light rain. Temperature: 15.76 ℃. Minimum temperature: 15.76 ℃. Maximum temperature: 16.31 ℃. Pressure: 996.7 hPa. Sea-level pressure: 1017.72 hPa. Ground-level pressure: 996.7 hPa. Humidity: 94%. Cloudiness: 76%. Wind: 1.62 meter/sec, 113 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 09:00:00 MSK 2018. Weather: light rain. Temperature: 18.23 ℃. Minimum temperature: 18.23 ℃. Maximum temperature: 18.51 ℃. Pressure: 997.17 hPa. Sea-level pressure: 1018.18 hPa. Ground-level pressure: 997.17 hPa. Humidity: 100%. Cloudiness: 76%. Wind: 2.11 meter/sec, 107 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 12:00:00 MSK 2018. Weather: light rain. Temperature: 21.0 ℃. Minimum temperature: 21.0 ℃. Maximum temperature: 21.0 ℃. Pressure: 997.6 hPa. Sea-level pressure: 1018.5 hPa. Ground-level pressure: 997.6 hPa. Humidity: 100%. Cloudiness: 68%. Wind: 2.51 meter/sec, 82 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 15:00:00 MSK 2018. Weather: light rain. Temperature: 21.78 ℃. Minimum temperature: 21.78 ℃. Maximum temperature: 21.78 ℃. Pressure: 997.73 hPa. Sea-level pressure: 1018.66 hPa. Ground-level pressure: 997.73 hPa. Humidity: 92%. Cloudiness: 88%. Wind: 4.05 meter/sec, 78 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 18:00:00 MSK 2018. Weather: light rain. Temperature: 22.9 ℃. Minimum temperature: 22.9 ℃. Maximum temperature: 22.9 ℃. Pressure: 997.66 hPa. Sea-level pressure: 1018.55 hPa. Ground-level pressure: 997.66 hPa. Humidity: 93%. Cloudiness: 68%. Wind: 3.06 meter/sec, 67 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 21:00:00 MSK 2018. Weather: light rain. Temperature: 23.04 ℃. Minimum temperature: 23.04 ℃. Maximum temperature: 23.04 ℃. Pressure: 996.89 hPa. Sea-level pressure: 1017.99 hPa. Ground-level pressure: 996.89 hPa. Humidity: 83%. Cloudiness: 88%. Wind: 3.17 meter/sec, 16 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 00:00:00 MSK 2018. Weather: moderate rain. Temperature: 18.5 ℃. Minimum temperature: 18.5 ℃. Maximum temperature: 18.5 ℃. Pressure: 997.33 hPa. Sea-level pressure: 1018.34 hPa. Ground-level pressure: 997.33 hPa. Humidity: 97%. Cloudiness: 44%. Wind: 3.56 meter/sec, 31 degrees. Rain(last 3 hrs): 7 mm - Time: Wed Jul 18 03:00:00 MSK 2018. Weather: few clouds. Temperature: 18.57 ℃. Minimum temperature: 18.57 ℃. Maximum temperature: 18.57 ℃. Pressure: 996.91 hPa. Sea-level pressure: 1017.87 hPa. Ground-level pressure: 996.91 hPa. Humidity: 95%. Cloudiness: 24%. Wind: 5.26 meter/sec, 44 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 06:00:00 MSK 2018. Weather: few clouds. Temperature: 18.94 ℃. Minimum temperature: 18.94 ℃. Maximum temperature: 18.94 ℃. Pressure: 997.07 hPa. Sea-level pressure: 1018.06 hPa. Ground-level pressure: 997.07 hPa. Humidity: 95%. Cloudiness: 20%. Wind: 4.8 meter/sec, 45 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 09:00:00 MSK 2018. Weather: light rain. Temperature: 20.6 ℃. Minimum temperature: 20.6 ℃. Maximum temperature: 20.6 ℃. Pressure: 997.8 hPa. Sea-level pressure: 1018.66 hPa. Ground-level pressure: 997.8 hPa. Humidity: 97%. Cloudiness: 48%. Wind: 5.56 meter/sec, 54 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 12:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.87 ℃. Minimum temperature: 23.87 ℃. Maximum temperature: 23.87 ℃. Pressure: 998.06 hPa. Sea-level pressure: 1019.05 hPa. Ground-level pressure: 998.06 hPa. Humidity: 88%. Cloudiness: 32%. Wind: 5.86 meter/sec, 52 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 24.67 ℃. Minimum temperature: 24.67 ℃. Maximum temperature: 24.67 ℃. Pressure: 998.51 hPa. Sea-level pressure: 1019.33 hPa. Ground-level pressure: 998.51 hPa. Humidity: 84%. Cloudiness: 36%. Wind: 5.63 meter/sec, 51 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.15 ℃. Minimum temperature: 25.15 ℃. Maximum temperature: 25.15 ℃. Pressure: 998.79 hPa. Sea-level pressure: 1019.64 hPa. Ground-level pressure: 998.79 hPa. Humidity: 78%. Cloudiness: 44%. Wind: 5.47 meter/sec, 38 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.23 ℃. Minimum temperature: 23.23 ℃. Maximum temperature: 23.23 ℃. Pressure: 999.08 hPa. Sea-level pressure: 1020.04 hPa. Ground-level pressure: 999.08 hPa. Humidity: 75%. Cloudiness: 48%. Wind: 4.62 meter/sec, 25 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 20.79 ℃. Minimum temperature: 20.79 ℃. Maximum temperature: 20.79 ℃. Pressure: 999.67 hPa. Sea-level pressure: 1020.68 hPa. Ground-level pressure: 999.67 hPa. Humidity: 76%. Cloudiness: 48%. Wind: 4.29 meter/sec, 13 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 03:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.45 ℃. Minimum temperature: 19.45 ℃. Maximum temperature: 19.45 ℃. Pressure: 999.95 hPa. Sea-level pressure: 1021.02 hPa. Ground-level pressure: 999.95 hPa. Humidity: 80%. Cloudiness: 48%. Wind: 4.22 meter/sec, 17 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 06:00:00 MSK 2018. Weather: light rain. Temperature: 18.9 ℃. Minimum temperature: 18.9 ℃. Maximum temperature: 18.9 ℃. Pressure: 1000.6 hPa. Sea-level pressure: 1021.62 hPa. Ground-level pressure: 1000.6 hPa. Humidity: 83%. Cloudiness: 92%. Wind: 4.43 meter/sec, 10 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 09:00:00 MSK 2018. Weather: light rain. Temperature: 21.37 ℃. Minimum temperature: 21.37 ℃. Maximum temperature: 21.37 ℃. Pressure: 1000.95 hPa. Sea-level pressure: 1022.01 hPa. Ground-level pressure: 1000.95 hPa. Humidity: 87%. Cloudiness: 0%. Wind: 4.36 meter/sec, 6 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.92 ℃. Minimum temperature: 23.92 ℃. Maximum temperature: 23.92 ℃. Pressure: 1001.5 hPa. Sea-level pressure: 1022.43 hPa. Ground-level pressure: 1001.5 hPa. Humidity: 77%. Cloudiness: 0%. Wind: 5.66 meter/sec, 12 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 15:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.7 ℃. Minimum temperature: 23.7 ℃. Maximum temperature: 23.7 ℃. Pressure: 1001.75 hPa. Sea-level pressure: 1022.72 hPa. Ground-level pressure: 1001.75 hPa. Humidity: 72%. Cloudiness: 56%. Wind: 5.87 meter/sec, 349 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 18:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.82 ℃. Minimum temperature: 23.82 ℃. Maximum temperature: 23.82 ℃. Pressure: 1001.55 hPa. Sea-level pressure: 1022.59 hPa. Ground-level pressure: 1001.55 hPa. Humidity: 72%. Cloudiness: 68%. Wind: 5.47 meter/sec, 340 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.22 ℃. Minimum temperature: 22.22 ℃. Maximum temperature: 22.22 ℃. Pressure: 1001.82 hPa. Sea-level pressure: 1022.93 hPa. Ground-level pressure: 1001.82 hPa. Humidity: 67%. Cloudiness: 76%. Wind: 4.12 meter/sec, 333 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.76 ℃. Minimum temperature: 19.76 ℃. Maximum temperature: 19.76 ℃. Pressure: 1001.98 hPa. Sea-level pressure: 1023.13 hPa. Ground-level pressure: 1001.98 hPa. Humidity: 76%. Cloudiness: 32%. Wind: 4.11 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 03:00:00 MSK 2018. Weather: clear sky. Temperature: 17.53 ℃. Minimum temperature: 17.53 ℃. Maximum temperature: 17.53 ℃. Pressure: 1001.93 hPa. Sea-level pressure: 1023.13 hPa. Ground-level pressure: 1001.93 hPa. Humidity: 87%. Cloudiness: 8%. Wind: 4.21 meter/sec, 309 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 16.83 ℃. Minimum temperature: 16.83 ℃. Maximum temperature: 16.83 ℃. Pressure: 1001.79 hPa. Sea-level pressure: 1022.99 hPa. Ground-level pressure: 1001.79 hPa. Humidity: 91%. Cloudiness: 44%. Wind: 3.65 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 09:00:00 MSK 2018. Weather: light rain. Temperature: 19.57 ℃. Minimum temperature: 19.57 ℃. Maximum temperature: 19.57 ℃. Pressure: 1001.34 hPa. Sea-level pressure: 1022.41 hPa. Ground-level pressure: 1001.34 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 4.38 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.5 ℃. Minimum temperature: 23.5 ℃. Maximum temperature: 23.5 ℃. Pressure: 1001.0 hPa. Sea-level pressure: 1021.99 hPa. Ground-level pressure: 1001.0 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 5.36 meter/sec, 299 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.14 ℃. Minimum temperature: 25.14 ℃. Maximum temperature: 25.14 ℃. Pressure: 1000.5 hPa. Sea-level pressure: 1021.51 hPa. Ground-level pressure: 1000.5 hPa. Humidity: 73%. Cloudiness: 32%. Wind: 6.72 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 18:00:00 MSK 2018. Weather: overcast clouds. Temperature: 23.56 ℃. Minimum temperature: 23.56 ℃. Maximum temperature: 23.56 ℃. Pressure: 1000.7 hPa. Sea-level pressure: 1021.58 hPa. Ground-level pressure: 1000.7 hPa. Humidity: 66%. Cloudiness: 88%. Wind: 6.57 meter/sec, 317 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.41 ℃. Minimum temperature: 22.41 ℃. Maximum temperature: 22.41 ℃. Pressure: 1000.64 hPa. Sea-level pressure: 1021.67 hPa. Ground-level pressure: 1000.64 hPa. Humidity: 68%. Cloudiness: 64%. Wind: 4.31 meter/sec, 326 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 00:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.92 ℃. Minimum temperature: 20.92 ℃. Maximum temperature: 20.92 ℃. Pressure: 1001.06 hPa. Sea-level pressure: 1022.14 hPa. Ground-level pressure: 1001.06 hPa. Humidity: 78%. Cloudiness: 68%. Wind: 3.42 meter/sec, 327 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 03:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.28 ℃. Minimum temperature: 20.28 ℃. Maximum temperature: 20.28 ℃. Pressure: 1001.04 hPa. Sea-level pressure: 1022.13 hPa. Ground-level pressure: 1001.04 hPa. Humidity: 78%. Cloudiness: 76%. Wind: 4.27 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.11 ℃. Minimum temperature: 19.11 ℃. Maximum temperature: 19.11 ℃. Pressure: 1001.13 hPa. Sea-level pressure: 1022.28 hPa. Ground-level pressure: 1001.13 hPa. Humidity: 74%. Cloudiness: 32%. Wind: 4.96 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 09:00:00 MSK 2018. Weather: few clouds. Temperature: 20.16 ℃. Minimum temperature: 20.16 ℃. Maximum temperature: 20.16 ℃. Pressure: 1001.43 hPa. Sea-level pressure: 1022.62 hPa. Ground-level pressure: 1001.43 hPa. Humidity: 86%. Cloudiness: 20%. Wind: 5.16 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 12:00:00 MSK 2018. Weather: few clouds. Temperature: 22.37 ℃. Minimum temperature: 22.37 ℃. Maximum temperature: 22.37 ℃. Pressure: 1001.53 hPa. Sea-level pressure: 1022.62 hPa. Ground-level pressure: 1001.53 hPa. Humidity: 88%. Cloudiness: 20%. Wind: 5.56 meter/sec, 307 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.85 ℃. Minimum temperature: 22.85 ℃. Maximum temperature: 22.85 ℃. Pressure: 1001.63 hPa. Sea-level pressure: 1022.65 hPa. Ground-level pressure: 1001.63 hPa. Humidity: 81%. Cloudiness: 44%. Wind: 5.46 meter/sec, 314 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.79 ℃. Minimum temperature: 23.79 ℃. Maximum temperature: 23.79 ℃. Pressure: 1001.53 hPa. Sea-level pressure: 1022.53 hPa. Ground-level pressure: 1001.53 hPa. Humidity: 72%. Cloudiness: 32%. Wind: 5.56 meter/sec, 313 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.56 ℃. Minimum temperature: 22.56 ℃. Maximum temperature: 22.56 ℃. Pressure: 1001.72 hPa. Sea-level pressure: 1022.7 hPa. Ground-level pressure: 1001.72 hPa. Humidity: 66%. Cloudiness: 48%. Wind: 3.96 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 00:00:00 MSK 2018. Weather: light rain. Temperature: 16.24 ℃. Minimum temperature: 16.24 ℃. Maximum temperature: 17.36 ℃. Pressure: 997.38 hPa. Sea-level atmosphericPressure: 1018.59 hPa. Ground-level atmosphericPressure: 997.38 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 2.85 meter/sec, 324 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 03:00:00 MSK 2018. Weather: moderate rain. Temperature: 16.0 ℃. Minimum temperature: 16.0 ℃. Maximum temperature: 16.83 ℃. Pressure: 996.88 hPa. Sea-level atmosphericPressure: 1017.86 hPa. Ground-level atmosphericPressure: 996.88 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 1.86 meter/sec, 349 degrees. Rain(last 3 hrs): 3 mm + Time: Tue Jul 17 06:00:00 MSK 2018. Weather: light rain. Temperature: 15.76 ℃. Minimum temperature: 15.76 ℃. Maximum temperature: 16.31 ℃. Pressure: 996.7 hPa. Sea-level atmosphericPressure: 1017.72 hPa. Ground-level atmosphericPressure: 996.7 hPa. Humidity: 94%. Cloudiness: 76%. Wind: 1.62 meter/sec, 113 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 09:00:00 MSK 2018. Weather: light rain. Temperature: 18.23 ℃. Minimum temperature: 18.23 ℃. Maximum temperature: 18.51 ℃. Pressure: 997.17 hPa. Sea-level atmosphericPressure: 1018.18 hPa. Ground-level atmosphericPressure: 997.17 hPa. Humidity: 100%. Cloudiness: 76%. Wind: 2.11 meter/sec, 107 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 12:00:00 MSK 2018. Weather: light rain. Temperature: 21.0 ℃. Minimum temperature: 21.0 ℃. Maximum temperature: 21.0 ℃. Pressure: 997.6 hPa. Sea-level atmosphericPressure: 1018.5 hPa. Ground-level atmosphericPressure: 997.6 hPa. Humidity: 100%. Cloudiness: 68%. Wind: 2.51 meter/sec, 82 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 15:00:00 MSK 2018. Weather: light rain. Temperature: 21.78 ℃. Minimum temperature: 21.78 ℃. Maximum temperature: 21.78 ℃. Pressure: 997.73 hPa. Sea-level atmosphericPressure: 1018.66 hPa. Ground-level atmosphericPressure: 997.73 hPa. Humidity: 92%. Cloudiness: 88%. Wind: 4.05 meter/sec, 78 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 18:00:00 MSK 2018. Weather: light rain. Temperature: 22.9 ℃. Minimum temperature: 22.9 ℃. Maximum temperature: 22.9 ℃. Pressure: 997.66 hPa. Sea-level atmosphericPressure: 1018.55 hPa. Ground-level atmosphericPressure: 997.66 hPa. Humidity: 93%. Cloudiness: 68%. Wind: 3.06 meter/sec, 67 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 21:00:00 MSK 2018. Weather: light rain. Temperature: 23.04 ℃. Minimum temperature: 23.04 ℃. Maximum temperature: 23.04 ℃. Pressure: 996.89 hPa. Sea-level atmosphericPressure: 1017.99 hPa. Ground-level atmosphericPressure: 996.89 hPa. Humidity: 83%. Cloudiness: 88%. Wind: 3.17 meter/sec, 16 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 00:00:00 MSK 2018. Weather: moderate rain. Temperature: 18.5 ℃. Minimum temperature: 18.5 ℃. Maximum temperature: 18.5 ℃. Pressure: 997.33 hPa. Sea-level atmosphericPressure: 1018.34 hPa. Ground-level atmosphericPressure: 997.33 hPa. Humidity: 97%. Cloudiness: 44%. Wind: 3.56 meter/sec, 31 degrees. Rain(last 3 hrs): 7 mm + Time: Wed Jul 18 03:00:00 MSK 2018. Weather: few clouds. Temperature: 18.57 ℃. Minimum temperature: 18.57 ℃. Maximum temperature: 18.57 ℃. Pressure: 996.91 hPa. Sea-level atmosphericPressure: 1017.87 hPa. Ground-level atmosphericPressure: 996.91 hPa. Humidity: 95%. Cloudiness: 24%. Wind: 5.26 meter/sec, 44 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 06:00:00 MSK 2018. Weather: few clouds. Temperature: 18.94 ℃. Minimum temperature: 18.94 ℃. Maximum temperature: 18.94 ℃. Pressure: 997.07 hPa. Sea-level atmosphericPressure: 1018.06 hPa. Ground-level atmosphericPressure: 997.07 hPa. Humidity: 95%. Cloudiness: 20%. Wind: 4.8 meter/sec, 45 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 09:00:00 MSK 2018. Weather: light rain. Temperature: 20.6 ℃. Minimum temperature: 20.6 ℃. Maximum temperature: 20.6 ℃. Pressure: 997.8 hPa. Sea-level atmosphericPressure: 1018.66 hPa. Ground-level atmosphericPressure: 997.8 hPa. Humidity: 97%. Cloudiness: 48%. Wind: 5.56 meter/sec, 54 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 12:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.87 ℃. Minimum temperature: 23.87 ℃. Maximum temperature: 23.87 ℃. Pressure: 998.06 hPa. Sea-level atmosphericPressure: 1019.05 hPa. Ground-level atmosphericPressure: 998.06 hPa. Humidity: 88%. Cloudiness: 32%. Wind: 5.86 meter/sec, 52 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 24.67 ℃. Minimum temperature: 24.67 ℃. Maximum temperature: 24.67 ℃. Pressure: 998.51 hPa. Sea-level atmosphericPressure: 1019.33 hPa. Ground-level atmosphericPressure: 998.51 hPa. Humidity: 84%. Cloudiness: 36%. Wind: 5.63 meter/sec, 51 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.15 ℃. Minimum temperature: 25.15 ℃. Maximum temperature: 25.15 ℃. Pressure: 998.79 hPa. Sea-level atmosphericPressure: 1019.64 hPa. Ground-level atmosphericPressure: 998.79 hPa. Humidity: 78%. Cloudiness: 44%. Wind: 5.47 meter/sec, 38 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.23 ℃. Minimum temperature: 23.23 ℃. Maximum temperature: 23.23 ℃. Pressure: 999.08 hPa. Sea-level atmosphericPressure: 1020.04 hPa. Ground-level atmosphericPressure: 999.08 hPa. Humidity: 75%. Cloudiness: 48%. Wind: 4.62 meter/sec, 25 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 20.79 ℃. Minimum temperature: 20.79 ℃. Maximum temperature: 20.79 ℃. Pressure: 999.67 hPa. Sea-level atmosphericPressure: 1020.68 hPa. Ground-level atmosphericPressure: 999.67 hPa. Humidity: 76%. Cloudiness: 48%. Wind: 4.29 meter/sec, 13 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 03:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.45 ℃. Minimum temperature: 19.45 ℃. Maximum temperature: 19.45 ℃. Pressure: 999.95 hPa. Sea-level atmosphericPressure: 1021.02 hPa. Ground-level atmosphericPressure: 999.95 hPa. Humidity: 80%. Cloudiness: 48%. Wind: 4.22 meter/sec, 17 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 06:00:00 MSK 2018. Weather: light rain. Temperature: 18.9 ℃. Minimum temperature: 18.9 ℃. Maximum temperature: 18.9 ℃. Pressure: 1000.6 hPa. Sea-level atmosphericPressure: 1021.62 hPa. Ground-level atmosphericPressure: 1000.6 hPa. Humidity: 83%. Cloudiness: 92%. Wind: 4.43 meter/sec, 10 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 09:00:00 MSK 2018. Weather: light rain. Temperature: 21.37 ℃. Minimum temperature: 21.37 ℃. Maximum temperature: 21.37 ℃. Pressure: 1000.95 hPa. Sea-level atmosphericPressure: 1022.01 hPa. Ground-level atmosphericPressure: 1000.95 hPa. Humidity: 87%. Cloudiness: 0%. Wind: 4.36 meter/sec, 6 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.92 ℃. Minimum temperature: 23.92 ℃. Maximum temperature: 23.92 ℃. Pressure: 1001.5 hPa. Sea-level atmosphericPressure: 1022.43 hPa. Ground-level atmosphericPressure: 1001.5 hPa. Humidity: 77%. Cloudiness: 0%. Wind: 5.66 meter/sec, 12 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 15:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.7 ℃. Minimum temperature: 23.7 ℃. Maximum temperature: 23.7 ℃. Pressure: 1001.75 hPa. Sea-level atmosphericPressure: 1022.72 hPa. Ground-level atmosphericPressure: 1001.75 hPa. Humidity: 72%. Cloudiness: 56%. Wind: 5.87 meter/sec, 349 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 18:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.82 ℃. Minimum temperature: 23.82 ℃. Maximum temperature: 23.82 ℃. Pressure: 1001.55 hPa. Sea-level atmosphericPressure: 1022.59 hPa. Ground-level atmosphericPressure: 1001.55 hPa. Humidity: 72%. Cloudiness: 68%. Wind: 5.47 meter/sec, 340 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.22 ℃. Minimum temperature: 22.22 ℃. Maximum temperature: 22.22 ℃. Pressure: 1001.82 hPa. Sea-level atmosphericPressure: 1022.93 hPa. Ground-level atmosphericPressure: 1001.82 hPa. Humidity: 67%. Cloudiness: 76%. Wind: 4.12 meter/sec, 333 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.76 ℃. Minimum temperature: 19.76 ℃. Maximum temperature: 19.76 ℃. Pressure: 1001.98 hPa. Sea-level atmosphericPressure: 1023.13 hPa. Ground-level atmosphericPressure: 1001.98 hPa. Humidity: 76%. Cloudiness: 32%. Wind: 4.11 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 03:00:00 MSK 2018. Weather: clear sky. Temperature: 17.53 ℃. Minimum temperature: 17.53 ℃. Maximum temperature: 17.53 ℃. Pressure: 1001.93 hPa. Sea-level atmosphericPressure: 1023.13 hPa. Ground-level atmosphericPressure: 1001.93 hPa. Humidity: 87%. Cloudiness: 8%. Wind: 4.21 meter/sec, 309 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 16.83 ℃. Minimum temperature: 16.83 ℃. Maximum temperature: 16.83 ℃. Pressure: 1001.79 hPa. Sea-level atmosphericPressure: 1022.99 hPa. Ground-level atmosphericPressure: 1001.79 hPa. Humidity: 91%. Cloudiness: 44%. Wind: 3.65 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 09:00:00 MSK 2018. Weather: light rain. Temperature: 19.57 ℃. Minimum temperature: 19.57 ℃. Maximum temperature: 19.57 ℃. Pressure: 1001.34 hPa. Sea-level atmosphericPressure: 1022.41 hPa. Ground-level atmosphericPressure: 1001.34 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 4.38 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.5 ℃. Minimum temperature: 23.5 ℃. Maximum temperature: 23.5 ℃. Pressure: 1001.0 hPa. Sea-level atmosphericPressure: 1021.99 hPa. Ground-level atmosphericPressure: 1001.0 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 5.36 meter/sec, 299 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.14 ℃. Minimum temperature: 25.14 ℃. Maximum temperature: 25.14 ℃. Pressure: 1000.5 hPa. Sea-level atmosphericPressure: 1021.51 hPa. Ground-level atmosphericPressure: 1000.5 hPa. Humidity: 73%. Cloudiness: 32%. Wind: 6.72 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 18:00:00 MSK 2018. Weather: overcast clouds. Temperature: 23.56 ℃. Minimum temperature: 23.56 ℃. Maximum temperature: 23.56 ℃. Pressure: 1000.7 hPa. Sea-level atmosphericPressure: 1021.58 hPa. Ground-level atmosphericPressure: 1000.7 hPa. Humidity: 66%. Cloudiness: 88%. Wind: 6.57 meter/sec, 317 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.41 ℃. Minimum temperature: 22.41 ℃. Maximum temperature: 22.41 ℃. Pressure: 1000.64 hPa. Sea-level atmosphericPressure: 1021.67 hPa. Ground-level atmosphericPressure: 1000.64 hPa. Humidity: 68%. Cloudiness: 64%. Wind: 4.31 meter/sec, 326 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 00:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.92 ℃. Minimum temperature: 20.92 ℃. Maximum temperature: 20.92 ℃. Pressure: 1001.06 hPa. Sea-level atmosphericPressure: 1022.14 hPa. Ground-level atmosphericPressure: 1001.06 hPa. Humidity: 78%. Cloudiness: 68%. Wind: 3.42 meter/sec, 327 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 03:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.28 ℃. Minimum temperature: 20.28 ℃. Maximum temperature: 20.28 ℃. Pressure: 1001.04 hPa. Sea-level atmosphericPressure: 1022.13 hPa. Ground-level atmosphericPressure: 1001.04 hPa. Humidity: 78%. Cloudiness: 76%. Wind: 4.27 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.11 ℃. Minimum temperature: 19.11 ℃. Maximum temperature: 19.11 ℃. Pressure: 1001.13 hPa. Sea-level atmosphericPressure: 1022.28 hPa. Ground-level atmosphericPressure: 1001.13 hPa. Humidity: 74%. Cloudiness: 32%. Wind: 4.96 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 09:00:00 MSK 2018. Weather: few clouds. Temperature: 20.16 ℃. Minimum temperature: 20.16 ℃. Maximum temperature: 20.16 ℃. Pressure: 1001.43 hPa. Sea-level atmosphericPressure: 1022.62 hPa. Ground-level atmosphericPressure: 1001.43 hPa. Humidity: 86%. Cloudiness: 20%. Wind: 5.16 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 12:00:00 MSK 2018. Weather: few clouds. Temperature: 22.37 ℃. Minimum temperature: 22.37 ℃. Maximum temperature: 22.37 ℃. Pressure: 1001.53 hPa. Sea-level atmosphericPressure: 1022.62 hPa. Ground-level atmosphericPressure: 1001.53 hPa. Humidity: 88%. Cloudiness: 20%. Wind: 5.56 meter/sec, 307 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.85 ℃. Minimum temperature: 22.85 ℃. Maximum temperature: 22.85 ℃. Pressure: 1001.63 hPa. Sea-level atmosphericPressure: 1022.65 hPa. Ground-level atmosphericPressure: 1001.63 hPa. Humidity: 81%. Cloudiness: 44%. Wind: 5.46 meter/sec, 314 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.79 ℃. Minimum temperature: 23.79 ℃. Maximum temperature: 23.79 ℃. Pressure: 1001.53 hPa. Sea-level atmosphericPressure: 1022.53 hPa. Ground-level atmosphericPressure: 1001.53 hPa. Humidity: 72%. Cloudiness: 32%. Wind: 5.56 meter/sec, 313 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.56 ℃. Minimum temperature: 22.56 ℃. Maximum temperature: 22.56 ℃. Pressure: 1001.72 hPa. Sea-level atmosphericPressure: 1022.7 hPa. Ground-level atmosphericPressure: 1001.72 hPa. Humidity: 66%. Cloudiness: 48%. Wind: 3.96 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm ``` `HourlyForecast.Forecast`'s useful public methods(setters are not listed): @@ -200,7 +200,7 @@ Forecasts: |-----------------------------|------------------------------------------------------------------------------------------------------------------| | `getDataCalculationTime()` | Returns `long` value that represents data calculation timestamp. | | `getDataCalculationDate()` | Returns data calculation time in `Date` representation. | -| `getWeatherInfo()` | Returns `HourlyForecast.WeatherInfo` instance that contains information about temperature, pressure and humidity.| +| `getWeatherInfo()` | Returns `HourlyForecast.WeatherInfo` instance that contains information about temperature, atmosphericPressure and humidity.| | `getWeatherStates()` | Returns list of `WeatherState` instances with the only `getDescription` useful method. | | `getClouds()` | Returns `Clouds` instance that contains *cloudiness* percentage information. | | `getWind()` | Returns `Wind` instance that contains information about speed and degree. | @@ -259,8 +259,8 @@ Available requests: | `getWindSpeed()` | Returns wind's speed. | | `getWindDegrees()` | Returns wind's degree. | | `getWindUnit()` | Returns wind's unit. | -| `getPressure()` | Returns pressure value. | -| `getPressureUnit()` | Returns pressure's unit. | +| `getPressure()` | Returns atmosphericPressure value. | +| `getPressureUnit()` | Returns atmosphericPressure's unit. | | `toString()` | Returns pretty string for the whole available forecast information. | #### UV Index diff --git a/docs/Release_1.2.md b/docs/Release_1.2.md index cd7a79d..350cd03 100644 --- a/docs/Release_1.2.md +++ b/docs/Release_1.2.md @@ -68,7 +68,7 @@ Available requests: | `getCoordinates()` | Returns `Coordinates` instance that contains *latitude* and *longitude* information. | | `getWeatherStates()` | Returns list of `WeatherState` instances with the only `getDescription` useful method. | | `getBase()` | Returns `String` with some internal information. Example: `cmc stations` - from official documentation. | -| `getWeatherInfo()` | Returns `Weather.WeatherInfo` instance that contains information about temperature, pressure and humidity. | +| `getWeatherInfo()` | Returns `Weather.WeatherInfo` instance that contains information about temperature, atmosphericPressure and humidity. | | `getWind()` | Returns `Wind` instance that contains information about speed and degree. | | `getClouds()` | Returns `Clouds` instance that contains *cloudiness* percentage information. | | `getRain()` | Returns `Rain` instance that contains information about rain volume for the last 3 hours. | @@ -140,11 +140,11 @@ Available requests: | `getMaximumTemperature()` | Returns maximum temperature from forecasts. | | `getByMinimumTemperature()` | Returns `HourlyForecast.Forecast` for the time where temperature is minimal. | | `getByMaximumTemperature()` | Returns `HourlyForecast.Forecast` for the time where temperature is maximal. | -| `getAveragePressure()` | Returns average pressure from forecasts. | -| `getMinimumPressure()` | Returns minimum pressure from forecasts. | -| `getMaximumPressure()` | Returns maximum pressure from forecasts. | -| `getByMinimumPressure()` | Returns `HourlyForecast.Forecast` for the time where pressure is minimal. | -| `getByMaximumPressure()` | Returns `HourlyForecast.Forecast` for the time where pressure is maximal. | +| `getAveragePressure()` | Returns average atmosphericPressure from forecasts. | +| `getMinimumPressure()` | Returns minimum atmosphericPressure from forecasts. | +| `getMaximumPressure()` | Returns maximum atmosphericPressure from forecasts. | +| `getByMinimumPressure()` | Returns `HourlyForecast.Forecast` for the time where atmosphericPressure is minimal. | +| `getByMaximumPressure()` | Returns `HourlyForecast.Forecast` for the time where atmosphericPressure is maximal. | | `toString()` | Returns pretty string for the whole available forecast information. | `toString()` output example: @@ -152,46 +152,46 @@ Available requests: City: Pruzhany(622997). Coordinates: latitude=52.5582, longitude=24.4567 Country: BY Forecasts: - Time: Tue Jul 17 00:00:00 MSK 2018. Weather: light rain. Temperature: 16.24 ℃. Minimum temperature: 16.24 ℃. Maximum temperature: 17.36 ℃. Pressure: 997.38 hPa. Sea-level pressure: 1018.59 hPa. Ground-level pressure: 997.38 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 2.85 meter/sec, 324 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 03:00:00 MSK 2018. Weather: moderate rain. Temperature: 16.0 ℃. Minimum temperature: 16.0 ℃. Maximum temperature: 16.83 ℃. Pressure: 996.88 hPa. Sea-level pressure: 1017.86 hPa. Ground-level pressure: 996.88 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 1.86 meter/sec, 349 degrees. Rain(last 3 hrs): 3 mm - Time: Tue Jul 17 06:00:00 MSK 2018. Weather: light rain. Temperature: 15.76 ℃. Minimum temperature: 15.76 ℃. Maximum temperature: 16.31 ℃. Pressure: 996.7 hPa. Sea-level pressure: 1017.72 hPa. Ground-level pressure: 996.7 hPa. Humidity: 94%. Cloudiness: 76%. Wind: 1.62 meter/sec, 113 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 09:00:00 MSK 2018. Weather: light rain. Temperature: 18.23 ℃. Minimum temperature: 18.23 ℃. Maximum temperature: 18.51 ℃. Pressure: 997.17 hPa. Sea-level pressure: 1018.18 hPa. Ground-level pressure: 997.17 hPa. Humidity: 100%. Cloudiness: 76%. Wind: 2.11 meter/sec, 107 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 12:00:00 MSK 2018. Weather: light rain. Temperature: 21.0 ℃. Minimum temperature: 21.0 ℃. Maximum temperature: 21.0 ℃. Pressure: 997.6 hPa. Sea-level pressure: 1018.5 hPa. Ground-level pressure: 997.6 hPa. Humidity: 100%. Cloudiness: 68%. Wind: 2.51 meter/sec, 82 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 15:00:00 MSK 2018. Weather: light rain. Temperature: 21.78 ℃. Minimum temperature: 21.78 ℃. Maximum temperature: 21.78 ℃. Pressure: 997.73 hPa. Sea-level pressure: 1018.66 hPa. Ground-level pressure: 997.73 hPa. Humidity: 92%. Cloudiness: 88%. Wind: 4.05 meter/sec, 78 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 18:00:00 MSK 2018. Weather: light rain. Temperature: 22.9 ℃. Minimum temperature: 22.9 ℃. Maximum temperature: 22.9 ℃. Pressure: 997.66 hPa. Sea-level pressure: 1018.55 hPa. Ground-level pressure: 997.66 hPa. Humidity: 93%. Cloudiness: 68%. Wind: 3.06 meter/sec, 67 degrees. Rain(last 3 hrs): 0 mm - Time: Tue Jul 17 21:00:00 MSK 2018. Weather: light rain. Temperature: 23.04 ℃. Minimum temperature: 23.04 ℃. Maximum temperature: 23.04 ℃. Pressure: 996.89 hPa. Sea-level pressure: 1017.99 hPa. Ground-level pressure: 996.89 hPa. Humidity: 83%. Cloudiness: 88%. Wind: 3.17 meter/sec, 16 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 00:00:00 MSK 2018. Weather: moderate rain. Temperature: 18.5 ℃. Minimum temperature: 18.5 ℃. Maximum temperature: 18.5 ℃. Pressure: 997.33 hPa. Sea-level pressure: 1018.34 hPa. Ground-level pressure: 997.33 hPa. Humidity: 97%. Cloudiness: 44%. Wind: 3.56 meter/sec, 31 degrees. Rain(last 3 hrs): 7 mm - Time: Wed Jul 18 03:00:00 MSK 2018. Weather: few clouds. Temperature: 18.57 ℃. Minimum temperature: 18.57 ℃. Maximum temperature: 18.57 ℃. Pressure: 996.91 hPa. Sea-level pressure: 1017.87 hPa. Ground-level pressure: 996.91 hPa. Humidity: 95%. Cloudiness: 24%. Wind: 5.26 meter/sec, 44 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 06:00:00 MSK 2018. Weather: few clouds. Temperature: 18.94 ℃. Minimum temperature: 18.94 ℃. Maximum temperature: 18.94 ℃. Pressure: 997.07 hPa. Sea-level pressure: 1018.06 hPa. Ground-level pressure: 997.07 hPa. Humidity: 95%. Cloudiness: 20%. Wind: 4.8 meter/sec, 45 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 09:00:00 MSK 2018. Weather: light rain. Temperature: 20.6 ℃. Minimum temperature: 20.6 ℃. Maximum temperature: 20.6 ℃. Pressure: 997.8 hPa. Sea-level pressure: 1018.66 hPa. Ground-level pressure: 997.8 hPa. Humidity: 97%. Cloudiness: 48%. Wind: 5.56 meter/sec, 54 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 12:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.87 ℃. Minimum temperature: 23.87 ℃. Maximum temperature: 23.87 ℃. Pressure: 998.06 hPa. Sea-level pressure: 1019.05 hPa. Ground-level pressure: 998.06 hPa. Humidity: 88%. Cloudiness: 32%. Wind: 5.86 meter/sec, 52 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 24.67 ℃. Minimum temperature: 24.67 ℃. Maximum temperature: 24.67 ℃. Pressure: 998.51 hPa. Sea-level pressure: 1019.33 hPa. Ground-level pressure: 998.51 hPa. Humidity: 84%. Cloudiness: 36%. Wind: 5.63 meter/sec, 51 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.15 ℃. Minimum temperature: 25.15 ℃. Maximum temperature: 25.15 ℃. Pressure: 998.79 hPa. Sea-level pressure: 1019.64 hPa. Ground-level pressure: 998.79 hPa. Humidity: 78%. Cloudiness: 44%. Wind: 5.47 meter/sec, 38 degrees. Rain(last 3 hrs): 0 mm - Time: Wed Jul 18 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.23 ℃. Minimum temperature: 23.23 ℃. Maximum temperature: 23.23 ℃. Pressure: 999.08 hPa. Sea-level pressure: 1020.04 hPa. Ground-level pressure: 999.08 hPa. Humidity: 75%. Cloudiness: 48%. Wind: 4.62 meter/sec, 25 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 20.79 ℃. Minimum temperature: 20.79 ℃. Maximum temperature: 20.79 ℃. Pressure: 999.67 hPa. Sea-level pressure: 1020.68 hPa. Ground-level pressure: 999.67 hPa. Humidity: 76%. Cloudiness: 48%. Wind: 4.29 meter/sec, 13 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 03:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.45 ℃. Minimum temperature: 19.45 ℃. Maximum temperature: 19.45 ℃. Pressure: 999.95 hPa. Sea-level pressure: 1021.02 hPa. Ground-level pressure: 999.95 hPa. Humidity: 80%. Cloudiness: 48%. Wind: 4.22 meter/sec, 17 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 06:00:00 MSK 2018. Weather: light rain. Temperature: 18.9 ℃. Minimum temperature: 18.9 ℃. Maximum temperature: 18.9 ℃. Pressure: 1000.6 hPa. Sea-level pressure: 1021.62 hPa. Ground-level pressure: 1000.6 hPa. Humidity: 83%. Cloudiness: 92%. Wind: 4.43 meter/sec, 10 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 09:00:00 MSK 2018. Weather: light rain. Temperature: 21.37 ℃. Minimum temperature: 21.37 ℃. Maximum temperature: 21.37 ℃. Pressure: 1000.95 hPa. Sea-level pressure: 1022.01 hPa. Ground-level pressure: 1000.95 hPa. Humidity: 87%. Cloudiness: 0%. Wind: 4.36 meter/sec, 6 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.92 ℃. Minimum temperature: 23.92 ℃. Maximum temperature: 23.92 ℃. Pressure: 1001.5 hPa. Sea-level pressure: 1022.43 hPa. Ground-level pressure: 1001.5 hPa. Humidity: 77%. Cloudiness: 0%. Wind: 5.66 meter/sec, 12 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 15:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.7 ℃. Minimum temperature: 23.7 ℃. Maximum temperature: 23.7 ℃. Pressure: 1001.75 hPa. Sea-level pressure: 1022.72 hPa. Ground-level pressure: 1001.75 hPa. Humidity: 72%. Cloudiness: 56%. Wind: 5.87 meter/sec, 349 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 18:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.82 ℃. Minimum temperature: 23.82 ℃. Maximum temperature: 23.82 ℃. Pressure: 1001.55 hPa. Sea-level pressure: 1022.59 hPa. Ground-level pressure: 1001.55 hPa. Humidity: 72%. Cloudiness: 68%. Wind: 5.47 meter/sec, 340 degrees. Rain(last 3 hrs): 0 mm - Time: Thu Jul 19 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.22 ℃. Minimum temperature: 22.22 ℃. Maximum temperature: 22.22 ℃. Pressure: 1001.82 hPa. Sea-level pressure: 1022.93 hPa. Ground-level pressure: 1001.82 hPa. Humidity: 67%. Cloudiness: 76%. Wind: 4.12 meter/sec, 333 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.76 ℃. Minimum temperature: 19.76 ℃. Maximum temperature: 19.76 ℃. Pressure: 1001.98 hPa. Sea-level pressure: 1023.13 hPa. Ground-level pressure: 1001.98 hPa. Humidity: 76%. Cloudiness: 32%. Wind: 4.11 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 03:00:00 MSK 2018. Weather: clear sky. Temperature: 17.53 ℃. Minimum temperature: 17.53 ℃. Maximum temperature: 17.53 ℃. Pressure: 1001.93 hPa. Sea-level pressure: 1023.13 hPa. Ground-level pressure: 1001.93 hPa. Humidity: 87%. Cloudiness: 8%. Wind: 4.21 meter/sec, 309 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 16.83 ℃. Minimum temperature: 16.83 ℃. Maximum temperature: 16.83 ℃. Pressure: 1001.79 hPa. Sea-level pressure: 1022.99 hPa. Ground-level pressure: 1001.79 hPa. Humidity: 91%. Cloudiness: 44%. Wind: 3.65 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 09:00:00 MSK 2018. Weather: light rain. Temperature: 19.57 ℃. Minimum temperature: 19.57 ℃. Maximum temperature: 19.57 ℃. Pressure: 1001.34 hPa. Sea-level pressure: 1022.41 hPa. Ground-level pressure: 1001.34 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 4.38 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.5 ℃. Minimum temperature: 23.5 ℃. Maximum temperature: 23.5 ℃. Pressure: 1001.0 hPa. Sea-level pressure: 1021.99 hPa. Ground-level pressure: 1001.0 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 5.36 meter/sec, 299 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.14 ℃. Minimum temperature: 25.14 ℃. Maximum temperature: 25.14 ℃. Pressure: 1000.5 hPa. Sea-level pressure: 1021.51 hPa. Ground-level pressure: 1000.5 hPa. Humidity: 73%. Cloudiness: 32%. Wind: 6.72 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 18:00:00 MSK 2018. Weather: overcast clouds. Temperature: 23.56 ℃. Minimum temperature: 23.56 ℃. Maximum temperature: 23.56 ℃. Pressure: 1000.7 hPa. Sea-level pressure: 1021.58 hPa. Ground-level pressure: 1000.7 hPa. Humidity: 66%. Cloudiness: 88%. Wind: 6.57 meter/sec, 317 degrees. Rain(last 3 hrs): 0 mm - Time: Fri Jul 20 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.41 ℃. Minimum temperature: 22.41 ℃. Maximum temperature: 22.41 ℃. Pressure: 1000.64 hPa. Sea-level pressure: 1021.67 hPa. Ground-level pressure: 1000.64 hPa. Humidity: 68%. Cloudiness: 64%. Wind: 4.31 meter/sec, 326 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 00:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.92 ℃. Minimum temperature: 20.92 ℃. Maximum temperature: 20.92 ℃. Pressure: 1001.06 hPa. Sea-level pressure: 1022.14 hPa. Ground-level pressure: 1001.06 hPa. Humidity: 78%. Cloudiness: 68%. Wind: 3.42 meter/sec, 327 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 03:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.28 ℃. Minimum temperature: 20.28 ℃. Maximum temperature: 20.28 ℃. Pressure: 1001.04 hPa. Sea-level pressure: 1022.13 hPa. Ground-level pressure: 1001.04 hPa. Humidity: 78%. Cloudiness: 76%. Wind: 4.27 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.11 ℃. Minimum temperature: 19.11 ℃. Maximum temperature: 19.11 ℃. Pressure: 1001.13 hPa. Sea-level pressure: 1022.28 hPa. Ground-level pressure: 1001.13 hPa. Humidity: 74%. Cloudiness: 32%. Wind: 4.96 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 09:00:00 MSK 2018. Weather: few clouds. Temperature: 20.16 ℃. Minimum temperature: 20.16 ℃. Maximum temperature: 20.16 ℃. Pressure: 1001.43 hPa. Sea-level pressure: 1022.62 hPa. Ground-level pressure: 1001.43 hPa. Humidity: 86%. Cloudiness: 20%. Wind: 5.16 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 12:00:00 MSK 2018. Weather: few clouds. Temperature: 22.37 ℃. Minimum temperature: 22.37 ℃. Maximum temperature: 22.37 ℃. Pressure: 1001.53 hPa. Sea-level pressure: 1022.62 hPa. Ground-level pressure: 1001.53 hPa. Humidity: 88%. Cloudiness: 20%. Wind: 5.56 meter/sec, 307 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.85 ℃. Minimum temperature: 22.85 ℃. Maximum temperature: 22.85 ℃. Pressure: 1001.63 hPa. Sea-level pressure: 1022.65 hPa. Ground-level pressure: 1001.63 hPa. Humidity: 81%. Cloudiness: 44%. Wind: 5.46 meter/sec, 314 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.79 ℃. Minimum temperature: 23.79 ℃. Maximum temperature: 23.79 ℃. Pressure: 1001.53 hPa. Sea-level pressure: 1022.53 hPa. Ground-level pressure: 1001.53 hPa. Humidity: 72%. Cloudiness: 32%. Wind: 5.56 meter/sec, 313 degrees. Rain(last 3 hrs): 0 mm - Time: Sat Jul 21 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.56 ℃. Minimum temperature: 22.56 ℃. Maximum temperature: 22.56 ℃. Pressure: 1001.72 hPa. Sea-level pressure: 1022.7 hPa. Ground-level pressure: 1001.72 hPa. Humidity: 66%. Cloudiness: 48%. Wind: 3.96 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 00:00:00 MSK 2018. Weather: light rain. Temperature: 16.24 ℃. Minimum temperature: 16.24 ℃. Maximum temperature: 17.36 ℃. Pressure: 997.38 hPa. Sea-level atmosphericPressure: 1018.59 hPa. Ground-level atmosphericPressure: 997.38 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 2.85 meter/sec, 324 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 03:00:00 MSK 2018. Weather: moderate rain. Temperature: 16.0 ℃. Minimum temperature: 16.0 ℃. Maximum temperature: 16.83 ℃. Pressure: 996.88 hPa. Sea-level atmosphericPressure: 1017.86 hPa. Ground-level atmosphericPressure: 996.88 hPa. Humidity: 99%. Cloudiness: 80%. Wind: 1.86 meter/sec, 349 degrees. Rain(last 3 hrs): 3 mm + Time: Tue Jul 17 06:00:00 MSK 2018. Weather: light rain. Temperature: 15.76 ℃. Minimum temperature: 15.76 ℃. Maximum temperature: 16.31 ℃. Pressure: 996.7 hPa. Sea-level atmosphericPressure: 1017.72 hPa. Ground-level atmosphericPressure: 996.7 hPa. Humidity: 94%. Cloudiness: 76%. Wind: 1.62 meter/sec, 113 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 09:00:00 MSK 2018. Weather: light rain. Temperature: 18.23 ℃. Minimum temperature: 18.23 ℃. Maximum temperature: 18.51 ℃. Pressure: 997.17 hPa. Sea-level atmosphericPressure: 1018.18 hPa. Ground-level atmosphericPressure: 997.17 hPa. Humidity: 100%. Cloudiness: 76%. Wind: 2.11 meter/sec, 107 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 12:00:00 MSK 2018. Weather: light rain. Temperature: 21.0 ℃. Minimum temperature: 21.0 ℃. Maximum temperature: 21.0 ℃. Pressure: 997.6 hPa. Sea-level atmosphericPressure: 1018.5 hPa. Ground-level atmosphericPressure: 997.6 hPa. Humidity: 100%. Cloudiness: 68%. Wind: 2.51 meter/sec, 82 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 15:00:00 MSK 2018. Weather: light rain. Temperature: 21.78 ℃. Minimum temperature: 21.78 ℃. Maximum temperature: 21.78 ℃. Pressure: 997.73 hPa. Sea-level atmosphericPressure: 1018.66 hPa. Ground-level atmosphericPressure: 997.73 hPa. Humidity: 92%. Cloudiness: 88%. Wind: 4.05 meter/sec, 78 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 18:00:00 MSK 2018. Weather: light rain. Temperature: 22.9 ℃. Minimum temperature: 22.9 ℃. Maximum temperature: 22.9 ℃. Pressure: 997.66 hPa. Sea-level atmosphericPressure: 1018.55 hPa. Ground-level atmosphericPressure: 997.66 hPa. Humidity: 93%. Cloudiness: 68%. Wind: 3.06 meter/sec, 67 degrees. Rain(last 3 hrs): 0 mm + Time: Tue Jul 17 21:00:00 MSK 2018. Weather: light rain. Temperature: 23.04 ℃. Minimum temperature: 23.04 ℃. Maximum temperature: 23.04 ℃. Pressure: 996.89 hPa. Sea-level atmosphericPressure: 1017.99 hPa. Ground-level atmosphericPressure: 996.89 hPa. Humidity: 83%. Cloudiness: 88%. Wind: 3.17 meter/sec, 16 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 00:00:00 MSK 2018. Weather: moderate rain. Temperature: 18.5 ℃. Minimum temperature: 18.5 ℃. Maximum temperature: 18.5 ℃. Pressure: 997.33 hPa. Sea-level atmosphericPressure: 1018.34 hPa. Ground-level atmosphericPressure: 997.33 hPa. Humidity: 97%. Cloudiness: 44%. Wind: 3.56 meter/sec, 31 degrees. Rain(last 3 hrs): 7 mm + Time: Wed Jul 18 03:00:00 MSK 2018. Weather: few clouds. Temperature: 18.57 ℃. Minimum temperature: 18.57 ℃. Maximum temperature: 18.57 ℃. Pressure: 996.91 hPa. Sea-level atmosphericPressure: 1017.87 hPa. Ground-level atmosphericPressure: 996.91 hPa. Humidity: 95%. Cloudiness: 24%. Wind: 5.26 meter/sec, 44 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 06:00:00 MSK 2018. Weather: few clouds. Temperature: 18.94 ℃. Minimum temperature: 18.94 ℃. Maximum temperature: 18.94 ℃. Pressure: 997.07 hPa. Sea-level atmosphericPressure: 1018.06 hPa. Ground-level atmosphericPressure: 997.07 hPa. Humidity: 95%. Cloudiness: 20%. Wind: 4.8 meter/sec, 45 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 09:00:00 MSK 2018. Weather: light rain. Temperature: 20.6 ℃. Minimum temperature: 20.6 ℃. Maximum temperature: 20.6 ℃. Pressure: 997.8 hPa. Sea-level atmosphericPressure: 1018.66 hPa. Ground-level atmosphericPressure: 997.8 hPa. Humidity: 97%. Cloudiness: 48%. Wind: 5.56 meter/sec, 54 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 12:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.87 ℃. Minimum temperature: 23.87 ℃. Maximum temperature: 23.87 ℃. Pressure: 998.06 hPa. Sea-level atmosphericPressure: 1019.05 hPa. Ground-level atmosphericPressure: 998.06 hPa. Humidity: 88%. Cloudiness: 32%. Wind: 5.86 meter/sec, 52 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 24.67 ℃. Minimum temperature: 24.67 ℃. Maximum temperature: 24.67 ℃. Pressure: 998.51 hPa. Sea-level atmosphericPressure: 1019.33 hPa. Ground-level atmosphericPressure: 998.51 hPa. Humidity: 84%. Cloudiness: 36%. Wind: 5.63 meter/sec, 51 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.15 ℃. Minimum temperature: 25.15 ℃. Maximum temperature: 25.15 ℃. Pressure: 998.79 hPa. Sea-level atmosphericPressure: 1019.64 hPa. Ground-level atmosphericPressure: 998.79 hPa. Humidity: 78%. Cloudiness: 44%. Wind: 5.47 meter/sec, 38 degrees. Rain(last 3 hrs): 0 mm + Time: Wed Jul 18 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.23 ℃. Minimum temperature: 23.23 ℃. Maximum temperature: 23.23 ℃. Pressure: 999.08 hPa. Sea-level atmosphericPressure: 1020.04 hPa. Ground-level atmosphericPressure: 999.08 hPa. Humidity: 75%. Cloudiness: 48%. Wind: 4.62 meter/sec, 25 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 20.79 ℃. Minimum temperature: 20.79 ℃. Maximum temperature: 20.79 ℃. Pressure: 999.67 hPa. Sea-level atmosphericPressure: 1020.68 hPa. Ground-level atmosphericPressure: 999.67 hPa. Humidity: 76%. Cloudiness: 48%. Wind: 4.29 meter/sec, 13 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 03:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.45 ℃. Minimum temperature: 19.45 ℃. Maximum temperature: 19.45 ℃. Pressure: 999.95 hPa. Sea-level atmosphericPressure: 1021.02 hPa. Ground-level atmosphericPressure: 999.95 hPa. Humidity: 80%. Cloudiness: 48%. Wind: 4.22 meter/sec, 17 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 06:00:00 MSK 2018. Weather: light rain. Temperature: 18.9 ℃. Minimum temperature: 18.9 ℃. Maximum temperature: 18.9 ℃. Pressure: 1000.6 hPa. Sea-level atmosphericPressure: 1021.62 hPa. Ground-level atmosphericPressure: 1000.6 hPa. Humidity: 83%. Cloudiness: 92%. Wind: 4.43 meter/sec, 10 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 09:00:00 MSK 2018. Weather: light rain. Temperature: 21.37 ℃. Minimum temperature: 21.37 ℃. Maximum temperature: 21.37 ℃. Pressure: 1000.95 hPa. Sea-level atmosphericPressure: 1022.01 hPa. Ground-level atmosphericPressure: 1000.95 hPa. Humidity: 87%. Cloudiness: 0%. Wind: 4.36 meter/sec, 6 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.92 ℃. Minimum temperature: 23.92 ℃. Maximum temperature: 23.92 ℃. Pressure: 1001.5 hPa. Sea-level atmosphericPressure: 1022.43 hPa. Ground-level atmosphericPressure: 1001.5 hPa. Humidity: 77%. Cloudiness: 0%. Wind: 5.66 meter/sec, 12 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 15:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.7 ℃. Minimum temperature: 23.7 ℃. Maximum temperature: 23.7 ℃. Pressure: 1001.75 hPa. Sea-level atmosphericPressure: 1022.72 hPa. Ground-level atmosphericPressure: 1001.75 hPa. Humidity: 72%. Cloudiness: 56%. Wind: 5.87 meter/sec, 349 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 18:00:00 MSK 2018. Weather: broken clouds. Temperature: 23.82 ℃. Minimum temperature: 23.82 ℃. Maximum temperature: 23.82 ℃. Pressure: 1001.55 hPa. Sea-level atmosphericPressure: 1022.59 hPa. Ground-level atmosphericPressure: 1001.55 hPa. Humidity: 72%. Cloudiness: 68%. Wind: 5.47 meter/sec, 340 degrees. Rain(last 3 hrs): 0 mm + Time: Thu Jul 19 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.22 ℃. Minimum temperature: 22.22 ℃. Maximum temperature: 22.22 ℃. Pressure: 1001.82 hPa. Sea-level atmosphericPressure: 1022.93 hPa. Ground-level atmosphericPressure: 1001.82 hPa. Humidity: 67%. Cloudiness: 76%. Wind: 4.12 meter/sec, 333 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 00:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.76 ℃. Minimum temperature: 19.76 ℃. Maximum temperature: 19.76 ℃. Pressure: 1001.98 hPa. Sea-level atmosphericPressure: 1023.13 hPa. Ground-level atmosphericPressure: 1001.98 hPa. Humidity: 76%. Cloudiness: 32%. Wind: 4.11 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 03:00:00 MSK 2018. Weather: clear sky. Temperature: 17.53 ℃. Minimum temperature: 17.53 ℃. Maximum temperature: 17.53 ℃. Pressure: 1001.93 hPa. Sea-level atmosphericPressure: 1023.13 hPa. Ground-level atmosphericPressure: 1001.93 hPa. Humidity: 87%. Cloudiness: 8%. Wind: 4.21 meter/sec, 309 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 16.83 ℃. Minimum temperature: 16.83 ℃. Maximum temperature: 16.83 ℃. Pressure: 1001.79 hPa. Sea-level atmosphericPressure: 1022.99 hPa. Ground-level atmosphericPressure: 1001.79 hPa. Humidity: 91%. Cloudiness: 44%. Wind: 3.65 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 09:00:00 MSK 2018. Weather: light rain. Temperature: 19.57 ℃. Minimum temperature: 19.57 ℃. Maximum temperature: 19.57 ℃. Pressure: 1001.34 hPa. Sea-level atmosphericPressure: 1022.41 hPa. Ground-level atmosphericPressure: 1001.34 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 4.38 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 12:00:00 MSK 2018. Weather: clear sky. Temperature: 23.5 ℃. Minimum temperature: 23.5 ℃. Maximum temperature: 23.5 ℃. Pressure: 1001.0 hPa. Sea-level atmosphericPressure: 1021.99 hPa. Ground-level atmosphericPressure: 1001.0 hPa. Humidity: 85%. Cloudiness: 8%. Wind: 5.36 meter/sec, 299 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 25.14 ℃. Minimum temperature: 25.14 ℃. Maximum temperature: 25.14 ℃. Pressure: 1000.5 hPa. Sea-level atmosphericPressure: 1021.51 hPa. Ground-level atmosphericPressure: 1000.5 hPa. Humidity: 73%. Cloudiness: 32%. Wind: 6.72 meter/sec, 305 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 18:00:00 MSK 2018. Weather: overcast clouds. Temperature: 23.56 ℃. Minimum temperature: 23.56 ℃. Maximum temperature: 23.56 ℃. Pressure: 1000.7 hPa. Sea-level atmosphericPressure: 1021.58 hPa. Ground-level atmosphericPressure: 1000.7 hPa. Humidity: 66%. Cloudiness: 88%. Wind: 6.57 meter/sec, 317 degrees. Rain(last 3 hrs): 0 mm + Time: Fri Jul 20 21:00:00 MSK 2018. Weather: broken clouds. Temperature: 22.41 ℃. Minimum temperature: 22.41 ℃. Maximum temperature: 22.41 ℃. Pressure: 1000.64 hPa. Sea-level atmosphericPressure: 1021.67 hPa. Ground-level atmosphericPressure: 1000.64 hPa. Humidity: 68%. Cloudiness: 64%. Wind: 4.31 meter/sec, 326 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 00:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.92 ℃. Minimum temperature: 20.92 ℃. Maximum temperature: 20.92 ℃. Pressure: 1001.06 hPa. Sea-level atmosphericPressure: 1022.14 hPa. Ground-level atmosphericPressure: 1001.06 hPa. Humidity: 78%. Cloudiness: 68%. Wind: 3.42 meter/sec, 327 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 03:00:00 MSK 2018. Weather: broken clouds. Temperature: 20.28 ℃. Minimum temperature: 20.28 ℃. Maximum temperature: 20.28 ℃. Pressure: 1001.04 hPa. Sea-level atmosphericPressure: 1022.13 hPa. Ground-level atmosphericPressure: 1001.04 hPa. Humidity: 78%. Cloudiness: 76%. Wind: 4.27 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 06:00:00 MSK 2018. Weather: scattered clouds. Temperature: 19.11 ℃. Minimum temperature: 19.11 ℃. Maximum temperature: 19.11 ℃. Pressure: 1001.13 hPa. Sea-level atmosphericPressure: 1022.28 hPa. Ground-level atmosphericPressure: 1001.13 hPa. Humidity: 74%. Cloudiness: 32%. Wind: 4.96 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 09:00:00 MSK 2018. Weather: few clouds. Temperature: 20.16 ℃. Minimum temperature: 20.16 ℃. Maximum temperature: 20.16 ℃. Pressure: 1001.43 hPa. Sea-level atmosphericPressure: 1022.62 hPa. Ground-level atmosphericPressure: 1001.43 hPa. Humidity: 86%. Cloudiness: 20%. Wind: 5.16 meter/sec, 308 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 12:00:00 MSK 2018. Weather: few clouds. Temperature: 22.37 ℃. Minimum temperature: 22.37 ℃. Maximum temperature: 22.37 ℃. Pressure: 1001.53 hPa. Sea-level atmosphericPressure: 1022.62 hPa. Ground-level atmosphericPressure: 1001.53 hPa. Humidity: 88%. Cloudiness: 20%. Wind: 5.56 meter/sec, 307 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 15:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.85 ℃. Minimum temperature: 22.85 ℃. Maximum temperature: 22.85 ℃. Pressure: 1001.63 hPa. Sea-level atmosphericPressure: 1022.65 hPa. Ground-level atmosphericPressure: 1001.63 hPa. Humidity: 81%. Cloudiness: 44%. Wind: 5.46 meter/sec, 314 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 18:00:00 MSK 2018. Weather: scattered clouds. Temperature: 23.79 ℃. Minimum temperature: 23.79 ℃. Maximum temperature: 23.79 ℃. Pressure: 1001.53 hPa. Sea-level atmosphericPressure: 1022.53 hPa. Ground-level atmosphericPressure: 1001.53 hPa. Humidity: 72%. Cloudiness: 32%. Wind: 5.56 meter/sec, 313 degrees. Rain(last 3 hrs): 0 mm + Time: Sat Jul 21 21:00:00 MSK 2018. Weather: scattered clouds. Temperature: 22.56 ℃. Minimum temperature: 22.56 ℃. Maximum temperature: 22.56 ℃. Pressure: 1001.72 hPa. Sea-level atmosphericPressure: 1022.7 hPa. Ground-level atmosphericPressure: 1001.72 hPa. Humidity: 66%. Cloudiness: 48%. Wind: 3.96 meter/sec, 312 degrees. Rain(last 3 hrs): 0 mm ``` `HourlyForecast.Forecast`'s useful public methods(setters are not listed): @@ -200,7 +200,7 @@ Forecasts: |-----------------------------|------------------------------------------------------------------------------------------------------------------| | `getDataCalculationTime()` | Returns `long` value that represents data calculation timestamp. | | `getDataCalculationDate()` | Returns data calculation time in `Date` representation. | -| `getWeatherInfo()` | Returns `HourlyForecast.WeatherInfo` instance that contains information about temperature, pressure and humidity.| +| `getWeatherInfo()` | Returns `HourlyForecast.WeatherInfo` instance that contains information about temperature, atmosphericPressure and humidity.| | `getWeatherStates()` | Returns list of `WeatherState` instances with the only `getDescription` useful method. | | `getClouds()` | Returns `Clouds` instance that contains *cloudiness* percentage information. | | `getWind()` | Returns `Wind` instance that contains information about speed and degree. | @@ -259,8 +259,8 @@ Available requests: | `getWindSpeed()` | Returns wind's speed. | | `getWindDegrees()` | Returns wind's degree. | | `getWindUnit()` | Returns wind's unit. | -| `getPressure()` | Returns pressure value. | -| `getPressureUnit()` | Returns pressure's unit. | +| `getPressure()` | Returns atmosphericPressure value. | +| `getPressureUnit()` | Returns atmosphericPressure's unit. | | `toString()` | Returns pretty string for the whole available forecast information. | #### UV Index diff --git a/docs/SNAPSHOT.md b/docs/SNAPSHOT.md index a47c026..2461234 100644 --- a/docs/SNAPSHOT.md +++ b/docs/SNAPSHOT.md @@ -103,7 +103,7 @@ final CompletableFuture> weatherListFuture = openWeatherClient | `getWeatherIconUrl()` | Returns weather icon url. | | `getRequestedOn()` | Returns `LocalDateTime` instance which represents date when request was made. | | `getTemperature()` | Returns `Temperature` instance with temperature and max/min values. | -| `getPressure()` | Returns `Pressure` instance that contains information about pressure and(not always) pressure on ground/sea level. | +| `getPressure()` | Returns `Pressure` instance that contains information about atmosphericPressure and(not always) atmosphericPressure on ground/sea level. | | `getHumidity()` | Returns `Humidity` instance that contains information about humidity. | | `getWind()` | Returns `Wind` instance that contains *humidity* percentage information. | | `getRain()` | Returns `Rain` instance that contains information about rain level for the last 1 and 3 hours. | diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/Pressure.java b/src/main/java/com/github/prominence/openweathermap/api/model/AtmosphericPressure.java similarity index 77% rename from src/main/java/com/github/prominence/openweathermap/api/model/Pressure.java rename to src/main/java/com/github/prominence/openweathermap/api/model/AtmosphericPressure.java index 84c28fd..55d52e6 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/Pressure.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/AtmosphericPressure.java @@ -25,10 +25,10 @@ package com.github.prominence.openweathermap.api.model; import java.util.Objects; /** - * The Pressure type represents pressure value percentage. + * The AtmosphericPressure type represents atmospheric pressure value. * Its value can only be a double in [0, +∞) range. */ -public class Pressure { +public class AtmosphericPressure { private static final String DEFAULT_UNIT = "hPa"; @@ -43,13 +43,17 @@ public class Pressure { * @param value the value representing pressure value. * @throws IllegalArgumentException in case if provided value isn't in allowed range. */ - public Pressure(double value) { - if (value < 0) { - throw new IllegalArgumentException("Pressure value must be in [0, +∞) range."); - } + private AtmosphericPressure(double value) { this.value = value; } + public static AtmosphericPressure forValue(double value) { + if (value < 0) { + throw new IllegalArgumentException("Atmospheric pressure value must be in [0, +∞) range."); + } + return new AtmosphericPressure(value); + } + /** * Returns pressure value. * @@ -67,7 +71,7 @@ public class Pressure { */ public void setValue(double value) { if (value < 0) { - throw new IllegalArgumentException("Pressure value must be in [0, +∞) range."); + throw new IllegalArgumentException("Atmospheric pressure value must be in [0, +∞) range."); } this.value = value; } @@ -89,7 +93,7 @@ public class Pressure { */ public void setSeaLevelValue(double seaLevelValue) { if (seaLevelValue < 0) { - throw new IllegalArgumentException("Pressure value must be in [0, +∞) range."); + throw new IllegalArgumentException("Atmospheric pressure value must be in [0, +∞) range."); } this.seaLevelValue = seaLevelValue; } @@ -111,7 +115,7 @@ public class Pressure { */ public void setGroundLevelValue(double groundLevelValue) { if (groundLevelValue < 0) { - throw new IllegalArgumentException("Pressure value must be in [0, +∞) range."); + throw new IllegalArgumentException("Atmospheric pressure value must be in [0, +∞) range."); } this.groundLevelValue = groundLevelValue; } @@ -128,11 +132,11 @@ public class Pressure { @Override public boolean equals(Object o) { if (this == o) return true; - if (!(o instanceof Pressure)) return false; - Pressure pressure = (Pressure) o; - return Double.compare(pressure.value, value) == 0 && - Objects.equals(seaLevelValue, pressure.seaLevelValue) && - Objects.equals(groundLevelValue, pressure.groundLevelValue); + if (!(o instanceof AtmosphericPressure)) return false; + AtmosphericPressure atmosphericPressure = (AtmosphericPressure) o; + return Double.compare(atmosphericPressure.value, value) == 0 && + Objects.equals(seaLevelValue, atmosphericPressure.seaLevelValue) && + Objects.equals(groundLevelValue, atmosphericPressure.groundLevelValue); } @Override diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/Clouds.java b/src/main/java/com/github/prominence/openweathermap/api/model/Clouds.java index 7808262..0c2678d 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/Clouds.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/Clouds.java @@ -40,11 +40,15 @@ public class Clouds { * @param value the value representing cloudiness percentage. * @throws IllegalArgumentException in case if provided value isn't in allowed range. */ - public Clouds(byte value) { + private Clouds(byte value) { + this.value = value; + } + + public static Clouds forValue(byte value) { if (value < 0 || value > 100) { throw new IllegalArgumentException("Cloudiness value must be in [0, 100] range."); } - this.value = value; + return new Clouds(value); } /** diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/Coordinate.java b/src/main/java/com/github/prominence/openweathermap/api/model/Coordinate.java index 61327ac..e087083 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/Coordinate.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/Coordinate.java @@ -28,15 +28,19 @@ public class Coordinate { private double latitude; private double longitude; - public Coordinate(double latitude, double longitude) { + private Coordinate(double latitude, double longitude) { + this.latitude = latitude; + this.longitude = longitude; + } + + public static Coordinate forValues(double latitude, double longitude) { if (latitude < -90 || latitude > 90) { throw new IllegalArgumentException("Latitude value must be in the next range: [-90.0; 90.0]."); } if (longitude < -180 || longitude > 180) { throw new IllegalArgumentException("Longitude value must be in the next range: [-180.0; 180.0]."); } - this.latitude = latitude; - this.longitude = longitude; + return new Coordinate(latitude, longitude); } public void setLatitude(double latitude) { diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/CoordinateRectangle.java b/src/main/java/com/github/prominence/openweathermap/api/model/CoordinateRectangle.java index 6027ade..f9d5de1 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/CoordinateRectangle.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/CoordinateRectangle.java @@ -24,6 +24,7 @@ package com.github.prominence.openweathermap.api.model; import java.util.Objects; +// TODO: builder? public class CoordinateRectangle { private final double longitudeLeft; @@ -31,17 +32,21 @@ public class CoordinateRectangle { private final double longitudeRight; private final double latitudeTop; - public CoordinateRectangle(double longitudeLeft, double latitudeBottom, double longitudeRight, double latitudeTop) { + private CoordinateRectangle(double longitudeLeft, double latitudeBottom, double longitudeRight, double latitudeTop) { + this.longitudeLeft = longitudeLeft; + this.latitudeBottom = latitudeBottom; + this.longitudeRight = longitudeRight; + this.latitudeTop = latitudeTop; + } + + public static CoordinateRectangle forValues(double longitudeLeft, double latitudeBottom, double longitudeRight, double latitudeTop) { if (latitudeBottom < -90 || latitudeTop < -90 || latitudeBottom > 90 || latitudeTop > 90) { throw new IllegalArgumentException("Latitude value must be in the next range: [-90.0; 90.0]."); } if (longitudeLeft < -180 || longitudeRight < -180 || longitudeLeft > 180 || longitudeRight > 180) { throw new IllegalArgumentException("Longitude value must be in the next range: [-180.0; 180.0]."); } - this.longitudeLeft = longitudeLeft; - this.latitudeBottom = latitudeBottom; - this.longitudeRight = longitudeRight; - this.latitudeTop = latitudeTop; + return new CoordinateRectangle(longitudeLeft, latitudeBottom, longitudeRight, latitudeTop); } public double getLongitudeLeft() { diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/Humidity.java b/src/main/java/com/github/prominence/openweathermap/api/model/Humidity.java index a62fe20..38732df 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/Humidity.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/Humidity.java @@ -40,11 +40,15 @@ public class Humidity { * @param value the value representing humidity percentage. * @throws IllegalArgumentException in case if provided value isn't in allowed range. */ - public Humidity(byte value) { + private Humidity(byte value) { + this.value = value; + } + + public static Humidity forValue(byte value) { if (value < 0 || value > 100) { throw new IllegalArgumentException("Humidity value must be in [0, 100] range."); } - this.value = value; + return new Humidity(value); } /** diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Location.java b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Location.java index 8025c84..77a8ba5 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Location.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Location.java @@ -42,12 +42,16 @@ public class Location { private Long population; - public Location(int id, String name) { + private Location(int id, String name) { + this.id = id; + this.name = name; + } + + public static Location forValue(int id, String name) { if (name == null) { throw new IllegalArgumentException("Name must be set."); } - this.id = id; - this.name = name; + return new Location(id, name); } public int getId() { diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Snow.java b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Snow.java index 06ceec9..aad2144 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Snow.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Snow.java @@ -33,7 +33,7 @@ public class Snow { public Snow() { } - public Snow(Double oneHourSnowLevel, Double threeHourSnowLevel) { + public Snow(Double threeHourSnowLevel) { this.threeHourSnowLevel = threeHourSnowLevel; } public Double getThreeHourSnowLevel() { diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Temperature.java b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Temperature.java index b01d530..02bf4f1 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Temperature.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Temperature.java @@ -32,7 +32,7 @@ public class Temperature { private Double feelsLike; private String unit; - public Temperature(double value, String unit) { + private Temperature(double value, String unit) { if (unit == null) { throw new IllegalArgumentException("Unit must be set."); } @@ -40,6 +40,14 @@ public class Temperature { this.unit = unit; } + public static Temperature forValue(double value, String unit) { + if (unit == null) { + throw new IllegalArgumentException("Unit must be set."); + } + + return new Temperature(value, unit); + } + public double getValue() { return value; } diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/WeatherForecast.java b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/WeatherForecast.java index 67f0bc2..2dd44b4 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/WeatherForecast.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/WeatherForecast.java @@ -22,9 +22,9 @@ package com.github.prominence.openweathermap.api.model.forecast; +import com.github.prominence.openweathermap.api.model.AtmosphericPressure; import com.github.prominence.openweathermap.api.model.Clouds; import com.github.prominence.openweathermap.api.model.Humidity; -import com.github.prominence.openweathermap.api.model.Pressure; import com.github.prominence.openweathermap.api.model.DayTime; import java.time.LocalDateTime; @@ -33,7 +33,7 @@ import java.util.Objects; public class WeatherForecast { private LocalDateTime forecastTime; private Temperature temperature; - private Pressure pressure; + private AtmosphericPressure atmosphericPressure; private Humidity humidity; private String state; @@ -64,12 +64,12 @@ public class WeatherForecast { this.temperature = temperature; } - public Pressure getPressure() { - return pressure; + public AtmosphericPressure getAtmosphericPressure() { + return atmosphericPressure; } - public void setPressure(Pressure pressure) { - this.pressure = pressure; + public void setAtmosphericPressure(AtmosphericPressure atmosphericPressure) { + this.atmosphericPressure = atmosphericPressure; } public Humidity getHumidity() { @@ -159,7 +159,7 @@ public class WeatherForecast { WeatherForecast that = (WeatherForecast) o; return Objects.equals(forecastTime, that.forecastTime) && Objects.equals(temperature, that.temperature) && - Objects.equals(pressure, that.pressure) && + Objects.equals(atmosphericPressure, that.atmosphericPressure) && Objects.equals(humidity, that.humidity) && Objects.equals(state, that.state) && Objects.equals(description, that.description) && @@ -174,7 +174,7 @@ public class WeatherForecast { @Override public int hashCode() { - return Objects.hash(forecastTime, temperature, pressure, humidity, state, description, weatherIconUrl, clouds, wind, snow, rain, forecastTimeISO, dayTime); + return Objects.hash(forecastTime, temperature, atmosphericPressure, humidity, state, description, weatherIconUrl, clouds, wind, snow, rain, forecastTimeISO, dayTime); } @Override @@ -190,11 +190,11 @@ public class WeatherForecast { stringBuilder.append(' '); stringBuilder.append(temperature.getUnit()); } - if (pressure != null) { + if (atmosphericPressure != null) { stringBuilder.append(", "); - stringBuilder.append(pressure.getValue()); + stringBuilder.append(atmosphericPressure.getValue()); stringBuilder.append(' '); - stringBuilder.append(pressure.getUnit()); + stringBuilder.append(atmosphericPressure.getUnit()); } if (clouds != null) { stringBuilder.append(", "); diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Wind.java b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Wind.java index edeb5e6..5c14760 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Wind.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/forecast/Wind.java @@ -61,15 +61,19 @@ public class Wind { * @param speed the speed * @param unit the unitSystem */ - public Wind(double speed, String unit) { + private Wind(double speed, String unit) { + this.speed = speed; + this.unit = unit; + } + + public static Wind forValue(double speed, String unit) { if (speed < 0) { throw new IllegalArgumentException("Wind speed value must be in positive or zero."); } if (unit == null) { throw new IllegalArgumentException("Unit must be set."); } - this.speed = speed; - this.unit = unit; + return new Wind(speed, unit); } /** diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/Location.java b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Location.java similarity index 74% rename from src/main/java/com/github/prominence/openweathermap/api/model/Location.java rename to src/main/java/com/github/prominence/openweathermap/api/model/weather/Location.java index 69ddc07..c4e0ce5 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/Location.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Location.java @@ -20,7 +20,31 @@ * SOFTWARE. */ -package com.github.prominence.openweathermap.api.model; +/* + * Copyright (c) 2021 Alexey Zinchenko + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.github.prominence.openweathermap.api.model.weather; + +import com.github.prominence.openweathermap.api.model.Coordinate; import java.time.LocalDateTime; import java.time.ZoneOffset; @@ -38,12 +62,16 @@ public class Location { private Coordinate coordinate; - public Location(int id, String name) { + private Location(int id, String name) { + this.id = id; + this.name = name; + } + + public static Location forValue(int id, String name) { if (name == null) { throw new IllegalArgumentException("Name must be set."); } - this.id = id; - this.name = name; + return new Location(id, name); } public int getId() { diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/weather/Temperature.java b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Temperature.java index 1d56e5f..0bbf4b1 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/weather/Temperature.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Temperature.java @@ -32,12 +32,16 @@ public class Temperature { private Double feelsLike; private String unit; - public Temperature(double value, String unit) { + private Temperature(double value, String unit) { + this.value = value; + this.unit = unit; + } + + public static Temperature forValue(double value, String unit) { if (unit == null) { throw new IllegalArgumentException("Unit must be set."); } - this.value = value; - this.unit = unit; + return new Temperature(value, unit); } public double getValue() { diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/weather/Weather.java b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Weather.java index 92576f7..43bb152 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/weather/Weather.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Weather.java @@ -58,7 +58,7 @@ public class Weather { private LocalDateTime requestedOn; private Temperature temperature; - private Pressure pressure; + private AtmosphericPressure atmosphericPressure; private Humidity humidity; private Wind wind; private Rain rain; @@ -67,15 +67,19 @@ public class Weather { private Location location; - public Weather(String state, String description) { + private Weather(String state, String description) { + this.state = state; + this.description = description; + } + + public static Weather forValue(String state, String description) { if (state == null) { throw new IllegalArgumentException("State must be set."); } if (description == null) { throw new IllegalArgumentException("Description must be set."); } - this.state = state; - this.description = description; + return new Weather(state, description); } public String getState() { @@ -124,12 +128,12 @@ public class Weather { this.temperature = temperature; } - public Pressure getPressure() { - return pressure; + public AtmosphericPressure getAtmosphericPressure() { + return atmosphericPressure; } - public void setPressure(Pressure pressure) { - this.pressure = pressure; + public void setAtmosphericPressure(AtmosphericPressure atmosphericPressure) { + this.atmosphericPressure = atmosphericPressure; } public Humidity getHumidity() { @@ -190,7 +194,7 @@ public class Weather { Objects.equals(weatherIconUrl, weather.weatherIconUrl) && Objects.equals(requestedOn, weather.requestedOn) && Objects.equals(temperature, weather.temperature) && - Objects.equals(pressure, weather.pressure) && + Objects.equals(atmosphericPressure, weather.atmosphericPressure) && Objects.equals(humidity, weather.humidity) && Objects.equals(wind, weather.wind) && Objects.equals(rain, weather.rain) && @@ -201,7 +205,7 @@ public class Weather { @Override public int hashCode() { - return Objects.hash(state, description, weatherIconUrl, requestedOn, temperature, pressure, humidity, wind, rain, snow, clouds, location); + return Objects.hash(state, description, weatherIconUrl, requestedOn, temperature, atmosphericPressure, humidity, wind, rain, snow, clouds, location); } @Override @@ -226,11 +230,11 @@ public class Weather { stringBuilder.append(' '); stringBuilder.append(temperature.getUnit()); } - if (pressure != null) { + if (atmosphericPressure != null) { stringBuilder.append(", "); - stringBuilder.append(pressure.getValue()); + stringBuilder.append(atmosphericPressure.getValue()); stringBuilder.append(' '); - stringBuilder.append(pressure.getUnit()); + stringBuilder.append(atmosphericPressure.getUnit()); } if (clouds != null) { stringBuilder.append(", "); diff --git a/src/main/java/com/github/prominence/openweathermap/api/model/weather/Wind.java b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Wind.java index d2128c3..883728c 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/model/weather/Wind.java +++ b/src/main/java/com/github/prominence/openweathermap/api/model/weather/Wind.java @@ -40,15 +40,19 @@ public class Wind { * @param speed the speed * @param unit the unitSystem */ - public Wind(double speed, String unit) { + private Wind(double speed, String unit) { + this.speed = speed; + this.unit = unit; + } + + public static Wind forValue(double speed, String unit) { if (speed < 0) { throw new IllegalArgumentException("Wind speed value must be in positive or zero."); } if (unit == null) { throw new IllegalArgumentException("Unit must be set."); } - this.speed = speed; - this.unit = unit; + return new Wind(speed, unit); } /** diff --git a/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastRequestCustomizerImpl.java b/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastRequestCustomizerImpl.java index 13bd842..ad2dabc 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastRequestCustomizerImpl.java +++ b/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastRequestCustomizerImpl.java @@ -31,7 +31,7 @@ public class FiveDayThreeHourStepForecastRequestCustomizerImpl implements FiveDa private final RequestUrlBuilder urlBuilder; private Language language; - private UnitSystem unitSystem; + private UnitSystem unitSystem = UnitSystem.STANDARD; private int count = -1; FiveDayThreeHourStepForecastRequestCustomizerImpl(RequestUrlBuilder urlBuilder) { diff --git a/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastResponseMapper.java b/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastResponseMapper.java index 7d9da11..eeff46d 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastResponseMapper.java +++ b/src/main/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastResponseMapper.java @@ -134,7 +134,7 @@ public class FiveDayThreeHourStepForecastResponseMapper { JsonNode mainNode = rootNode.get("main"); weatherForecast.setTemperature(parseTemperature(mainNode)); - weatherForecast.setPressure(parsePressure(mainNode)); + weatherForecast.setAtmosphericPressure(parsePressure(mainNode)); weatherForecast.setHumidity(parseHumidity(mainNode)); weatherForecast.setClouds(parseClouds(rootNode)); weatherForecast.setWind(parseWind(rootNode)); @@ -151,7 +151,7 @@ public class FiveDayThreeHourStepForecastResponseMapper { private Temperature parseTemperature(JsonNode rootNode) { final double tempValue = rootNode.get("temp").asDouble(); - Temperature temperature = new Temperature(tempValue, UnitSystem.getTemperatureUnit(unitSystem)); + Temperature temperature = Temperature.forValue(tempValue, UnitSystem.getTemperatureUnit(unitSystem)); final JsonNode tempMaxNode = rootNode.get("temp_max"); if (tempMaxNode != null) { @@ -169,30 +169,30 @@ public class FiveDayThreeHourStepForecastResponseMapper { return temperature; } - private Pressure parsePressure(JsonNode rootNode) { - Pressure pressure = new Pressure(rootNode.get("pressure").asDouble()); + private AtmosphericPressure parsePressure(JsonNode rootNode) { + AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(rootNode.get("pressure").asDouble()); final JsonNode seaLevelNode = rootNode.get("sea_level"); final JsonNode groundLevelNode = rootNode.get("grnd_level"); if (seaLevelNode != null) { - pressure.setSeaLevelValue(seaLevelNode.asDouble()); + atmosphericPressure.setSeaLevelValue(seaLevelNode.asDouble()); } if (groundLevelNode != null) { - pressure.setGroundLevelValue(groundLevelNode.asDouble()); + atmosphericPressure.setGroundLevelValue(groundLevelNode.asDouble()); } - return pressure; + return atmosphericPressure; } private Humidity parseHumidity(JsonNode rootNode) { - return new Humidity((byte) (rootNode.get("humidity").asInt())); + return Humidity.forValue((byte) (rootNode.get("humidity").asInt())); } private Wind parseWind(JsonNode root) { final JsonNode windNode = root.get("wind"); double speed = windNode.get("speed").asDouble(); - Wind wind = new Wind(speed, UnitSystem.getWindUnit(unitSystem)); + Wind wind = Wind.forValue(speed, UnitSystem.getWindUnit(unitSystem)); final JsonNode degNode = windNode.get("deg"); if (degNode != null) { wind.setDegrees(degNode.asDouble()); @@ -238,14 +238,14 @@ public class FiveDayThreeHourStepForecastResponseMapper { final JsonNode cloudsNode = rootNode.get("clouds"); final JsonNode allValueNode = cloudsNode.get("all"); if (allValueNode != null) { - clouds = new Clouds((byte) allValueNode.asInt()); + clouds = Clouds.forValue((byte) allValueNode.asInt()); } return clouds; } private Location parseLocation(JsonNode rootNode) { - Location location = new Location(rootNode.get("id").asInt(), rootNode.get("name").asText()); + Location location = Location.forValue(rootNode.get("id").asInt(), rootNode.get("name").asText()); final JsonNode timezoneNode = rootNode.get("timezone"); if (timezoneNode != null) { @@ -283,7 +283,7 @@ public class FiveDayThreeHourStepForecastResponseMapper { JsonNode latitudeNode = rootNode.get("lat"); JsonNode longitudeNode = rootNode.get("lon"); if (latitudeNode != null && longitudeNode != null) { - return new Coordinate(latitudeNode.asDouble(), longitudeNode.asDouble()); + return Coordinate.forValues(latitudeNode.asDouble(), longitudeNode.asDouble()); } return null; } diff --git a/src/main/java/com/github/prominence/openweathermap/api/request/weather/CurrentWeatherResponseMapper.java b/src/main/java/com/github/prominence/openweathermap/api/request/weather/CurrentWeatherResponseMapper.java index f85619e..2eb16f0 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/request/weather/CurrentWeatherResponseMapper.java +++ b/src/main/java/com/github/prominence/openweathermap/api/request/weather/CurrentWeatherResponseMapper.java @@ -107,11 +107,11 @@ public class CurrentWeatherResponseMapper implements ResponseMapper { private Weather getSingle(JsonNode rootNode) { JsonNode weatherState = rootNode.get("weather").get(0); - Weather weather = new Weather(weatherState.get("main").asText(), weatherState.get("description").asText()); + Weather weather = Weather.forValue(weatherState.get("main").asText(), weatherState.get("description").asText()); weather.setWeatherIconUrl("http://openweathermap.org/img/w/" + weatherState.get("icon").asText() + ".png"); weather.setTemperature(parseTemperature(rootNode)); - weather.setPressure(parsePressure(rootNode)); + weather.setAtmosphericPressure(parsePressure(rootNode)); weather.setHumidity(parseHumidity(rootNode)); weather.setWind(parseWind(rootNode)); weather.setRain(parseRain(rootNode)); @@ -147,7 +147,7 @@ public class CurrentWeatherResponseMapper implements ResponseMapper { final JsonNode mainNode = rootNode.get("main"); final double tempValue = mainNode.get("temp").asDouble(); - temperature = new Temperature(tempValue, UnitSystem.getTemperatureUnit(unitSystem)); + temperature = Temperature.forValue(tempValue, UnitSystem.getTemperatureUnit(unitSystem)); final JsonNode feelsLikeNode = mainNode.get("feels_like"); if (feelsLikeNode != null) { @@ -165,33 +165,33 @@ public class CurrentWeatherResponseMapper implements ResponseMapper { return temperature; } - private Pressure parsePressure(JsonNode rootNode) { + private AtmosphericPressure parsePressure(JsonNode rootNode) { final JsonNode mainNode = rootNode.get("main"); - Pressure pressure = new Pressure(mainNode.get("pressure").asDouble()); + AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(mainNode.get("pressure").asDouble()); final JsonNode seaLevelNode = mainNode.get("sea_level"); - final JsonNode grndLevelNode = mainNode.get("grnd_level"); + final JsonNode groundLevelNode = mainNode.get("grnd_level"); if (seaLevelNode != null) { - pressure.setSeaLevelValue(seaLevelNode.asDouble()); + atmosphericPressure.setSeaLevelValue(seaLevelNode.asDouble()); } - if (grndLevelNode != null) { - pressure.setGroundLevelValue(grndLevelNode.asDouble()); + if (groundLevelNode != null) { + atmosphericPressure.setGroundLevelValue(groundLevelNode.asDouble()); } - return pressure; + return atmosphericPressure; } private Humidity parseHumidity(JsonNode rootNode) { final JsonNode mainNode = rootNode.get("main"); - return new Humidity((byte) (mainNode.get("humidity").asInt())); + return Humidity.forValue((byte) (mainNode.get("humidity").asInt())); } private Wind parseWind(JsonNode rootNode) { final JsonNode windNode = rootNode.get("wind"); double speed = windNode.get("speed").asDouble(); - Wind wind = new Wind(speed, UnitSystem.getWindUnit(unitSystem)); + Wind wind = Wind.forValue(speed, UnitSystem.getWindUnit(unitSystem)); final JsonNode degNode = windNode.get("deg"); if (degNode != null) { @@ -250,14 +250,14 @@ public class CurrentWeatherResponseMapper implements ResponseMapper { final JsonNode cloudsNode = rootNode.get("clouds"); final JsonNode allValueNode = cloudsNode.get("all"); if (allValueNode != null) { - clouds = new Clouds((byte) allValueNode.asInt()); + clouds = Clouds.forValue((byte) allValueNode.asInt()); } return clouds; } private Location parseLocation(JsonNode rootNode) { - Location location = new Location(rootNode.get("id").asInt(), rootNode.get("name").asText()); + Location location = Location.forValue(rootNode.get("id").asInt(), rootNode.get("name").asText()); final JsonNode timezoneNode = rootNode.get("timezone"); if (timezoneNode != null) { @@ -293,7 +293,7 @@ public class CurrentWeatherResponseMapper implements ResponseMapper { JsonNode latitudeNode = rootNode.get("lat"); JsonNode longitudeNode = rootNode.get("lon"); if (latitudeNode != null && longitudeNode != null) { - return new Coordinate(latitudeNode.asDouble(), longitudeNode.asDouble()); + return Coordinate.forValues(latitudeNode.asDouble(), longitudeNode.asDouble()); } return null; } diff --git a/src/main/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherRequestCustomizerImpl.java b/src/main/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherRequestCustomizerImpl.java index 5243608..6661f20 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherRequestCustomizerImpl.java +++ b/src/main/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherRequestCustomizerImpl.java @@ -31,7 +31,7 @@ public class MultipleResultCurrentWeatherRequestCustomizerImpl implements Multip private final RequestUrlBuilder urlBuilder; private Language language; - private UnitSystem unitSystem; + private UnitSystem unitSystem = UnitSystem.STANDARD; MultipleResultCurrentWeatherRequestCustomizerImpl(RequestUrlBuilder urlBuilder) { this.urlBuilder = urlBuilder; diff --git a/src/main/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherRequestCustomizerImpl.java b/src/main/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherRequestCustomizerImpl.java index c9c8acd..66b6912 100644 --- a/src/main/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherRequestCustomizerImpl.java +++ b/src/main/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherRequestCustomizerImpl.java @@ -31,7 +31,7 @@ public class SingleResultCurrentWeatherRequestCustomizerImpl implements SingleRe private final RequestUrlBuilder urlBuilder; private Language language; - private UnitSystem unitSystem; + private UnitSystem unitSystem = UnitSystem.STANDARD; SingleResultCurrentWeatherRequestCustomizerImpl(RequestUrlBuilder urlBuilder) { this.urlBuilder = urlBuilder; diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/AtmosphericPressureUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/AtmosphericPressureUnitTest.java new file mode 100644 index 0000000..93c7f5b --- /dev/null +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/AtmosphericPressureUnitTest.java @@ -0,0 +1,128 @@ +/* + * Copyright (c) 2021 Alexey Zinchenko + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.github.prominence.openweathermap.api.model.weather; + +import com.github.prominence.openweathermap.api.model.AtmosphericPressure; +import org.junit.Assert; +import org.junit.Test; + +public class AtmosphericPressureUnitTest { + + @Test + public void whenCreatePressureWithArgs_thenValueIsSet() { + AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(100); + Assert.assertEquals(100, atmosphericPressure.getValue(), 0.00001); + + Assert.assertEquals(0, AtmosphericPressure.forValue(0).getValue(), 0.00001); + Assert.assertEquals(100, AtmosphericPressure.forValue(100).getValue(), 0.00001); + Assert.assertEquals(55, AtmosphericPressure.forValue(55).getValue(), 0.00001); + } + + @Test + public void whenCreateTwoIdenticalInstances_thenWheyAreEquals() { + AtmosphericPressure one = AtmosphericPressure.forValue(22); + AtmosphericPressure two = AtmosphericPressure.forValue(22); + + Assert.assertTrue(one.equals(two)); + Assert.assertTrue(one.equals(one)); + Assert.assertEquals(one.hashCode(), two.hashCode()); + + one.setSeaLevelValue(333); + one.setGroundLevelValue(555); + + two.setSeaLevelValue(333); + two.setGroundLevelValue(555); + + Assert.assertTrue(one.equals(two)); + Assert.assertTrue(two.equals(one)); + Assert.assertEquals(one.hashCode(), two.hashCode()); + } + + @Test + public void whenCreateTwoDifferentInstances_thenWheyAreNotEquals() { + AtmosphericPressure one = AtmosphericPressure.forValue(5); + AtmosphericPressure two = AtmosphericPressure.forValue(88); + + Assert.assertFalse(one.equals(two)); + Assert.assertFalse(two.equals(one)); + Assert.assertFalse(one.equals(new Object())); + Assert.assertNotEquals(one.hashCode(), two.hashCode()); + + one = AtmosphericPressure.forValue(44); + one.setSeaLevelValue(44); + two = AtmosphericPressure.forValue(44); + two.setGroundLevelValue(22); + + Assert.assertFalse(one.equals(two)); + Assert.assertFalse(two.equals(one)); + + two.setSeaLevelValue(44); + + Assert.assertFalse(one.equals(two)); + Assert.assertFalse(two.equals(one)); + } + + @Test + public void whenSetValidValues_thenAllIsFine() { + AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(14); + atmosphericPressure.setValue(0); + atmosphericPressure.setValue(15); + atmosphericPressure.setValue(100); + + atmosphericPressure.setGroundLevelValue(222); + Assert.assertEquals(222, atmosphericPressure.getGroundLevelValue(), 0.00001); + + atmosphericPressure.setSeaLevelValue(4232); + Assert.assertEquals(4232, atmosphericPressure.getSeaLevelValue(), 0.00001); + } + + @Test + public void whenCallToString_thenAllIsFine() { + final String pressureString = AtmosphericPressure.forValue(44).toString(); + Assert.assertNotNull(pressureString); + Assert.assertNotEquals("", pressureString); + } + + @Test(expected = IllegalArgumentException.class) + public void whenCreatePressureByConstructorWithInvalidDataNegative_thenThrowAnException() { + AtmosphericPressure.forValue(-33); + } + + @Test(expected = IllegalArgumentException.class) + public void whenCreatePressureAndSetInvalidDataNegative_thenThrowAnException() { + AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(88); + atmosphericPressure.setValue(-89); + } + + @Test(expected = IllegalArgumentException.class) + public void whenSetInvalidSeaLevelPressure_thenThrowAnException() { + AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(88); + atmosphericPressure.setSeaLevelValue(-89); + } + + @Test(expected = IllegalArgumentException.class) + public void whenSetInvalidGroundLevelPressure_thenThrowAnException() { + AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(88); + atmosphericPressure.setGroundLevelValue(-223); + } +} diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/CloudsUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/CloudsUnitTest.java index c6cf66e..d7c23f9 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/CloudsUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/CloudsUnitTest.java @@ -23,75 +23,79 @@ package com.github.prominence.openweathermap.api.model.weather; import com.github.prominence.openweathermap.api.model.Clouds; +import org.junit.Assert; import org.junit.Test; public class CloudsUnitTest { @Test public void whenCreateCloudsWithValidArgs_thenValueIsSet() { - Clouds clouds = new Clouds((byte) 100); - assert clouds.getValue() == 100; + Clouds clouds = Clouds.forValue((byte) 100); + Assert.assertEquals(100, clouds.getValue()); - assert new Clouds((byte) 0).getValue() == 0; - assert new Clouds((byte) 100).getValue() == 100; - assert new Clouds((byte) 55).getValue() == 55; + Assert.assertEquals(0, Clouds.forValue((byte) 0).getValue()); + Assert.assertEquals(100, Clouds.forValue((byte) 100).getValue()); + Assert.assertEquals(55, Clouds.forValue((byte) 55).getValue()); } @Test(expected = IllegalArgumentException.class) public void whenCreateCloudsByConstructorWithInvalidDataAboveHundred_thenThrowAnException() { - new Clouds((byte) 110); + Clouds.forValue((byte) 110); } @Test(expected = IllegalArgumentException.class) public void whenCreateCloudsByConstructorWithInvalidDataNegative_thenThrowAnException() { - new Clouds((byte) -33); + Clouds.forValue((byte) -33); } @Test public void whenSetValidValues_thenAllIsFine() { - Clouds clouds = new Clouds((byte) 14); + Clouds clouds = Clouds.forValue((byte) 14); clouds.setValue((byte) 0); + Assert.assertEquals(0, clouds.getValue()); clouds.setValue((byte) 15); + Assert.assertEquals(15, clouds.getValue()); clouds.setValue((byte) 100); + Assert.assertEquals(100, clouds.getValue()); } @Test(expected = IllegalArgumentException.class) public void whenCreateCloudsAndSetInvalidDataAboveHundred_thenThrowAnException() { - Clouds clouds = new Clouds((byte) 12); + Clouds clouds = Clouds.forValue((byte) 12); clouds.setValue((byte) 112); } @Test(expected = IllegalArgumentException.class) public void whenCreateCloudsAndSetInvalidDataNegative_thenThrowAnException() { - Clouds clouds = new Clouds((byte) 88); + Clouds clouds = Clouds.forValue((byte) 88); clouds.setValue((byte) -89); } @Test public void whenCreateTwoIdenticalInstances_thenWheyAreEquals() { - Clouds one = new Clouds((byte) 22); - Clouds two = new Clouds((byte) 22); + Clouds one = Clouds.forValue((byte) 22); + Clouds two = Clouds.forValue((byte) 22); - assert one.equals(two); - assert one.equals(one); - assert one.hashCode() == two.hashCode(); + Assert.assertTrue(one.equals(two)); + Assert.assertTrue(one.equals(one)); + Assert.assertEquals(one.hashCode(), two.hashCode()); } @Test public void whenCreateTwoDifferentInstances_thenWheyAreNotEquals() { - Clouds one = new Clouds((byte) 5); - Clouds two = new Clouds((byte) 88); + Clouds one = Clouds.forValue((byte) 5); + Clouds two = Clouds.forValue((byte) 88); - assert !one.equals(two); - assert !two.equals(one); - assert !one.equals(new Object()); - assert one.hashCode() != two.hashCode(); + Assert.assertFalse(one.equals(two)); + Assert.assertFalse(two.equals(one)); + Assert.assertFalse(one.equals(new Object())); + Assert.assertNotEquals(one.hashCode(), two.hashCode()); } @Test public void whenCallToString_thenAllIsFine() { - final String cloudsString = new Clouds((byte) 44).toString(); - assert cloudsString != null; - assert !"".equals(cloudsString); + final String cloudsString = Clouds.forValue((byte) 44).toString(); + Assert.assertNotNull(cloudsString); + Assert.assertNotEquals("", cloudsString); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateRectangleUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateRectangleUnitTest.java index c5312ca..0d94fc5 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateRectangleUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateRectangleUnitTest.java @@ -23,108 +23,109 @@ package com.github.prominence.openweathermap.api.model.weather; import com.github.prominence.openweathermap.api.model.CoordinateRectangle; +import org.junit.Assert; import org.junit.Test; public class CoordinateRectangleUnitTest { @Test public void whenCreateObjectWithValidArgs_thenObjectIsCreated() { - new CoordinateRectangle(44.5, 22.4, 54.4, 22.2); + CoordinateRectangle.forValues(44.5, 22.4, 54.4, 22.2); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLatitudeBottomBelowMinus90_thenThrowAnException() { - new CoordinateRectangle(44.5, -91.2, 54.4, 22.2); + CoordinateRectangle.forValues(44.5, -91.2, 54.4, 22.2); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLatitudeBottomAbove90_thenThrowAnException() { - new CoordinateRectangle(44.5, 91.2, 54.4, 22.2); + CoordinateRectangle.forValues(44.5, 91.2, 54.4, 22.2); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLatitudeTopBelowMinus90_thenThrowAnException() { - new CoordinateRectangle(44.5, 22.4, 54.4, -92.3); + CoordinateRectangle.forValues(44.5, 22.4, 54.4, -92.3); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLatitudeTopAbove90_thenThrowAnException() { - new CoordinateRectangle(44.5, 22.5, 54.4, 94.887); + CoordinateRectangle.forValues(44.5, 22.5, 54.4, 94.887); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLongitudeLeftBelowMinus180_thenThrowAnException() { - new CoordinateRectangle(-944.5, 22.4, 54.4, 22.2); + CoordinateRectangle.forValues(-944.5, 22.4, 54.4, 22.2); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLongitudeLeftAbove180_thenThrowAnException() { - new CoordinateRectangle(544.5, 22.4, 54.4, 22.2); + CoordinateRectangle.forValues(544.5, 22.4, 54.4, 22.2); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLongitudeRightBelowMinus180_thenThrowAnException() { - new CoordinateRectangle(44.5, 22.4, -254.4, 22.2); + CoordinateRectangle.forValues(44.5, 22.4, -254.4, 22.2); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithLongitudeRightAbove180_thenThrowAnException() { - new CoordinateRectangle(44.5, 22.4, 354.4, 22.2); + CoordinateRectangle.forValues(44.5, 22.4, 354.4, 22.2); } @Test public void whenGetAllParameters_thenAllIsFine() { - final CoordinateRectangle rectangle = new CoordinateRectangle(44.5, 22.4, 54.4, 22.2); - assert rectangle.getLongitudeLeft() == 44.5; - assert rectangle.getLatitudeBottom() == 22.4; - assert rectangle.getLongitudeRight() == 54.4; - assert rectangle.getLatitudeTop() == 22.2; + final CoordinateRectangle rectangle = CoordinateRectangle.forValues(44.5, 22.4, 54.4, 22.2); + Assert.assertEquals(44.5, rectangle.getLongitudeLeft(), 0.00001); + Assert.assertEquals(22.4, rectangle.getLatitudeBottom(), 0.00001); + Assert.assertEquals(54.4, rectangle.getLongitudeRight(), 0.00001); + Assert.assertEquals(22.2, rectangle.getLatitudeTop(), 0.00001); } @Test public void whenCallToString_thenAllIsFine() { - final CoordinateRectangle rectangle = new CoordinateRectangle(44.5, 22.4, 54.4, 22.2); + final CoordinateRectangle rectangle = CoordinateRectangle.forValues(44.5, 22.4, 54.4, 22.2); - assert rectangle.toString() != null; - assert !"".equals(rectangle.toString()); + Assert.assertNotNull(rectangle.toString()); + Assert.assertNotEquals("", rectangle.toString()); } @Test public void whenCallHashCode_thenAllIsFine() { - final CoordinateRectangle first = new CoordinateRectangle(44.5, 22.4, 54.4, 22.2); - final CoordinateRectangle second = new CoordinateRectangle(44.5, 22.4, 54.4, 22.2); + final CoordinateRectangle first = CoordinateRectangle.forValues(44.5, 22.4, 54.4, 22.2); + final CoordinateRectangle second = CoordinateRectangle.forValues(44.5, 22.4, 54.4, 22.2); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); - final CoordinateRectangle third = new CoordinateRectangle(44.5, 22.4, 54.4, 23.566); + final CoordinateRectangle third = CoordinateRectangle.forValues(44.5, 22.4, 54.4, 23.566); - assert first.hashCode() != third.hashCode(); - assert second.hashCode() != third.hashCode(); + Assert.assertNotEquals(first.hashCode(), third.hashCode()); + Assert.assertNotEquals(second.hashCode(), third.hashCode()); } @Test public void whenCheckEquality_thenAllIsFine() { - CoordinateRectangle first = new CoordinateRectangle(44.5, 22.4, 54.4, 22.2); - CoordinateRectangle second = new CoordinateRectangle(44.5, 22.4, 54.4, 22.2); + CoordinateRectangle first = CoordinateRectangle.forValues(44.5, 22.4, 54.4, 22.2); + CoordinateRectangle second = CoordinateRectangle.forValues(44.5, 22.4, 54.4, 22.2); - assert first.equals(second); - assert first.equals(first); - assert !first.equals(new Object()); + Assert.assertTrue(first.equals(second)); + Assert.assertTrue(first.equals(first)); + Assert.assertFalse(first.equals(new Object())); - first = new CoordinateRectangle(49.5, 22.4, 54.4, 22.2); + first = CoordinateRectangle.forValues(49.5, 22.4, 54.4, 22.2); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); - first = new CoordinateRectangle(44.5, 29.4, 54.4, 22.2); + first = CoordinateRectangle.forValues(44.5, 29.4, 54.4, 22.2); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); - first = new CoordinateRectangle(44.5, 22.4, 24.4, 22.2); + first = CoordinateRectangle.forValues(44.5, 22.4, 24.4, 22.2); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); - first = new CoordinateRectangle(44.5, 22.4, 54.4, -2.2); + first = CoordinateRectangle.forValues(44.5, 22.4, 54.4, -2.2); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateUnitTest.java index b9cb860..58b6d75 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/CoordinateUnitTest.java @@ -23,142 +23,149 @@ package com.github.prominence.openweathermap.api.model.weather; import com.github.prominence.openweathermap.api.model.Coordinate; +import org.junit.Assert; import org.junit.Test; public class CoordinateUnitTest { @Test public void whenCreateCoordinateWithValidValues_thenObjectCreated() { - new Coordinate(44, 53); + Coordinate.forValues(44, 53); } @Test(expected = IllegalArgumentException.class) public void whenCreateCoordinateWithInvalidLatitudeBelowMinus90_thenThrowAnException() { - new Coordinate(-333, 44); + Coordinate.forValues(-333, 44); } @Test(expected = IllegalArgumentException.class) public void whenCreateCoordinateWithInvalidLatitudeAbove90_thenThrowAnException() { - new Coordinate(223, 44); + Coordinate.forValues(223, 44); } @Test(expected = IllegalArgumentException.class) public void whenCreateCoordinateWithInvalidLongitudeBelowMinus180_thenThrowAnException() { - new Coordinate(33, -999); + Coordinate.forValues(33, -999); } @Test(expected = IllegalArgumentException.class) public void whenCreateCoordinateWithInvalidLongitudeAbove180_thenThrowAnException() { - new Coordinate(33, 999); + Coordinate.forValues(33, 999); } @Test public void whenSetValidCoordinates_thenAllIsFine() { - final Coordinate coordinate = new Coordinate(0, 0); + final Coordinate coordinate = Coordinate.forValues(0, 0); coordinate.setLatitude(-90); + Assert.assertEquals(-90, coordinate.getLatitude(), 0.00001); coordinate.setLatitude(90); + Assert.assertEquals(90, coordinate.getLatitude(), 0.00001); coordinate.setLatitude(44); + Assert.assertEquals(44, coordinate.getLatitude(), 0.00001); coordinate.setLongitude(-180); + Assert.assertEquals(-180, coordinate.getLongitude(), 0.00001); coordinate.setLongitude(180); + Assert.assertEquals(180, coordinate.getLongitude(), 0.00001); coordinate.setLongitude(130); + Assert.assertEquals(130, coordinate.getLongitude(), 0.00001); } @Test(expected = IllegalArgumentException.class) public void whenSetInvalidLatitudeBelowMinus90_thenThrowAnException() { - final Coordinate coordinate = new Coordinate(0, 0); + final Coordinate coordinate = Coordinate.forValues(0, 0); coordinate.setLatitude(-91); } @Test(expected = IllegalArgumentException.class) public void whenSetInvalidLatitudeAbove90_thenThrowAnException() { - final Coordinate coordinate = new Coordinate(0, 0); + final Coordinate coordinate = Coordinate.forValues(0, 0); coordinate.setLatitude(92); } @Test(expected = IllegalArgumentException.class) public void whenSetInvalidLongitudeBelowMinus180_thenThrowAnException() { - final Coordinate coordinate = new Coordinate(0, 0); + final Coordinate coordinate = Coordinate.forValues(0, 0); coordinate.setLongitude(-194); } @Test(expected = IllegalArgumentException.class) public void whenSetInvalidLongitudeAbove180_thenThrowAnException() { - final Coordinate coordinate = new Coordinate(0, 0); + final Coordinate coordinate = Coordinate.forValues(0, 0); coordinate.setLongitude(444); } @Test public void whenGetLatitude_thenAllIsFine() { - final Coordinate coordinate = new Coordinate(0, 0); - assert coordinate.getLatitude() == 0; + final Coordinate coordinate = Coordinate.forValues(0, 0); + Assert.assertEquals(0, coordinate.getLatitude(), 0.00001); coordinate.setLatitude(45); - assert coordinate.getLatitude() == 45; + Assert.assertEquals(45, coordinate.getLatitude(), 0.00001); } @Test public void whenGetLongitude_thenAllIsFine() { - final Coordinate coordinate = new Coordinate(0, 0); - assert coordinate.getLongitude() == 0; + final Coordinate coordinate = Coordinate.forValues(0, 0); + Assert.assertEquals(0, coordinate.getLongitude(), 0.00001); coordinate.setLongitude(33); - assert coordinate.getLongitude() == 33; + Assert.assertEquals(33, coordinate.getLongitude(), 0.00001); } @Test public void whenCallToString_thenAllIsFine() { - final Coordinate coordinate = new Coordinate(0, 0); - assert coordinate.toString() != null; - assert !"".equals(coordinate.toString()); + final Coordinate coordinate = Coordinate.forValues(0, 0); + Assert.assertNotNull(coordinate.toString()); + Assert.assertNotEquals("", coordinate.toString()); } @Test - public void RainwhenCallHashCode_thenAllIsFine() { - final Coordinate first = new Coordinate(22, 66); - final Coordinate second = new Coordinate(22, 44); + public void whenCallHashCode_thenAllIsFine() { + final Coordinate first = Coordinate.forValues(22, 66); + final Coordinate second = Coordinate.forValues(22, 44); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); second.setLongitude(66); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); second.setLatitude(89); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); first.setLatitude(89); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); } @Test public void whenCheckEquality_thenAllIsFine() { - final Coordinate first = new Coordinate(11, 99); - final Coordinate second = new Coordinate(11, 99); + final Coordinate first = Coordinate.forValues(11, 99); + final Coordinate second = Coordinate.forValues(11, 99); - assert first.equals(second); - assert first.equals(first); - assert !first.equals(new Object()); + Assert.assertTrue(first.equals(second)); + Assert.assertTrue(first.equals(first)); + Assert.assertFalse(first.equals(new Object())); first.setLatitude(34); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); second.setLatitude(34); - assert first.equals(second); + Assert.assertTrue(first.equals(second)); second.setLongitude(74); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); first.setLongitude(74); - assert first.equals(second); + Assert.assertTrue(first.equals(second)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/HumidityUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/HumidityUnitTest.java index be291f3..768a8f7 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/HumidityUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/HumidityUnitTest.java @@ -23,75 +23,79 @@ package com.github.prominence.openweathermap.api.model.weather; import com.github.prominence.openweathermap.api.model.Humidity; +import org.junit.Assert; import org.junit.Test; public class HumidityUnitTest { @Test public void whenCreateHumidityWithArgs_thenValueIsSet() { - Humidity humidity = new Humidity((byte) 100); - assert humidity.getValue() == 100; + Humidity humidity = Humidity.forValue((byte) 100); + Assert.assertEquals(100, humidity.getValue()); - assert new Humidity((byte) 0).getValue() == 0; - assert new Humidity((byte) 100).getValue() == 100; - assert new Humidity((byte) 55).getValue() == 55; + Assert.assertEquals(0, Humidity.forValue((byte) 0).getValue()); + Assert.assertEquals(55, Humidity.forValue((byte) 55).getValue()); } @Test(expected = IllegalArgumentException.class) public void whenCreateHumidityByConstructorWithInvalidDataAboveHundred_thenThrowAnException() { - new Humidity((byte) 112); + Humidity.forValue((byte) 112); } @Test(expected = IllegalArgumentException.class) public void whenCreateHumidityByConstructorWithInvalidDataNegative_thenThrowAnException() { - new Humidity((byte) -33); + Humidity.forValue((byte) -33); } @Test public void whenSetValidValues_thenAllIsFine() { - Humidity humidity = new Humidity((byte) 14); + Humidity humidity = Humidity.forValue((byte) 14); + Assert.assertEquals(14, humidity.getValue()); humidity.setValue((byte) 0); + Assert.assertEquals(0, humidity.getValue()); humidity.setValue((byte) 15); + Assert.assertEquals(15, humidity.getValue()); humidity.setValue((byte) 100); + Assert.assertEquals(100, humidity.getValue()); } @Test(expected = IllegalArgumentException.class) public void whenCreateHumidityAndSetInvalidDataAboveHundred_thenThrowAnException() { - Humidity humidity = new Humidity((byte) 12); + Humidity humidity = Humidity.forValue((byte) 12); humidity.setValue((byte) 112); } @Test(expected = IllegalArgumentException.class) public void whenCreateHumidityAndSetInvalidDataNegative_thenThrowAnException() { - Humidity humidity = new Humidity((byte) 88); + Humidity humidity = Humidity.forValue((byte) 88); humidity.setValue((byte) -89); } @Test public void whenCreateTwoIdenticalInstances_thenWheyAreEquals() { - Humidity one = new Humidity((byte) 22); - Humidity two = new Humidity((byte) 22); + Humidity one = Humidity.forValue((byte) 22); + Humidity two = Humidity.forValue((byte) 22); - assert one.equals(two); - assert one.equals(one); - assert one.hashCode() == two.hashCode(); + Assert.assertTrue(one.equals(two)); + Assert.assertTrue(one.equals(one)); + Assert.assertEquals(one.hashCode(), two.hashCode()); } @Test public void whenCreateTwoDifferentInstances_thenWheyAreNotEquals() { - Humidity one = new Humidity((byte) 5); - Humidity two = new Humidity((byte) 88); + Humidity one = Humidity.forValue((byte) 5); + Humidity two = Humidity.forValue((byte) 88); - assert !one.equals(two); - assert !two.equals(one); - assert !one.equals(new Object()); - assert one.hashCode() != two.hashCode(); + Assert.assertFalse(one.equals(two)); + Assert.assertFalse(two.equals(one)); + Assert.assertFalse(one.equals(new Object())); + Assert.assertNotEquals(one.hashCode(), two.hashCode()); } @Test public void whenCallToString_thenAllIsFine() { - final String humidityString = new Humidity((byte) 44).toString(); - assert humidityString != null; - assert !"".equals(humidityString); + final String humidityString = Humidity.forValue((byte) 44).toString(); + Assert.assertNotNull(humidityString); + Assert.assertNotEquals("", humidityString); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/LocationUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/LocationUnitTest.java index 0f2aac9..46c333e 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/LocationUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/LocationUnitTest.java @@ -23,7 +23,7 @@ package com.github.prominence.openweathermap.api.model.weather; import com.github.prominence.openweathermap.api.model.Coordinate; -import com.github.prominence.openweathermap.api.model.Location; +import org.junit.Assert; import org.junit.Test; import java.time.LocalDateTime; @@ -33,169 +33,170 @@ public class LocationUnitTest { @Test public void whenCreateObjectWithValidArgs_thenObjectIsCreated() { - new Location(33, "test"); + Location.forValue(33, "test"); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithoutName_thenThrowAnException() { - new Location(33, null); + Location.forValue(33, null); } @Test public void whenSetId_thenValueIsSet() { - final Location location = new Location(33, "test"); + final Location location = Location.forValue(33, "test"); location.setId(55); - assert location.getId() == 55; + Assert.assertEquals(55, location.getId()); } @Test public void whenSetName_thenValueIsSet() { - final Location location = new Location(33, "test"); + final Location location = Location.forValue(33, "test"); location.setName("city"); - assert "city".equals(location.getName()); + Assert.assertEquals("city", location.getName()); } @Test public void whenSetCountryCode_thenValueIsSet() { - final Location location = new Location(33, "test"); + final Location location = Location.forValue(33, "test"); location.setCountryCode("by"); - assert "by".equals(location.getCountryCode()); + Assert.assertEquals("by", location.getCountryCode()); } @Test public void whenSetSunrise_thenValueIsSet() { - final Location location = new Location(33, "test"); + final Location location = Location.forValue(33, "test"); final LocalDateTime now = LocalDateTime.now(); location.setSunrise(now); - assert now.equals(location.getSunrise()); + Assert.assertEquals(now, location.getSunrise()); } @Test public void whenSetSunset_thenValueIsSet() { - final Location location = new Location(33, "test"); + final Location location = Location.forValue(33, "test"); final LocalDateTime now = LocalDateTime.now(); location.setSunset(now); - assert now.equals(location.getSunset()); + Assert.assertEquals(now, location.getSunset()); } @Test public void whenSetZoneOffset_thenValueIsSet() { - final Location location = new Location(33, "test"); + final Location location = Location.forValue(33, "test"); final ZoneOffset offset = ZoneOffset.UTC; location.setZoneOffset(offset); - assert offset.equals(location.getZoneOffset()); + Assert.assertEquals(offset, location.getZoneOffset()); } @Test public void whenSetCoordinate_thenValueIsSet() { - final Location location = new Location(33, "test"); - final Coordinate coordinate = new Coordinate(33.2, 64.2); + final Location location = Location.forValue(33, "test"); + final Coordinate coordinate = Coordinate.forValues(33.2, 64.2); location.setCoordinate(coordinate); - assert coordinate.equals(location.getCoordinate()); + Assert.assertEquals(coordinate, location.getCoordinate()); } @Test public void whenCallToString_thenAllIsFine() { - final Location location = new Location(44, "test"); + final Location location = Location.forValue(44, "test"); - assert !"".equals(location.toString()); + Assert.assertNotEquals("", location.toString()); - location.setCoordinate(new Coordinate(33.2, 56.3)); + location.setCoordinate(Coordinate.forValues(33.2, 56.3)); - assert !"".equals(location.toString()); + Assert.assertNotEquals("", location.toString()); location.setCountryCode("TN"); - assert !"".equals(location.toString()); + Assert.assertNotEquals("", location.toString()); + Assert.assertNotNull(location.toString()); } @Test public void whenCallHashCode_thenAllIsFine() { - final Location one = new Location(44, "test"); - final Location two = new Location(44, "test"); + final Location one = Location.forValue(44, "test"); + final Location two = Location.forValue(44, "test"); - assert one.hashCode() == two.hashCode(); + Assert.assertEquals(one.hashCode(), two.hashCode()); two.setName("112"); - assert one.hashCode() != two.hashCode(); + Assert.assertNotEquals(one.hashCode(), two.hashCode()); } @Test public void whenCheckEquality_thenAllIsFine() { - final Location one = new Location(44, "test"); - final Location two = new Location(44, "test"); + final Location one = Location.forValue(44, "test"); + final Location two = Location.forValue(44, "test"); - assert one.equals(one); - assert !one.equals(new Object()); + Assert.assertTrue(one.equals(one)); + Assert.assertFalse(one.equals(new Object())); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); two.setId(23); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); one.setId(23); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); one.setName("23"); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setName("23"); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); one.setCountryCode("11"); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setCountryCode("11"); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); final LocalDateTime now = LocalDateTime.now(); one.setSunrise(now); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setSunrise(now); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); one.setSunset(now); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setSunset(now); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); one.setZoneOffset(ZoneOffset.UTC); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setZoneOffset(ZoneOffset.UTC); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); - final Coordinate coordinate = new Coordinate(33.5, -22.4); + final Coordinate coordinate = Coordinate.forValues(33.5, -22.4); one.setCoordinate(coordinate); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setCoordinate(coordinate); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/PressureUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/PressureUnitTest.java deleted file mode 100644 index d95a581..0000000 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/PressureUnitTest.java +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2021 Alexey Zinchenko - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package com.github.prominence.openweathermap.api.model.weather; - -import com.github.prominence.openweathermap.api.model.Pressure; -import org.junit.Test; - -public class PressureUnitTest { - - @Test - public void whenCreatePressureWithArgs_thenValueIsSet() { - Pressure pressure = new Pressure(100); - assert pressure.getValue() == 100; - - assert new Pressure(0).getValue() == 0; - assert new Pressure(100).getValue() == 100; - assert new Pressure(55).getValue() == 55; - } - - @Test - public void whenCreateTwoIdenticalInstances_thenWheyAreEquals() { - Pressure one = new Pressure(22); - Pressure two = new Pressure(22); - - assert one.equals(two); - assert one.equals(one); - assert one.hashCode() == two.hashCode(); - - one.setSeaLevelValue(333); - one.setGroundLevelValue(555); - - two.setSeaLevelValue(333); - two.setGroundLevelValue(555); - - assert one.equals(two); - assert two.equals(one); - assert one.hashCode() == two.hashCode(); - } - - @Test - public void whenCreateTwoDifferentInstances_thenWheyAreNotEquals() { - Pressure one = new Pressure(5); - Pressure two = new Pressure(88); - - assert !one.equals(two); - assert !two.equals(one); - assert !one.equals(new Object()); - assert one.hashCode() != two.hashCode(); - - one = new Pressure(44); - one.setSeaLevelValue(44); - two = new Pressure(44); - two.setGroundLevelValue(22); - - assert !one.equals(two); - assert !two.equals(one); - - two.setSeaLevelValue(44); - - assert !one.equals(two); - assert !two.equals(one); - } - - @Test - public void whenSetValidValues_thenAllIsFine() { - Pressure pressure = new Pressure(14); - pressure.setValue(0); - pressure.setValue(15); - pressure.setValue(100); - - pressure.setGroundLevelValue(222); - assert pressure.getGroundLevelValue() == 222; - - pressure.setSeaLevelValue(4232); - assert pressure.getSeaLevelValue() == 4232; - } - - @Test - public void whenCallToString_thenAllIsFine() { - final String pressureString = new Pressure(44).toString(); - assert pressureString != null; - assert !"".equals(pressureString); - } - - @Test(expected = IllegalArgumentException.class) - public void whenCreatePressureByConstructorWithInvalidDataNegative_thenThrowAnException() { - new Pressure(-33); - } - - @Test(expected = IllegalArgumentException.class) - public void whenCreatePressureAndSetInvalidDataNegative_thenThrowAnException() { - Pressure pressure = new Pressure(88); - pressure.setValue(-89); - } - - @Test(expected = IllegalArgumentException.class) - public void whenSetInvalidSeaLevelPressure_thenThrowAnException() { - Pressure pressure = new Pressure(88); - pressure.setSeaLevelValue(-89); - } - - @Test(expected = IllegalArgumentException.class) - public void whenSetInvalidGroundLevelPressure_thenThrowAnException() { - Pressure pressure = new Pressure(88); - pressure.setGroundLevelValue(-223); - } -} diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/RainUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/RainUnitTest.java index 5dfd37f..f0d02c0 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/RainUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/RainUnitTest.java @@ -22,7 +22,7 @@ package com.github.prominence.openweathermap.api.model.weather; -import com.github.prominence.openweathermap.api.model.weather.Rain; +import org.junit.Assert; import org.junit.Test; public class RainUnitTest { @@ -37,39 +37,39 @@ public class RainUnitTest { @Test public void whenSetValues_thenTheyAreSet() { - final Rain snow = new Rain(null, null); + final Rain rain = new Rain(null, null); - assert snow.getOneHourRainLevel() == null; - assert snow.getThreeHourRainLevel() == null; + Assert.assertNull(rain.getOneHourRainLevel()); + Assert.assertNull(rain.getThreeHourRainLevel()); - snow.setOneHourRainLevel(33.3); - assert snow.getOneHourRainLevel() == 33.3; + rain.setOneHourRainLevel(33.3); + Assert.assertEquals(33.3, rain.getOneHourRainLevel(), 0.00001); - snow.setThreeHourRainLevel(55.5); - assert snow.getThreeHourRainLevel() == 55.5; + rain.setThreeHourRainLevel(55.5); + Assert.assertEquals(55.5, rain.getThreeHourRainLevel(), 0.00001); } @Test public void whenCallToString_thenAllIsFine() { - final Rain snow = new Rain(); + final Rain rain = new Rain(); - assert snow.toString() != null; - assert "unknown".equals(snow.toString()); + Assert.assertNotNull(rain.toString()); + Assert.assertEquals("unknown", rain.toString()); - snow.setThreeHourRainLevel(33.5); + rain.setThreeHourRainLevel(33.5); - assert snow.toString() != null; - assert !"unknown".equals(snow.toString()); + Assert.assertNotNull(rain.toString()); + Assert.assertEquals("unknown", rain.toString()); - snow.setOneHourRainLevel(22.2); + rain.setOneHourRainLevel(22.2); - assert snow.toString() != null; - assert !"unknown".equals(snow.toString()); + Assert.assertNotNull(rain.toString()); + Assert.assertEquals("unknown", rain.toString()); - snow.setThreeHourRainLevel(null); + rain.setThreeHourRainLevel(null); - assert snow.toString() != null; - assert !"unknown".equals(snow.toString()); + Assert.assertNotNull(rain.toString()); + Assert.assertEquals("unknown", rain.toString()); } @Test @@ -77,23 +77,23 @@ public class RainUnitTest { final Rain first = new Rain(); final Rain second = new Rain(); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); second.setThreeHourRainLevel(11.0); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); first.setThreeHourRainLevel(11.0); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); first.setOneHourRainLevel(333.2); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); second.setOneHourRainLevel(333.2); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); } @Test @@ -101,24 +101,24 @@ public class RainUnitTest { final Rain first = new Rain(); final Rain second = new Rain(); - assert first.equals(second); - assert first.equals(first); - assert !first.equals(new Object()); + Assert.assertTrue(first.equals(second)); + Assert.assertTrue(first.equals(first)); + Assert.assertFalse(first.equals(new Object())); first.setOneHourRainLevel(0.34); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); second.setOneHourRainLevel(0.34); - assert first.equals(second); + Assert.assertTrue(first.equals(second)); second.setThreeHourRainLevel(66.7); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); first.setThreeHourRainLevel(66.7); - assert first.equals(second); + Assert.assertTrue(first.equals(second)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/SnowUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/SnowUnitTest.java index 3364b24..e1936d0 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/SnowUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/SnowUnitTest.java @@ -22,7 +22,7 @@ package com.github.prominence.openweathermap.api.model.weather; -import com.github.prominence.openweathermap.api.model.weather.Snow; +import org.junit.Assert; import org.junit.Test; public class SnowUnitTest { @@ -39,61 +39,61 @@ public class SnowUnitTest { public void whenSetValues_thenTheyAreSet() { final Snow snow = new Snow(null, null); - assert snow.getOneHourSnowLevel() == null; - assert snow.getThreeHourSnowLevel() == null; + Assert.assertNull(snow.getOneHourSnowLevel()); + Assert.assertNull(snow.getThreeHourSnowLevel()); snow.setOneHourSnowLevel(33.3); - assert snow.getOneHourSnowLevel() == 33.3; + Assert.assertEquals(33.3, snow.getOneHourSnowLevel(), 0.00001); snow.setThreeHourSnowLevel(55.5); - assert snow.getThreeHourSnowLevel() == 55.5; + Assert.assertEquals(55.5, snow.getThreeHourSnowLevel(), 0.00001); } @Test public void whenCallToString_thenAllIsFine() { final Snow snow = new Snow(); - assert snow.toString() != null; - assert "unknown".equals(snow.toString()); + Assert.assertNotNull(snow.toString()); + Assert.assertEquals("unknown", snow.toString()); snow.setThreeHourSnowLevel(33.5); - assert snow.toString() != null; - assert !"unknown".equals(snow.toString()); + Assert.assertNotNull(snow.toString()); + Assert.assertEquals("unknown", snow.toString()); snow.setOneHourSnowLevel(22.2); - assert snow.toString() != null; - assert !"unknown".equals(snow.toString()); + Assert.assertNotNull(snow.toString()); + Assert.assertEquals("unknown", snow.toString()); snow.setThreeHourSnowLevel(null); - assert snow.toString() != null; - assert !"unknown".equals(snow.toString()); + Assert.assertNotNull(snow.toString()); + Assert.assertEquals("unknown", snow.toString()); } @Test - public void RainwhenCallHashCode_thenAllIsFine() { + public void whenCallHashCode_thenAllIsFine() { final Snow first = new Snow(); final Snow second = new Snow(); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); second.setThreeHourSnowLevel(11.0); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); first.setThreeHourSnowLevel(11.0); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); first.setOneHourSnowLevel(333.2); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); second.setOneHourSnowLevel(333.2); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); } @Test @@ -101,24 +101,24 @@ public class SnowUnitTest { final Snow first = new Snow(); final Snow second = new Snow(); - assert first.equals(second); - assert first.equals(first); - assert !first.equals(new Object()); + Assert.assertTrue(first.equals(second)); + Assert.assertTrue(first.equals(first)); + Assert.assertFalse(first.equals(new Object())); first.setOneHourSnowLevel(0.34); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); second.setOneHourSnowLevel(0.34); - assert first.equals(second); + Assert.assertTrue(first.equals(second)); second.setThreeHourSnowLevel(66.7); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); first.setThreeHourSnowLevel(66.7); - assert first.equals(second); + Assert.assertTrue(first.equals(second)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/TemperatureUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/TemperatureUnitTest.java index c9396b4..2a0ea75 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/TemperatureUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/TemperatureUnitTest.java @@ -22,122 +22,122 @@ package com.github.prominence.openweathermap.api.model.weather; +import org.junit.Assert; import org.junit.Test; public class TemperatureUnitTest { @Test public void whenCreateObjectWithValidArgs_thenObjectIsCreated() { - new Temperature(22.2, "K"); + Temperature.forValue(22.2, "K"); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithEmptyUnit_thenThrowAnException() { - new Temperature(22.2, null); + Temperature.forValue(22.2, null); } @Test public void whenSetValue_thenAllIsFine() { - final Temperature temperature = new Temperature(22.2, "K"); + final Temperature temperature = Temperature.forValue(22.2, "K"); temperature.setValue(55.44); - assert temperature.getValue() == 55.44; + Assert.assertEquals(55.44, temperature.getValue(), 0.00001); } @Test public void whenSetMaximumTemperature_thenAllIsOk() { - final Temperature temperature = new Temperature(22.2, "K"); + final Temperature temperature = Temperature.forValue(22.2, "K"); temperature.setMaxTemperature(44.4); - assert temperature.getMaxTemperature() == 44.4; + Assert.assertEquals(44.4, temperature.getMaxTemperature(), 0.00001); temperature.setMaxTemperature(null); - assert temperature.getMaxTemperature() == null; + Assert.assertNull(temperature.getMaxTemperature()); } @Test public void whenSetMinimumTemperature_thenAllIsOk() { - final Temperature temperature = new Temperature(22.2, "K"); + final Temperature temperature = Temperature.forValue(22.2, "K"); temperature.setMinTemperature(33.2); - assert temperature.getMinTemperature() == 33.2; + Assert.assertEquals(33.2, temperature.getMinTemperature(), 0.00001); temperature.setMinTemperature(null); - assert temperature.getMinTemperature() == null; + Assert.assertNull(temperature.getMinTemperature()); } @Test public void whenSetNonNullUnit_thenAllIsOk() { - final Temperature temperature = new Temperature(22.2, "K"); + final Temperature temperature = Temperature.forValue(22.2, "K"); temperature.setUnit("test"); - assert "test".equals(temperature.getUnit()); + Assert.assertTrue("test".equals(temperature.getUnit())); } @Test(expected = IllegalArgumentException.class) public void whenSetNullUnit_thenThrowAnException() { - final Temperature temperature = new Temperature(22.2, "K"); + final Temperature temperature = Temperature.forValue(22.2, "K"); temperature.setUnit(null); } @Test public void whenCallToString_thenAllIsFine() { - final Temperature temperature = new Temperature(22.2, "K"); + final Temperature temperature = Temperature.forValue(22.2, "K"); - assert !"".equals(temperature.toString()); + Assert.assertNotEquals("", temperature.toString()); temperature.setMinTemperature(11.2); - assert !"".equals(temperature.toString()); + Assert.assertNotEquals("", temperature.toString()); temperature.setMaxTemperature(44.3); - assert !"".equals(temperature.toString()); + Assert.assertNotEquals("", temperature.toString()); } @Test public void whenCallHashCode_thenAllIsFine() { - final Temperature one = new Temperature(22.2, "K"); - final Temperature two = new Temperature(22.2, "K"); + final Temperature one = Temperature.forValue(22.2, "K"); + final Temperature two = Temperature.forValue(22.2, "K"); - assert one.hashCode() == two.hashCode(); + Assert.assertEquals(one.hashCode(), two.hashCode()); } @Test public void whenCheckEquality_thenAllIsFine() { - final Temperature one = new Temperature(22.2, "K"); - final Temperature two = new Temperature(21.2, "K"); + final Temperature one = Temperature.forValue(22.2, "K"); + final Temperature two = Temperature.forValue(21.2, "K"); - assert one.equals(one); - assert !one.equals(new Object()); - - assert !one.equals(two); + Assert.assertTrue(one.equals(one)); + Assert.assertFalse(one.equals(new Object())); + Assert.assertFalse(one.equals(two)); one.setValue(21.2); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); one.setMaxTemperature(33.56); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setMaxTemperature(33.56); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); one.setMinTemperature(11.54); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setMinTemperature(11.54); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); two.setUnit("U"); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/WeatherUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/WeatherUnitTest.java index 1932956..d9934c6 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/WeatherUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/WeatherUnitTest.java @@ -22,12 +22,10 @@ package com.github.prominence.openweathermap.api.model.weather; +import com.github.prominence.openweathermap.api.model.AtmosphericPressure; import com.github.prominence.openweathermap.api.model.Clouds; import com.github.prominence.openweathermap.api.model.Humidity; -import com.github.prominence.openweathermap.api.model.Location; -import com.github.prominence.openweathermap.api.model.Pressure; -import com.github.prominence.openweathermap.api.model.weather.*; -import com.github.prominence.openweathermap.api.model.weather.Temperature; +import org.junit.Assert; import org.junit.Test; import java.time.LocalDateTime; @@ -36,280 +34,294 @@ public class WeatherUnitTest { @Test public void whenCreateObjectWithValidArgs_thenObjectIsCreated() { - new Weather("state", "desc"); + Weather.forValue("state", "desc"); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithoutState_thenThrowAnException() { - new Weather(null, "desc"); + Weather.forValue(null, "desc"); } @Test(expected = IllegalArgumentException.class) public void whenCreateObjectWithoutDescription_thenThrowAnException() { - new Weather("state", null); + Weather.forValue("state", null); } @Test public void whenSetState_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); weather.setState("test"); - assert "test".equals(weather.getState()); + Assert.assertEquals("test", weather.getState()); } @Test(expected = IllegalArgumentException.class) public void whenSetNullState_thenThrowAnException() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); weather.setState(null); } @Test public void whenSetDescription_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); weather.setDescription("test"); - assert "test".equals(weather.getDescription()); + Assert.assertEquals("test", weather.getDescription()); } @Test(expected = IllegalArgumentException.class) public void whenSetNullDescription_thenThrowAnException() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); weather.setDescription(null); } @Test public void whenSetIconUrl_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); weather.setWeatherIconUrl("test"); - assert "test".equals(weather.getWeatherIconUrl()); + Assert.assertEquals("test", weather.getWeatherIconUrl()); } @Test public void whenSetRequestedOn_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); final LocalDateTime now = LocalDateTime.now(); weather.setRequestedOn(now); - assert now.equals(weather.getRequestedOn()); + Assert.assertEquals(now, weather.getRequestedOn()); } @Test public void whenSetTemperature_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); - final Temperature temperature = new Temperature(22.3, "a"); + final Weather weather = Weather.forValue("state", "desc"); + final Temperature temperature = Temperature.forValue(22.3, "a"); weather.setTemperature(temperature); - assert temperature.equals(weather.getTemperature()); + Assert.assertEquals(temperature, weather.getTemperature()); } @Test public void whenSetPressure_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); - final Pressure pressure = new Pressure(33.2); - weather.setPressure(pressure); + final Weather weather = Weather.forValue("state", "desc"); + final AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(33.2); + weather.setAtmosphericPressure(atmosphericPressure); - assert pressure.equals(weather.getPressure()); + Assert.assertEquals(atmosphericPressure, weather.getAtmosphericPressure()); } @Test public void whenSetHumidity_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); - final Humidity humidity = new Humidity((byte) 44); + final Weather weather = Weather.forValue("state", "desc"); + final Humidity humidity = Humidity.forValue((byte) 44); weather.setHumidity(humidity); - assert humidity.equals(weather.getHumidity()); + Assert.assertEquals(humidity, weather.getHumidity()); } @Test public void whenSetWind_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); - final Wind wind = new Wind(22.2, "a"); + final Weather weather = Weather.forValue("state", "desc"); + final Wind wind = Wind.forValue(22.2, "a"); weather.setWind(wind); - assert wind.equals(weather.getWind()); + Assert.assertEquals(wind, weather.getWind()); } @Test public void whenSetRain_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); final Rain rain = new Rain(); weather.setRain(rain); - assert rain.equals(weather.getRain()); + Assert.assertEquals(rain, weather.getRain()); } @Test public void whenSetSnow_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); + final Weather weather = Weather.forValue("state", "desc"); final Snow snow = new Snow(); weather.setSnow(snow); - assert snow.equals(weather.getSnow()); + Assert.assertEquals(snow, weather.getSnow()); } @Test public void whenSetClouds_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); - final Clouds clouds = new Clouds((byte) 33); + final Weather weather = Weather.forValue("state", "desc"); + final Clouds clouds = Clouds.forValue((byte) 33); weather.setClouds(clouds); - assert clouds.equals(weather.getClouds()); + Assert.assertEquals(clouds, weather.getClouds()); } @Test public void whenSetLocation_thenValueIsSet() { - final Weather weather = new Weather("state", "desc"); - final Location location = new Location(22, "asd"); + final Weather weather = Weather.forValue("state", "desc"); + final Location location = Location.forValue(22, "asd"); weather.setLocation(location); - assert location.equals(weather.getLocation()); + Assert.assertEquals(location, weather.getLocation()); } @Test public void whenCallToString_thenAllIsFine() { - final Weather weather = new Weather("state", "desc"); - final Location location = new Location(12312, "asd"); - final Temperature temperature = new Temperature(33.2, "asd"); - final Pressure pressure = new Pressure(44.4); - final Clouds clouds = new Clouds((byte) 55); + final Weather weather = Weather.forValue("state", "desc"); + final Location location = Location.forValue(12312, "asd"); + final Temperature temperature = Temperature.forValue(33.2, "asd"); + final AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(44.4); + final Clouds clouds = Clouds.forValue((byte) 55); final Rain rain = new Rain(33.2, null); final Snow snow = new Snow(33.1, null); - assert !"".equals(weather.toString()); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); + weather.setLocation(location); - assert !"".equals(weather.toString()); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); + location.setCountryCode("3d"); - assert !"".equals(weather.toString()); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); + weather.setTemperature(temperature); - assert !"".equals(weather.toString()); - weather.setPressure(pressure); - assert !"".equals(weather.toString()); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); + + weather.setAtmosphericPressure(atmosphericPressure); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); + weather.setClouds(clouds); - assert !"".equals(weather.toString()); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); + weather.setRain(rain); - assert !"".equals(weather.toString()); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); + weather.setSnow(snow); - assert !"".equals(weather.toString()); + Assert.assertNotEquals("", weather.toString()); + Assert.assertNotNull(weather.toString()); } @Test public void whenCallHashCode_thenAllIsFine() { - final Weather one = new Weather("state", "desc"); - final Weather two = new Weather("state", "desc"); + final Weather one = Weather.forValue("state", "desc"); + final Weather two = Weather.forValue("state", "desc"); - assert one.hashCode() == two.hashCode(); + Assert.assertEquals(one.hashCode(), two.hashCode()); two.setDescription("112"); - assert one.hashCode() != two.hashCode(); + Assert.assertEquals(one.hashCode(), two.hashCode()); } @Test public void whenCheckEquality_thenAllIsFine() { - final Weather one = new Weather("state", "desc"); - final Weather two = new Weather("state1", "desc1"); + final Weather one = Weather.forValue("state", "desc"); + final Weather two = Weather.forValue("state1", "desc1"); - assert one.equals(one); - assert !one.equals(new Object()); - - assert !one.equals(two); + Assert.assertTrue(one.equals(one)); + Assert.assertFalse(one.equals(new Object())); + Assert.assertFalse(one.equals(two)); two.setState("state"); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setDescription("desc"); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); one.setWeatherIconUrl("1"); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setWeatherIconUrl("1"); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); final LocalDateTime now = LocalDateTime.now(); one.setRequestedOn(now); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setRequestedOn(now); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); - final Temperature temperature = new Temperature(33.2, "as"); + final Temperature temperature = Temperature.forValue(33.2, "as"); one.setTemperature(temperature); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setTemperature(temperature); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); - final Pressure pressure = new Pressure(33.33); - one.setPressure(pressure); + final AtmosphericPressure atmosphericPressure = AtmosphericPressure.forValue(33.33); + one.setAtmosphericPressure(atmosphericPressure); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); - two.setPressure(pressure); + two.setAtmosphericPressure(atmosphericPressure); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); - final Humidity humidity = new Humidity((byte) 33); + final Humidity humidity = Humidity.forValue((byte) 33); one.setHumidity(humidity); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setHumidity(humidity); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); - final Wind wind = new Wind(33.6, "asd"); + final Wind wind = Wind.forValue(33.6, "asd"); one.setWind(wind); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setWind(wind); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); final Rain rain = new Rain(); one.setRain(rain); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setRain(rain); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); final Snow snow = new Snow(); one.setSnow(snow); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setSnow(snow); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); - final Clouds clouds = new Clouds((byte) 33); + final Clouds clouds = Clouds.forValue((byte) 33); one.setClouds(clouds); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setClouds(clouds); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); - final Location location = new Location(231, "asda"); + final Location location = Location.forValue(231, "asda"); one.setLocation(location); - assert !one.equals(two); + Assert.assertFalse(one.equals(two)); two.setLocation(location); - assert one.equals(two); + Assert.assertTrue(one.equals(two)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/model/weather/WindUnitTest.java b/src/test/java/com/github/prominence/openweathermap/api/model/weather/WindUnitTest.java index 0d772a7..e97d934 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/model/weather/WindUnitTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/model/weather/WindUnitTest.java @@ -22,159 +22,158 @@ package com.github.prominence.openweathermap.api.model.weather; -import com.github.prominence.openweathermap.api.model.forecast.Wind; +import org.junit.Assert; import org.junit.Test; public class WindUnitTest { @Test public void whenCreateWindWithValidArgs_thenValueIsSet() { - assert new Wind(44, "ms").getSpeed() == 44.0; + Assert.assertEquals(44.0, Wind.forValue(44, "ms").getSpeed(), 0.00001); } @Test(expected = IllegalArgumentException.class) public void whenCreateWindWithInvalidSpeedArg_thenThrowAnException() { - new Wind(-21, "a"); + Wind.forValue(-21, "a"); } @Test(expected = IllegalArgumentException.class) public void whenCreateWindWithInvalidUnitArg_thenThrowAnException() { - new Wind(342, null); + Wind.forValue(342, null); } @Test public void whenSetValidSpeed_thenValueIsSet() { - final Wind wind = new Wind(33, "as"); + final Wind wind = Wind.forValue(33, "as"); - assert wind.getSpeed() == 33; + Assert.assertEquals(33, wind.getSpeed(), 0.00001); wind.setSpeed(0); - assert wind.getSpeed() == 0; + Assert.assertEquals(0, wind.getSpeed(), 0.00001); wind.setSpeed(3656); - assert wind.getSpeed() == 3656; + Assert.assertEquals(3656, wind.getSpeed(), 0.00001); } @Test(expected = IllegalArgumentException.class) public void whenSetInvalidSpeedBelow0_thenThrowAnException() { - final Wind wind = new Wind(33, "as"); + final Wind wind = Wind.forValue(33, "as"); - assert wind.getSpeed() == 33; + Assert.assertEquals(33, wind.getSpeed(), 0.00001); wind.setSpeed(-22); - - assert false; } @Test public void whenSetValidDegrees_thenValueIsSet() { - final Wind wind = new Wind(33, "as"); + final Wind wind = Wind.forValue(33, "as"); - assert wind.getDegrees() == null; + Assert.assertNull(wind.getDegrees()); wind.setDegrees(22); - assert wind.getDegrees() == 22; + Assert.assertEquals(22, wind.getDegrees(), 0.00001); wind.setDegrees(0); - assert wind.getDegrees() == 0; + Assert.assertEquals(0, wind.getDegrees(), 0.00001); wind.setDegrees(360); - assert wind.getDegrees() == 360; + Assert.assertEquals(360, wind.getDegrees(), 0.00001); } @Test(expected = IllegalArgumentException.class) public void whenSetInvalidDegreesBelow0_thenThrowAnException() { - final Wind wind = new Wind(33, "as"); + final Wind wind = Wind.forValue(33, "as"); wind.setDegrees(-32); } @Test(expected = IllegalArgumentException.class) public void whenSetInvalidDegreesAbove360_thenThrowAnException() { - final Wind wind = new Wind(33, "as"); + final Wind wind = Wind.forValue(33, "as"); wind.setDegrees(378); } @Test public void whenSetNonNullUnit_thenValueIsSet() { - final Wind wind = new Wind(33, "as"); + final Wind wind = Wind.forValue(33, "as"); - assert "as".equals(wind.getUnit()); + Assert.assertEquals(wind.getUnit(), "as"); wind.setUnit("myUnit"); - assert "myUnit".equals(wind.getUnit()); + Assert.assertEquals(wind.getUnit(), "myUnit"); } @Test(expected = IllegalArgumentException.class) public void whenSetNullUnit_thenThrowAnException() { - final Wind wind = new Wind(33, "as"); + final Wind wind = Wind.forValue(33, "as"); wind.setUnit(null); } @Test public void whenCallToString_thenAllIsFine() { - final Wind wind = new Wind(302, "a"); + final Wind wind = Wind.forValue(302, "a"); - assert wind.toString() != null; + Assert.assertNotNull(wind.toString()); wind.setDegrees(22); - assert wind.toString() != null && !"".equals(wind.toString()); + Assert.assertNotNull(wind.toString()); + Assert.assertNotEquals("", wind.toString()); } @Test - public void RainwhenCallHashCode_thenAllIsFine() { - final Wind first = new Wind(22, "a"); - final Wind second = new Wind(22, "b"); + public void whenCallHashCode_thenAllIsFine() { + final Wind first = Wind.forValue(22, "a"); + final Wind second = Wind.forValue(22, "b"); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); second.setUnit("a"); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); second.setSpeed(33); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); first.setSpeed(333); - assert first.hashCode() != second.hashCode(); + Assert.assertNotEquals(first.hashCode(), second.hashCode()); first.setSpeed(33); - assert first.hashCode() == second.hashCode(); + Assert.assertEquals(first.hashCode(), second.hashCode()); } @Test public void whenCheckEquality_thenAllIsFine() { - final Wind first = new Wind(11, "a"); - final Wind second = new Wind(11, "a"); + final Wind first = Wind.forValue(11, "a"); + final Wind second = Wind.forValue(11, "a"); - assert first.equals(second); - assert first.equals(first); - assert !first.equals(new Object()); + Assert.assertTrue(first.equals(second)); + Assert.assertTrue(first.equals(first)); + Assert.assertFalse(first.equals(new Object())); first.setDegrees(34); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); second.setDegrees(34); - assert first.equals(second); + Assert.assertTrue(first.equals(second)); second.setUnit("v"); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); first.setUnit("v"); first.setSpeed(second.getSpeed() + 4); - assert !first.equals(second); + Assert.assertFalse(first.equals(second)); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastIntegrationTest.java b/src/test/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastIntegrationTest.java index af0d2ce..0f0c56f 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastIntegrationTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/request/forecast/free/FiveDayThreeHourStepForecastIntegrationTest.java @@ -26,12 +26,13 @@ import com.github.prominence.openweathermap.api.ApiTest; import com.github.prominence.openweathermap.api.enums.Language; import com.github.prominence.openweathermap.api.enums.UnitSystem; import com.github.prominence.openweathermap.api.model.forecast.Forecast; +import org.junit.Assert; import org.junit.Test; public class FiveDayThreeHourStepForecastIntegrationTest extends ApiTest { @Test - public void whenGetTest_thenReturnNotNull() { + public void whenGetJavaObject_thenReturnNotNull() { final Forecast forecast = getClient() .forecast5Day3HourStep() .byCityName("Minsk") @@ -41,7 +42,20 @@ public class FiveDayThreeHourStepForecastIntegrationTest extends ApiTest { .retrieve() .asJava(); - assert forecast != null; + Assert.assertNotNull(forecast); + System.out.println(forecast); + } + + @Test + public void whenGetJavaObject_thenFieldsAreFilled() { + final Forecast forecast = getClient() + .forecast5Day3HourStep() + .byCityName("London") + .language(Language.ENGLISH) + .retrieve() + .asJava(); + + Assert.assertNotNull(forecast); System.out.println(forecast); } } diff --git a/src/test/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherIntegrationTest.java b/src/test/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherIntegrationTest.java index 68121a4..f6610eb 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherIntegrationTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/request/weather/multiple/MultipleResultCurrentWeatherIntegrationTest.java @@ -31,6 +31,7 @@ import com.github.prominence.openweathermap.api.model.Coordinate; import com.github.prominence.openweathermap.api.model.CoordinateRectangle; import com.github.prominence.openweathermap.api.model.weather.Weather; import com.github.prominence.openweathermap.api.OpenWeatherMapClient; +import org.junit.Assert; import org.junit.Test; import java.util.List; @@ -44,14 +45,14 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final List weatherList = getClient() .currentWeather() .multiple() - .byRectangle(new CoordinateRectangle(12, 32, 15, 37), 10) + .byRectangle(CoordinateRectangle.forValues(12, 32, 15, 37), 10) .language(Language.ROMANIAN) .unitSystem(UnitSystem.METRIC) .retrieve() .asJava(); - assert weatherList != null; - assert weatherList.size() > 0; + Assert.assertNotNull(weatherList); + Assert.assertTrue(weatherList.size() > 0); System.out.println(weatherList); } @@ -60,14 +61,14 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final List weatherList = getClient() .currentWeather() .multiple() - .byRectangle(new CoordinateRectangle(12, 32, 15, 37), 10, true) + .byRectangle(CoordinateRectangle.forValues(12, 32, 15, 37), 10, true) .language(Language.ROMANIAN) .unitSystem(UnitSystem.METRIC) .retrieve() .asJava(); - assert weatherList != null; - assert weatherList.size() > 0; + Assert.assertNotNull(weatherList); + Assert.assertTrue(weatherList.size() > 0); System.out.println(weatherList); } @@ -76,14 +77,14 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final List weatherList = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieve() .asJava(); - assert weatherList != null; - assert weatherList.size() > 0; + Assert.assertNotNull(weatherList); + Assert.assertTrue(weatherList.size() > 0); System.out.println(weatherList); } @@ -92,14 +93,14 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final List weatherList = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10, true) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10, true) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieve() .asJava(); - assert weatherList != null; - assert weatherList.size() > 0; + Assert.assertNotNull(weatherList); + Assert.assertTrue(weatherList.size() > 0); System.out.println(weatherList); } @@ -108,13 +109,13 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final String weather = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieve() .asJSON(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -123,13 +124,13 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final String weather = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieve() .asXML(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -138,13 +139,13 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final String weather = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieve() .asHTML(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -153,15 +154,15 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final CompletableFuture> weatherListFuture = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10, true) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10, true) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieveAsync() .asJava(); - assert weatherListFuture != null; + Assert.assertNotNull(weatherListFuture); List weatherList = weatherListFuture.get(); - assert weatherList.size() > 0; + Assert.assertTrue(weatherList.size() > 0); System.out.println(weatherList); } @@ -170,13 +171,13 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final CompletableFuture weatherFuture = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10, true) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10, true) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieveAsync() .asXML(); - assert weatherFuture != null; + Assert.assertNotNull(weatherFuture); System.out.println(weatherFuture.get()); } @@ -185,13 +186,13 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final CompletableFuture weatherFuture = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10, true) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10, true) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieveAsync() .asJSON(); - assert weatherFuture != null; + Assert.assertNotNull(weatherFuture); System.out.println(weatherFuture.get()); } @@ -200,13 +201,13 @@ public class MultipleResultCurrentWeatherIntegrationTest extends ApiTest { final CompletableFuture weatherFuture = getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(55.5, 37.5), 10, true) + .byCitiesInCycle(Coordinate.forValues(55.5, 37.5), 10, true) .language(Language.GERMAN) .unitSystem(UnitSystem.IMPERIAL) .retrieveAsync() .asHTML(); - assert weatherFuture != null; + Assert.assertNotNull(weatherFuture); System.out.println(weatherFuture.get()); } diff --git a/src/test/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherIntegrationTest.java b/src/test/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherIntegrationTest.java index 0b24acb..d7e088d 100644 --- a/src/test/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherIntegrationTest.java +++ b/src/test/java/com/github/prominence/openweathermap/api/request/weather/single/SingleResultCurrentWeatherIntegrationTest.java @@ -30,6 +30,7 @@ import com.github.prominence.openweathermap.api.exception.NoDataFoundException; import com.github.prominence.openweathermap.api.model.Coordinate; import com.github.prominence.openweathermap.api.model.weather.Weather; import com.github.prominence.openweathermap.api.OpenWeatherMapClient; +import org.junit.Assert; import org.junit.Test; import java.util.concurrent.CompletableFuture; @@ -42,12 +43,12 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { final Weather weather = getClient() .currentWeather() .single() - .byCoordinate(new Coordinate(5, 5)) + .byCoordinate(Coordinate.forValues(5, 5)) .unitSystem(UnitSystem.METRIC) .retrieve() .asJava(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -61,7 +62,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieve() .asJava(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -76,7 +77,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieve() .asJava(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -91,7 +92,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieve() .asJava(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -106,7 +107,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieve() .asJava(); - assert weather != null; + Assert.assertNotNull(weather); System.out.println(weather); } @@ -121,7 +122,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieve() .asJSON(); - assert weatherJson != null; + Assert.assertNotNull(weatherJson); System.out.println(weatherJson); } @@ -136,7 +137,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieve() .asXML(); - assert weatherXml != null; + Assert.assertNotNull(weatherXml); System.out.println(weatherXml); } @@ -151,7 +152,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieve() .asHTML(); - assert weatherHtml != null; + Assert.assertNotNull(weatherHtml); System.out.println(weatherHtml); } @@ -166,7 +167,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieveAsync() .asXML(); - assert weatherXmlFuture != null; + Assert.assertNotNull(weatherXmlFuture); System.out.println(weatherXmlFuture.get()); } @@ -181,7 +182,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieveAsync() .asJava(); - assert weatherFuture != null; + Assert.assertNotNull(weatherFuture); System.out.println(weatherFuture.get()); } @@ -196,7 +197,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieveAsync() .asJSON(); - assert weatherFuture != null; + Assert.assertNotNull(weatherFuture); System.out.println(weatherFuture.get()); } @@ -211,7 +212,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { .retrieveAsync() .asHTML(); - assert weatherFuture != null; + Assert.assertNotNull(weatherFuture); System.out.println(weatherFuture.get()); } @@ -221,7 +222,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { client .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(34.53, 66.74), 10) + .byCitiesInCycle(Coordinate.forValues(34.53, 66.74), 10) .retrieve() .asJSON(); } @@ -231,7 +232,7 @@ public class SingleResultCurrentWeatherIntegrationTest extends ApiTest { getClient() .currentWeather() .multiple() - .byCitiesInCycle(new Coordinate(90.00, 66.74), 10) + .byCitiesInCycle(Coordinate.forValues(90.00, 66.74), 10) .retrieve() .asJava(); }