From d271a83d88ce4a5ef81fcf78a8e2aaf201e1b81b Mon Sep 17 00:00:00 2001 From: Eric Scott Date: Wed, 1 Nov 2023 15:30:03 -0400 Subject: [PATCH 1/7] add tests for end dates being correct --- .../hueto/az01/2023-10-10T00-00/P20D.json | 34 +++++++++++++++++++ tests/testthat/test-az_heat.R | 10 ++++++ 2 files changed, 44 insertions(+) create mode 100644 tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json diff --git a/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json b/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json new file mode 100644 index 0000000..b7bcf07 --- /dev/null +++ b/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json @@ -0,0 +1,34 @@ +{ + "a": "TUC", + "data": [ + { + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 275.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 0.0, + "chill_hours_68F_sum": 275.0, + "chill_hours_7C_sum": 0.0, + "datetime_last": "2023-10-29", + "eto_azmet_in": 0.17, + "eto_azmet_in_sum": 3.6, + "eto_pen_mon_in": 0.12, + "eto_pen_mon_in_sum": 2.83, + "heat_units_45F_sum": 538.9, + "heat_units_50F_sum": 439.4, + "heat_units_55F_sum": 343.0, + "heat_units_9455F_sum": 367.0, + "meta_station_id": "az01", + "meta_station_name": "Tucson", + "precip_total_in": 0.0, + "precip_total_in_sum": 0.66 + } + ], + "errors": [ + + ], + "i": "P20D", + "l": "az01", + "n": "Tucson", + "s": "2023-10-10T00:00", + "t": "hueto" +} diff --git a/tests/testthat/test-az_heat.R b/tests/testthat/test-az_heat.R index fd2e9d8..6a13590 100644 --- a/tests/testthat/test-az_heat.R +++ b/tests/testthat/test-az_heat.R @@ -18,6 +18,15 @@ test_that("az_heat() returns only one row per station even with dates", { expect_equal(nrow(res_start), 1) }) +test_that("start and end dates interpreted correctly", { + skip_if_offline() + skip_if_not(ping_service()) + with_mock_dir("heat_start_end", { + res <- az_heat(station_id = 1, start_date = "2023-10-10", end_date = "2023-10-30") + }) + expect_equal(res$datetime_last, lubridate::ymd("2023-10-30")) +}) + test_that("end_date can be specified without start_date", { skip_if_offline() skip_if_not(ping_service()) @@ -26,6 +35,7 @@ test_that("end_date can be specified without start_date", { res_end <- az_heat(station_id = 1, end_date = end) }) expect_s3_class(res_end, "data.frame") + expect_equal(res_end$datetime_last, lubridate::ymd("2022-09-27")) }) test_that("works with station_id as a vector", { From 0124d2615ceba5477988f7ecb539bff6f11c7026 Mon Sep 17 00:00:00 2001 From: Eric Scott Date: Wed, 1 Nov 2023 16:40:25 -0400 Subject: [PATCH 2/7] tests --- .../hueto/default/default/default.json | 798 ++++++++++++------ .../heat_end/hueto/az01/default/default.json | 27 +- .../heat_end/hueto/az02/default/default.json | 34 + .../2100-01-01T00-00/{P1D.json => P2D.json} | 2 +- .../hueto/az01/2022-09-20T00-00/P7D.json | 27 - .../hueto/az01/2022-09-20T00-00/P8D.json | 34 + .../hueto/az01/2023-10-10T00-00/P20D.json | 34 - .../hueto/az01/2023-10-10T00-00/P21D.json | 34 + .../hueto/az09/default/default.json | 27 +- .../hueto/az01/default/default.json | 27 +- .../hueto/az02/default/default.json | 27 +- tests/testthat/test-az_heat.R | 16 +- 12 files changed, 700 insertions(+), 387 deletions(-) create mode 100644 tests/testthat/heat_end/hueto/az02/default/default.json rename tests/testthat/heat_nodata/hueto/default/2100-01-01T00-00/{P1D.json => P2D.json} (87%) delete mode 100644 tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P7D.json create mode 100644 tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P8D.json delete mode 100644 tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json create mode 100644 tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P21D.json diff --git a/tests/testthat/heat_default/hueto/default/default/default.json b/tests/testthat/heat_default/hueto/default/default/default.json index 0506d62..9cd6aae 100644 --- a/tests/testthat/heat_default/hueto/default/default/default.json +++ b/tests/testthat/heat_default/hueto/default/default/default.json @@ -1,396 +1,634 @@ { "data": [ { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.17", - "eto_azmet_in_sum": 5.230000000000001, - "eto_pen_mon_in": "0.14", - "eto_pen_mon_in_sum": 4.75, - "heat_units_45F_sum": 334.0, - "heat_units_50F_sum": 193.99999999999997, - "heat_units_55F_sum": 97.29999999999997, + "chill_hours_0C_sum": 38.0, + "chill_hours_20C_sum": 3765.0, + "chill_hours_32F_sum": 38.0, + "chill_hours_45F_sum": 746.0, + "chill_hours_68F_sum": 3765.0, + "chill_hours_7C_sum": 746.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.16, + "eto_azmet_in_sum": 72.69, + "eto_pen_mon_in": 0.13, + "eto_pen_mon_in_sum": 66.44, + "heat_units_45F_sum": 7015.7, + "heat_units_50F_sum": 5708.6, + "heat_units_55F_sum": 4516.6, + "heat_units_9455F_sum": 4941.6, "meta_station_id": "az07", "meta_station_name": "Aguila", - "precip_total_in": "0.00", - "precip_total_in_sum": 2.9400000000000004 + "precip_total_in": 0.0, + "precip_total_in_sum": 7.11 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.06", - "eto_azmet_in_sum": 5.1000000000000005, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 4.390000000000001, - "heat_units_45F_sum": 221.50000000000003, - "heat_units_50F_sum": 125.19999999999999, - "heat_units_55F_sum": 61.1, + "chill_hours_0C_sum": 319.0, + "chill_hours_20C_sum": 3143.0, + "chill_hours_32F_sum": 319.0, + "chill_hours_45F_sum": 1215.0, + "chill_hours_68F_sum": 3143.0, + "chill_hours_7C_sum": 1215.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.19, + "eto_azmet_in_sum": 64.69, + "eto_pen_mon_in": 0.18, + "eto_pen_mon_in_sum": 58.67, + "heat_units_45F_sum": 5911.6, + "heat_units_50F_sum": 4728.9, + "heat_units_55F_sum": 3670.4, + "heat_units_9455F_sum": 3898.7, "meta_station_id": "az09", "meta_station_name": "Bonita", - "precip_total_in": "0.02", - "precip_total_in_sum": 1.9000000000000004 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.62 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.09", - "eto_azmet_in_sum": 5.23, - "eto_pen_mon_in": "0.11", - "eto_pen_mon_in_sum": 4.540000000000001, - "heat_units_45F_sum": 272.09999999999997, - "heat_units_50F_sum": 156.90000000000006, - "heat_units_55F_sum": 79.80000000000001, + "chill_hours_0C_sum": 189.0, + "chill_hours_20C_sum": 3592.0, + "chill_hours_32F_sum": 189.0, + "chill_hours_45F_sum": 902.0, + "chill_hours_68F_sum": 3592.0, + "chill_hours_7C_sum": 902.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.16, + "eto_azmet_in_sum": 66.07, + "eto_pen_mon_in": 0.12, + "eto_pen_mon_in_sum": 60.71, + "heat_units_45F_sum": 6568.4, + "heat_units_50F_sum": 5295.4, + "heat_units_55F_sum": 4138.2, + "heat_units_9455F_sum": 4421.8, "meta_station_id": "az33", "meta_station_name": "Bowie", - "precip_total_in": "0.08", - "precip_total_in_sum": 0.9800000000000001 + "precip_total_in": 0.0, + "precip_total_in_sum": 4.93 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.12", - "eto_azmet_in_sum": 5.2700000000000005, - "eto_pen_mon_in": "0.12", - "eto_pen_mon_in_sum": 4.940000000000002, - "heat_units_45F_sum": 457.5999999999999, - "heat_units_50F_sum": 288.80000000000007, - "heat_units_55F_sum": 160.49999999999994, + "chill_hours_0C_sum": 13.0, + "chill_hours_20C_sum": 4351.0, + "chill_hours_32F_sum": 13.0, + "chill_hours_45F_sum": 446.0, + "chill_hours_68F_sum": 4351.0, + "chill_hours_7C_sum": 446.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.21, + "eto_azmet_in_sum": 72.17, + "eto_pen_mon_in": 0.19, + "eto_pen_mon_in_sum": 67.01, + "heat_units_45F_sum": 7997.0, + "heat_units_50F_sum": 6620.3, + "heat_units_55F_sum": 5326.7, + "heat_units_9455F_sum": 5928.8, "meta_station_id": "az26", "meta_station_name": "Buckeye", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.23 + "precip_total_in": 0.0, + "precip_total_in_sum": 2.8 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.06", - "eto_azmet_in_sum": 5.36, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 4.560000000000001, - "heat_units_45F_sum": 413.6, - "heat_units_50F_sum": 264.7, - "heat_units_55F_sum": 151.2, + "chill_hours_0C_sum": 55.0, + "chill_hours_20C_sum": 4054.0, + "chill_hours_32F_sum": 55.0, + "chill_hours_45F_sum": 688.0, + "chill_hours_68F_sum": 4054.0, + "chill_hours_7C_sum": 688.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.28, + "eto_azmet_in_sum": 73.92, + "eto_pen_mon_in": 0.28, + "eto_pen_mon_in_sum": 67.57, + "heat_units_45F_sum": 7510.6, + "heat_units_50F_sum": 6187.3, + "heat_units_55F_sum": 4953.1, + "heat_units_9455F_sum": 5501.4, "meta_station_id": "az05", "meta_station_name": "Coolidge", - "precip_total_in": "0.14", - "precip_total_in_sum": 2.46 + "precip_total_in": 0.0, + "precip_total_in_sum": 5.38 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.06", - "eto_azmet_in_sum": 4.760000000000001, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 3.8800000000000003, - "heat_units_45F_sum": 466.49999999999983, - "heat_units_50F_sum": 286.99999999999994, - "heat_units_55F_sum": 156.99999999999997, + "chill_hours_0C_sum": 3.0, + "chill_hours_20C_sum": 4298.0, + "chill_hours_32F_sum": 3.0, + "chill_hours_45F_sum": 375.0, + "chill_hours_68F_sum": 4298.0, + "chill_hours_7C_sum": 375.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.16, + "eto_azmet_in_sum": 66.39, + "eto_pen_mon_in": 0.11, + "eto_pen_mon_in_sum": 55.56, + "heat_units_45F_sum": 7754.5, + "heat_units_50F_sum": 6376.5, + "heat_units_55F_sum": 5097.0, + "heat_units_9455F_sum": 5575.0, "meta_station_id": "az27", "meta_station_name": "Desert Ridge", - "precip_total_in": "0.01", - "precip_total_in_sum": 2.1499999999999995 + "precip_total_in": 0.0, + "precip_total_in_sum": 4.59 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.21", - "eto_azmet_in_sum": 5.950000000000001, - "eto_pen_mon_in": "0.22", - "eto_pen_mon_in_sum": 5.81, - "heat_units_45F_sum": 471.3999999999999, - "heat_units_50F_sum": 309.3, - "heat_units_55F_sum": 180.50000000000003, + "chill_hours_0C_sum": 18.0, + "chill_hours_20C_sum": 4130.0, + "chill_hours_32F_sum": 18.0, + "chill_hours_45F_sum": 476.0, + "chill_hours_68F_sum": 4130.0, + "chill_hours_7C_sum": 476.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.27, + "eto_azmet_in_sum": 75.25, + "eto_pen_mon_in": 0.26, + "eto_pen_mon_in_sum": 72.75, + "heat_units_45F_sum": 7643.0, + "heat_units_50F_sum": 6296.1, + "heat_units_55F_sum": 5031.4, + "heat_units_9455F_sum": 5604.6, "meta_station_id": "az40", "meta_station_name": "Ft Mohave CA", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.9400000000000001 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.46 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.18", - "eto_azmet_in_sum": 5.19, - "eto_pen_mon_in": "0.15", - "eto_pen_mon_in_sum": 4.590000000000002, - "heat_units_45F_sum": 427.2, - "heat_units_50F_sum": 273.70000000000005, - "heat_units_55F_sum": 153.59999999999997, + "chill_hours_0C_sum": 36.0, + "chill_hours_20C_sum": 4100.0, + "chill_hours_32F_sum": 36.0, + "chill_hours_45F_sum": 586.0, + "chill_hours_68F_sum": 4100.0, + "chill_hours_7C_sum": 586.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.15, + "eto_azmet_in_sum": 72.59, + "eto_pen_mon_in": 0.13, + "eto_pen_mon_in_sum": 65.49, + "heat_units_45F_sum": 7575.6, + "heat_units_50F_sum": 6238.6, + "heat_units_55F_sum": 4986.2, + "heat_units_9455F_sum": 5523.4, "meta_station_id": "az23", "meta_station_name": "Harquahala", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.16 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.88 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.06", - "eto_azmet_in_sum": 5.03, - "eto_pen_mon_in": "0.09", - "eto_pen_mon_in_sum": 4.300000000000001, - "heat_units_45F_sum": 435.0, - "heat_units_50F_sum": 275.8999999999999, - "heat_units_55F_sum": 156.2, + "chill_hours_0C_sum": 28.0, + "chill_hours_20C_sum": 4355.0, + "chill_hours_32F_sum": 28.0, + "chill_hours_45F_sum": 523.0, + "chill_hours_68F_sum": 4355.0, + "chill_hours_7C_sum": 523.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.19, + "eto_azmet_in_sum": 73.88, + "eto_pen_mon_in": 0.22, + "eto_pen_mon_in_sum": 69.22, + "heat_units_45F_sum": 8000.0, + "heat_units_50F_sum": 6636.5, + "heat_units_55F_sum": 5352.9, + "heat_units_9455F_sum": 5960.9, "meta_station_id": "az06", "meta_station_name": "Maricopa", - "precip_total_in": "0.20", - "precip_total_in_sum": 1.59 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.9 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.21", - "eto_azmet_in_sum": 5.62, - "eto_pen_mon_in": "0.20", - "eto_pen_mon_in_sum": 5.050000000000001, - "heat_units_45F_sum": 398.8, - "heat_units_50F_sum": 247.20000000000005, - "heat_units_55F_sum": 130.6, + "chill_hours_0C_sum": 26.0, + "chill_hours_20C_sum": 3937.0, + "chill_hours_32F_sum": 26.0, + "chill_hours_45F_sum": 602.0, + "chill_hours_68F_sum": 3937.0, + "chill_hours_7C_sum": 602.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.26, + "eto_azmet_in_sum": 70.44, + "eto_pen_mon_in": 0.25, + "eto_pen_mon_in_sum": 65.0, + "heat_units_45F_sum": 7354.4, + "heat_units_50F_sum": 6021.5, + "heat_units_55F_sum": 4780.4, + "heat_units_9455F_sum": 5275.7, "meta_station_id": "az20", "meta_station_name": "Mohave", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.0200000000000002 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.7 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.21", - "eto_azmet_in_sum": 6.21, - "eto_pen_mon_in": "0.21", - "eto_pen_mon_in_sum": 5.69, - "heat_units_45F_sum": 409.79999999999995, - "heat_units_50F_sum": 257.90000000000003, - "heat_units_55F_sum": 140.4, + "chill_hours_0C_sum": 26.0, + "chill_hours_20C_sum": 4074.0, + "chill_hours_32F_sum": 26.0, + "chill_hours_45F_sum": 554.0, + "chill_hours_68F_sum": 4074.0, + "chill_hours_7C_sum": 554.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.28, + "eto_azmet_in_sum": 74.29, + "eto_pen_mon_in": 0.26, + "eto_pen_mon_in_sum": 69.86, + "heat_units_45F_sum": 7474.0, + "heat_units_50F_sum": 6137.5, + "heat_units_55F_sum": 4892.7, + "heat_units_9455F_sum": 5424.9, "meta_station_id": "az28", "meta_station_name": "Mohave-2", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.92 + "precip_total_in": 0.0, + "precip_total_in_sum": 2.97 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.13", - "eto_azmet_in_sum": 5.09, - "eto_pen_mon_in": "0.13", - "eto_pen_mon_in_sum": 4.48, - "heat_units_45F_sum": 455.70000000000005, - "heat_units_50F_sum": 294.2, - "heat_units_55F_sum": 168.79999999999998, + "chill_hours_0C_sum": 27.0, + "chill_hours_20C_sum": 4073.0, + "chill_hours_32F_sum": 27.0, + "chill_hours_45F_sum": 572.0, + "chill_hours_68F_sum": 4073.0, + "chill_hours_7C_sum": 572.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.19, + "eto_azmet_in_sum": 69.69, + "eto_pen_mon_in": 0.2, + "eto_pen_mon_in_sum": 65.49, + "heat_units_45F_sum": 7714.6, + "heat_units_50F_sum": 6360.4, + "heat_units_55F_sum": 5088.7, + "heat_units_9455F_sum": 5639.3, "meta_station_id": "az19", "meta_station_name": "Paloma", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.4400000000000002 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.8 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.22", - "eto_azmet_in_sum": 5.979999999999999, - "eto_pen_mon_in": "0.21", - "eto_pen_mon_in_sum": 5.620000000000002, - "heat_units_45F_sum": 500.6000000000001, - "heat_units_50F_sum": 330.6, - "heat_units_55F_sum": 195.50000000000003, + "chill_hours_0C_sum": 16.0, + "chill_hours_20C_sum": 4206.0, + "chill_hours_32F_sum": 16.0, + "chill_hours_45F_sum": 394.0, + "chill_hours_68F_sum": 4206.0, + "chill_hours_7C_sum": 394.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.15, + "eto_azmet_in_sum": 74.15, + "eto_pen_mon_in": 0.12, + "eto_pen_mon_in_sum": 70.94, + "heat_units_45F_sum": 7774.4, + "heat_units_50F_sum": 6398.9, + "heat_units_55F_sum": 5105.0, + "heat_units_9455F_sum": 5642.5, "meta_station_id": "az08", "meta_station_name": "Parker", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.32 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.86 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.24", - "eto_azmet_in_sum": 6.300000000000002, - "eto_pen_mon_in": "0.23", - "eto_pen_mon_in_sum": 6.070000000000002, - "heat_units_45F_sum": 505.2, - "heat_units_50F_sum": 334.7, - "heat_units_55F_sum": 199.39999999999995, + "chill_hours_0C_sum": 23.0, + "chill_hours_20C_sum": 4292.0, + "chill_hours_32F_sum": 23.0, + "chill_hours_45F_sum": 429.0, + "chill_hours_68F_sum": 4292.0, + "chill_hours_7C_sum": 429.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.18, + "eto_azmet_in_sum": 77.5, + "eto_pen_mon_in": 0.16, + "eto_pen_mon_in_sum": 75.23, + "heat_units_45F_sum": 7835.8, + "heat_units_50F_sum": 6460.3, + "heat_units_55F_sum": 5168.2, + "heat_units_9455F_sum": 5704.6, "meta_station_id": "az35", "meta_station_name": "Parker-2", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.8200000000000001 + "precip_total_in": 0.0, + "precip_total_in_sum": 2.94 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.01", - "eto_azmet_in_sum": 3.5300000000000002, - "eto_pen_mon_in": "0.03", - "eto_pen_mon_in_sum": 2.6400000000000006, - "heat_units_45F_sum": 89.00000000000001, - "heat_units_50F_sum": 37.8, - "heat_units_55F_sum": 10.799999999999999, + "chill_hours_0C_sum": 534.0, + "chill_hours_20C_sum": 2524.0, + "chill_hours_32F_sum": 534.0, + "chill_hours_45F_sum": 1809.0, + "chill_hours_68F_sum": 2524.0, + "chill_hours_7C_sum": 1809.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.13, + "eto_azmet_in_sum": 57.16, + "eto_pen_mon_in": 0.07, + "eto_pen_mon_in_sum": 46.32, + "heat_units_45F_sum": 4762.7, + "heat_units_50F_sum": 3716.9, + "heat_units_55F_sum": 2812.0, + "heat_units_9455F_sum": 2911.0, "meta_station_id": "az32", "meta_station_name": "Payson", - "precip_total_in": "0.03", - "precip_total_in_sum": 5.960000000000001 + "precip_total_in": 0.0, + "precip_total_in_sum": 16.05 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.06", - "eto_azmet_in_sum": 4.62, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 3.5700000000000016, - "heat_units_45F_sum": 478.7, - "heat_units_50F_sum": 304.40000000000003, - "heat_units_55F_sum": 172.90000000000006, + "chill_hours_0C_sum": 1.0, + "chill_hours_20C_sum": 4515.0, + "chill_hours_32F_sum": 1.0, + "chill_hours_45F_sum": 338.0, + "chill_hours_68F_sum": 4515.0, + "chill_hours_7C_sum": 338.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.17, + "eto_azmet_in_sum": 66.58, + "eto_pen_mon_in": 0.13, + "eto_pen_mon_in_sum": 55.96, + "heat_units_45F_sum": 8194.5, + "heat_units_50F_sum": 6796.1, + "heat_units_55F_sum": 5482.6, + "heat_units_9455F_sum": 6071.6, "meta_station_id": "az15", "meta_station_name": "Phoenix Encanto", - "precip_total_in": "0.01", - "precip_total_in_sum": 1.04 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.59 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.07", - "eto_azmet_in_sum": 4.480000000000001, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 3.430000000000001, - "heat_units_45F_sum": 474.90000000000015, - "heat_units_50F_sum": 297.00000000000006, - "heat_units_55F_sum": 166.39999999999998, + "chill_hours_0C_sum": 3.0, + "chill_hours_20C_sum": 4565.0, + "chill_hours_32F_sum": 3.0, + "chill_hours_45F_sum": 319.0, + "chill_hours_68F_sum": 4565.0, + "chill_hours_7C_sum": 319.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.19, + "eto_azmet_in_sum": 66.44, + "eto_pen_mon_in": 0.14, + "eto_pen_mon_in_sum": 55.59, + "heat_units_45F_sum": 8266.5, + "heat_units_50F_sum": 6865.2, + "heat_units_55F_sum": 5549.8, + "heat_units_9455F_sum": 6139.3, "meta_station_id": "az12", "meta_station_name": "Phoenix Greenway", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.32 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.93 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.04", - "eto_azmet_in_sum": 4.940000000000001, - "eto_pen_mon_in": "0.07", - "eto_pen_mon_in_sum": 4.300000000000001, - "heat_units_45F_sum": 409.7, - "heat_units_50F_sum": 257.6, - "heat_units_55F_sum": 144.49999999999997, + "chill_hours_0C_sum": 32.0, + "chill_hours_20C_sum": 4166.0, + "chill_hours_32F_sum": 32.0, + "chill_hours_45F_sum": 609.0, + "chill_hours_68F_sum": 4166.0, + "chill_hours_7C_sum": 609.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.23, + "eto_azmet_in_sum": 70.6, + "eto_pen_mon_in": 0.23, + "eto_pen_mon_in_sum": 65.78, + "heat_units_45F_sum": 7582.3, + "heat_units_50F_sum": 6249.2, + "heat_units_55F_sum": 5003.4, + "heat_units_9455F_sum": 5539.4, "meta_station_id": "az22", "meta_station_name": "Queen Creek", - "precip_total_in": "0.21", - "precip_total_in_sum": 2.7600000000000002 + "precip_total_in": 0.0, + "precip_total_in_sum": 7.01 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.18", - "eto_azmet_in_sum": 5.709999999999999, - "eto_pen_mon_in": "0.17", - "eto_pen_mon_in_sum": 5.330000000000001, - "heat_units_45F_sum": 534.6000000000001, - "heat_units_50F_sum": 358.7, - "heat_units_55F_sum": 218.19999999999996, + "chill_hours_0C_sum": 17.0, + "chill_hours_20C_sum": 4147.0, + "chill_hours_32F_sum": 17.0, + "chill_hours_45F_sum": 444.0, + "chill_hours_68F_sum": 4147.0, + "chill_hours_7C_sum": 444.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.18, + "eto_azmet_in_sum": 71.09, + "eto_pen_mon_in": 0.16, + "eto_pen_mon_in_sum": 66.08, + "heat_units_45F_sum": 7829.1, + "heat_units_50F_sum": 6453.5, + "heat_units_55F_sum": 5161.0, + "heat_units_9455F_sum": 5714.7, "meta_station_id": "az24", "meta_station_name": "Roll", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.1099999999999999 + "precip_total_in": 0.0, + "precip_total_in_sum": 4.03 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.09", - "eto_azmet_in_sum": 5.2700000000000005, - "eto_pen_mon_in": "0.13", - "eto_pen_mon_in_sum": 5.23, - "heat_units_45F_sum": 311.4, - "heat_units_50F_sum": 188.9, - "heat_units_55F_sum": 101.50000000000003, + "chill_hours_0C_sum": 199.0, + "chill_hours_20C_sum": 3818.0, + "chill_hours_32F_sum": 199.0, + "chill_hours_45F_sum": 850.0, + "chill_hours_68F_sum": 3818.0, + "chill_hours_7C_sum": 850.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.17, + "eto_azmet_in_sum": 71.36, + "eto_pen_mon_in": 0.16, + "eto_pen_mon_in_sum": 68.71, + "heat_units_45F_sum": 6949.8, + "heat_units_50F_sum": 5674.9, + "heat_units_55F_sum": 4501.7, + "heat_units_9455F_sum": 4918.9, "meta_station_id": "az04", "meta_station_name": "Safford", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.01 + "precip_total_in": 0.0, + "precip_total_in_sum": 5.45 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.11", - "eto_azmet_in_sum": 5.510000000000001, - "eto_pen_mon_in": "0.11", - "eto_pen_mon_in_sum": 4.82, - "heat_units_45F_sum": 413.70000000000005, - "heat_units_50F_sum": 271.79999999999995, - "heat_units_55F_sum": 162.79999999999998, + "chill_hours_0C_sum": 117.0, + "chill_hours_20C_sum": 3708.0, + "chill_hours_32F_sum": 117.0, + "chill_hours_45F_sum": 728.0, + "chill_hours_68F_sum": 3708.0, + "chill_hours_7C_sum": 728.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.18, + "eto_azmet_in_sum": 64.56, + "eto_pen_mon_in": 0.16, + "eto_pen_mon_in_sum": 57.75, + "heat_units_45F_sum": 7056.5, + "heat_units_50F_sum": 5742.0, + "heat_units_55F_sum": 4537.1, + "heat_units_9455F_sum": 4944.9, "meta_station_id": "az38", "meta_station_name": "Sahuarita", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.0600000000000003 + "precip_total_in": 0.0, + "precip_total_in_sum": 6.98 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.17", - "eto_azmet_in_sum": 5.700000000000001, - "eto_pen_mon_in": "0.15", - "eto_pen_mon_in_sum": 5.260000000000001, - "heat_units_45F_sum": 334.8999999999999, - "heat_units_50F_sum": 196.10000000000002, - "heat_units_55F_sum": 99.2, + "chill_hours_0C_sum": 49.0, + "chill_hours_20C_sum": 3542.0, + "chill_hours_32F_sum": 49.0, + "chill_hours_45F_sum": 744.0, + "chill_hours_68F_sum": 3542.0, + "chill_hours_7C_sum": 744.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.17, + "eto_azmet_in_sum": 69.84, + "eto_pen_mon_in": 0.16, + "eto_pen_mon_in_sum": 64.48, + "heat_units_45F_sum": 6626.1, + "heat_units_50F_sum": 5347.4, + "heat_units_55F_sum": 4189.7, + "heat_units_9455F_sum": 4540.5, "meta_station_id": "az41", "meta_station_name": "Salome", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.77 + "precip_total_in": 0.0, + "precip_total_in_sum": 4.62 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.10", - "eto_azmet_in_sum": 5.24, - "eto_pen_mon_in": "0.11", - "eto_pen_mon_in_sum": 4.1400000000000015, - "heat_units_45F_sum": 303.5999999999999, - "heat_units_50F_sum": 183.0, - "heat_units_55F_sum": 99.90000000000002, + "chill_hours_0C_sum": 243.0, + "chill_hours_20C_sum": 3270.0, + "chill_hours_32F_sum": 243.0, + "chill_hours_45F_sum": 965.0, + "chill_hours_68F_sum": 3270.0, + "chill_hours_7C_sum": 965.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.13, + "eto_azmet_in_sum": 60.95, + "eto_pen_mon_in": 0.1, + "eto_pen_mon_in_sum": 52.53, + "heat_units_45F_sum": 6477.2, + "heat_units_50F_sum": 5215.2, + "heat_units_55F_sum": 4077.1, + "heat_units_9455F_sum": 4386.3, "meta_station_id": "az37", "meta_station_name": "San Simon", - "precip_total_in": "0.00", - "precip_total_in_sum": 1.23 + "precip_total_in": 0.0, + "precip_total_in_sum": 5.97 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.07", - "eto_azmet_in_sum": 5.49, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 4.36, - "heat_units_45F_sum": 424.4, - "heat_units_50F_sum": 276.49999999999994, - "heat_units_55F_sum": 162.4, + "chill_hours_0C_sum": 95.0, + "chill_hours_20C_sum": 4208.0, + "chill_hours_32F_sum": 95.0, + "chill_hours_45F_sum": 637.0, + "chill_hours_68F_sum": 4208.0, + "chill_hours_7C_sum": 637.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.24, + "eto_azmet_in_sum": 71.81, + "eto_pen_mon_in": 0.24, + "eto_pen_mon_in_sum": 62.66, + "heat_units_45F_sum": 7603.4, + "heat_units_50F_sum": 6270.0, + "heat_units_55F_sum": 5018.9, + "heat_units_9455F_sum": 5528.9, "meta_station_id": "az01", "meta_station_name": "Tucson", - "precip_total_in": "0.11", - "precip_total_in_sum": 1.9800000000000002 + "precip_total_in": 0.0, + "precip_total_in_sum": 6.48 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.02", - "eto_azmet_in_sum": 5.0, - "eto_pen_mon_in": "0.06", - "eto_pen_mon_in_sum": 4.4, - "heat_units_45F_sum": 239.5, - "heat_units_50F_sum": 139.2, - "heat_units_55F_sum": 70.4, + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 3627.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 3.0, + "chill_hours_68F_sum": 3627.0, + "chill_hours_7C_sum": 3.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.15, + "eto_azmet_in_sum": 50.08, + "eto_pen_mon_in": 0.13, + "eto_pen_mon_in_sum": 46.74, + "heat_units_45F_sum": 6119.5, + "heat_units_50F_sum": 5207.2, + "heat_units_55F_sum": 4298.2, + "heat_units_9455F_sum": 4829.1, + "meta_station_id": "az42", + "meta_station_name": "Wellton ETo", + "precip_total_in": -999.0, + "precip_total_in_sum": 0.0 + }, + { + "chill_hours_0C_sum": 328.0, + "chill_hours_20C_sum": 3236.0, + "chill_hours_32F_sum": 328.0, + "chill_hours_45F_sum": 1162.0, + "chill_hours_68F_sum": 3236.0, + "chill_hours_7C_sum": 1162.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.2, + "eto_azmet_in_sum": 66.2, + "eto_pen_mon_in": 0.17, + "eto_pen_mon_in_sum": 62.14, + "heat_units_45F_sum": 6145.9, + "heat_units_50F_sum": 4937.1, + "heat_units_55F_sum": 3843.4, + "heat_units_9455F_sum": 4102.5, "meta_station_id": "az39", "meta_station_name": "Willcox Bench", - "precip_total_in": "0.14", - "precip_total_in_sum": 1.07 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.36 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.18", - "eto_azmet_in_sum": 6.02, - "eto_pen_mon_in": "0.16", - "eto_pen_mon_in_sum": 5.7600000000000025, - "heat_units_45F_sum": 565.9, - "heat_units_50F_sum": 381.4, - "heat_units_55F_sum": 234.8000000000001, + "chill_hours_0C_sum": 1.0, + "chill_hours_20C_sum": 4372.0, + "chill_hours_32F_sum": 1.0, + "chill_hours_45F_sum": 289.0, + "chill_hours_68F_sum": 4372.0, + "chill_hours_7C_sum": 289.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.24, + "eto_azmet_in_sum": 72.26, + "eto_pen_mon_in": 0.24, + "eto_pen_mon_in_sum": 67.63, + "heat_units_45F_sum": 8126.2, + "heat_units_50F_sum": 6718.1, + "heat_units_55F_sum": 5382.4, + "heat_units_9455F_sum": 5926.1, "meta_station_id": "az14", "meta_station_name": "Yuma N.Gila", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.7000000000000001 + "precip_total_in": 0.0, + "precip_total_in_sum": 2.68 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.15", - "eto_azmet_in_sum": 5.890000000000001, - "eto_pen_mon_in": "0.16", - "eto_pen_mon_in_sum": 5.500000000000001, - "heat_units_45F_sum": 529.5999999999999, - "heat_units_50F_sum": 355.2, - "heat_units_55F_sum": 213.80000000000004, + "chill_hours_0C_sum": 2.0, + "chill_hours_20C_sum": 4116.0, + "chill_hours_32F_sum": 2.0, + "chill_hours_45F_sum": 431.0, + "chill_hours_68F_sum": 4116.0, + "chill_hours_7C_sum": 431.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.22, + "eto_azmet_in_sum": 71.42, + "eto_pen_mon_in": 0.2, + "eto_pen_mon_in_sum": 68.38, + "heat_units_45F_sum": 7939.5, + "heat_units_50F_sum": 6559.9, + "heat_units_55F_sum": 5256.6, + "heat_units_9455F_sum": 5840.9, "meta_station_id": "az36", "meta_station_name": "Yuma South", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.21 + "precip_total_in": 0.0, + "precip_total_in_sum": 2.33 }, { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.16", - "eto_azmet_in_sum": 6.570000000000001, - "eto_pen_mon_in": "0.15", - "eto_pen_mon_in_sum": 6.030000000000001, - "heat_units_45F_sum": 578.3, - "heat_units_50F_sum": 388.1, - "heat_units_55F_sum": 235.9, + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 4443.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 272.0, + "chill_hours_68F_sum": 4443.0, + "chill_hours_7C_sum": 272.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.28, + "eto_azmet_in_sum": 73.29, + "eto_pen_mon_in": 0.29, + "eto_pen_mon_in_sum": 68.42, + "heat_units_45F_sum": 8224.0, + "heat_units_50F_sum": 6810.1, + "heat_units_55F_sum": 5468.1, + "heat_units_9455F_sum": 6037.0, "meta_station_id": "az02", "meta_station_name": "Yuma Valley", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.51 + "precip_total_in": 0.0, + "precip_total_in_sum": 2.04 + }, + { + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 3749.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 0.0, + "chill_hours_68F_sum": 3749.0, + "chill_hours_7C_sum": 0.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.28, + "eto_azmet_in_sum": 52.95, + "eto_pen_mon_in": 0.26, + "eto_pen_mon_in_sum": 48.6, + "heat_units_45F_sum": 6340.7, + "heat_units_50F_sum": 5425.7, + "heat_units_55F_sum": 4512.1, + "heat_units_9455F_sum": 5065.1, + "meta_station_id": "az43", + "meta_station_name": "Yuma Valley ETo", + "precip_total_in": -999.0, + "precip_total_in_sum": 0.0 } ], "errors": [ diff --git a/tests/testthat/heat_end/hueto/az01/default/default.json b/tests/testthat/heat_end/hueto/az01/default/default.json index 00aed34..e6adc4c 100644 --- a/tests/testthat/heat_end/hueto/az01/default/default.json +++ b/tests/testthat/heat_end/hueto/az01/default/default.json @@ -2,18 +2,25 @@ "a": "TUC", "data": [ { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.07", - "eto_azmet_in_sum": 5.49, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 4.36, - "heat_units_45F_sum": 424.4, - "heat_units_50F_sum": 276.49999999999994, - "heat_units_55F_sum": 162.4, + "chill_hours_0C_sum": 95.0, + "chill_hours_20C_sum": 4208.0, + "chill_hours_32F_sum": 95.0, + "chill_hours_45F_sum": 637.0, + "chill_hours_68F_sum": 4208.0, + "chill_hours_7C_sum": 637.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.24, + "eto_azmet_in_sum": 71.81, + "eto_pen_mon_in": 0.24, + "eto_pen_mon_in_sum": 62.66, + "heat_units_45F_sum": 7603.4, + "heat_units_50F_sum": 6270.0, + "heat_units_55F_sum": 5018.9, + "heat_units_9455F_sum": 5528.9, "meta_station_id": "az01", "meta_station_name": "Tucson", - "precip_total_in": "0.11", - "precip_total_in_sum": 1.9800000000000002 + "precip_total_in": 0.0, + "precip_total_in_sum": 6.48 } ], "errors": [ diff --git a/tests/testthat/heat_end/hueto/az02/default/default.json b/tests/testthat/heat_end/hueto/az02/default/default.json new file mode 100644 index 0000000..0868c72 --- /dev/null +++ b/tests/testthat/heat_end/hueto/az02/default/default.json @@ -0,0 +1,34 @@ +{ + "a": "YUV", + "data": [ + { + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 4443.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 272.0, + "chill_hours_68F_sum": 4443.0, + "chill_hours_7C_sum": 272.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.28, + "eto_azmet_in_sum": 73.29, + "eto_pen_mon_in": 0.29, + "eto_pen_mon_in_sum": 68.42, + "heat_units_45F_sum": 8224.0, + "heat_units_50F_sum": 6810.1, + "heat_units_55F_sum": 5468.1, + "heat_units_9455F_sum": 6037.0, + "meta_station_id": "az02", + "meta_station_name": "Yuma Valley", + "precip_total_in": 0.0, + "precip_total_in_sum": 2.04 + } + ], + "errors": [ + + ], + "i": "default", + "l": "az02", + "n": "Yuma Valley", + "s": "default", + "t": "hueto" +} diff --git a/tests/testthat/heat_nodata/hueto/default/2100-01-01T00-00/P1D.json b/tests/testthat/heat_nodata/hueto/default/2100-01-01T00-00/P2D.json similarity index 87% rename from tests/testthat/heat_nodata/hueto/default/2100-01-01T00-00/P1D.json rename to tests/testthat/heat_nodata/hueto/default/2100-01-01T00-00/P2D.json index 393fbde..194b0e2 100644 --- a/tests/testthat/heat_nodata/hueto/default/2100-01-01T00-00/P1D.json +++ b/tests/testthat/heat_nodata/hueto/default/2100-01-01T00-00/P2D.json @@ -5,7 +5,7 @@ "errors": [ ], - "i": "P1D", + "i": "P2D", "l": "default", "s": "2100-01-01T00:00", "t": "hueto" diff --git a/tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P7D.json b/tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P7D.json deleted file mode 100644 index bdd7cad..0000000 --- a/tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P7D.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "a": "TUC", - "data": [ - { - "datetime_last": "2022-09-26", - "eto_azmet_in": "0.26771599999999995", - "eto_azmet_in_sum": 1.4757634662652808, - "eto_pen_mon_in": "0.24131396497648197", - "eto_pen_mon_in_sum": 1.3178933107521735, - "heat_units_45F_sum": 244.17560099999997, - "heat_units_50F_sum": 209.175593, - "heat_units_55F_sum": 174.175513, - "meta_station_id": "az01", - "meta_station_name": "Tucson", - "precip_total_in": "0.0", - "precip_total_in_sum": 0.3999992 - } - ], - "errors": [ - - ], - "i": "P7D", - "l": "az01", - "n": "Tucson", - "s": "2022-09-20T00:00", - "t": "hueto" -} diff --git a/tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P8D.json b/tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P8D.json new file mode 100644 index 0000000..65d374d --- /dev/null +++ b/tests/testthat/heat_start/hueto/az01/2022-09-20T00-00/P8D.json @@ -0,0 +1,34 @@ +{ + "a": "TUC", + "data": [ + { + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 181.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 0.0, + "chill_hours_68F_sum": 181.0, + "chill_hours_7C_sum": 0.0, + "datetime_last": "2022-09-27", + "eto_azmet_in": 0.28, + "eto_azmet_in_sum": 1.7558, + "eto_pen_mon_in": 0.27, + "eto_pen_mon_in_sum": 1.5879, + "heat_units_45F_sum": 279.8756, + "heat_units_50F_sum": 239.8756, + "heat_units_55F_sum": 199.8755, + "heat_units_9455F_sum": 219.1627, + "meta_station_id": "az01", + "meta_station_name": "Tucson", + "precip_total_in": 0.0, + "precip_total_in_sum": 0.4 + } + ], + "errors": [ + + ], + "i": "P8D", + "l": "az01", + "n": "Tucson", + "s": "2022-09-20T00:00", + "t": "hueto" +} diff --git a/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json b/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json deleted file mode 100644 index b7bcf07..0000000 --- a/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P20D.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "a": "TUC", - "data": [ - { - "chill_hours_0C_sum": 0.0, - "chill_hours_20C_sum": 275.0, - "chill_hours_32F_sum": 0.0, - "chill_hours_45F_sum": 0.0, - "chill_hours_68F_sum": 275.0, - "chill_hours_7C_sum": 0.0, - "datetime_last": "2023-10-29", - "eto_azmet_in": 0.17, - "eto_azmet_in_sum": 3.6, - "eto_pen_mon_in": 0.12, - "eto_pen_mon_in_sum": 2.83, - "heat_units_45F_sum": 538.9, - "heat_units_50F_sum": 439.4, - "heat_units_55F_sum": 343.0, - "heat_units_9455F_sum": 367.0, - "meta_station_id": "az01", - "meta_station_name": "Tucson", - "precip_total_in": 0.0, - "precip_total_in_sum": 0.66 - } - ], - "errors": [ - - ], - "i": "P20D", - "l": "az01", - "n": "Tucson", - "s": "2023-10-10T00:00", - "t": "hueto" -} diff --git a/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P21D.json b/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P21D.json new file mode 100644 index 0000000..7cbf6c4 --- /dev/null +++ b/tests/testthat/heat_start_end/hueto/az01/2023-10-10T00-00/P21D.json @@ -0,0 +1,34 @@ +{ + "a": "TUC", + "data": [ + { + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 281.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 4.0, + "chill_hours_68F_sum": 281.0, + "chill_hours_7C_sum": 4.0, + "datetime_last": "2023-10-30", + "eto_azmet_in": 0.17, + "eto_azmet_in_sum": 3.77, + "eto_pen_mon_in": 0.14, + "eto_pen_mon_in_sum": 2.97, + "heat_units_45F_sum": 551.8, + "heat_units_50F_sum": 448.7, + "heat_units_55F_sum": 349.2, + "heat_units_9455F_sum": 373.2, + "meta_station_id": "az01", + "meta_station_name": "Tucson", + "precip_total_in": 0.0, + "precip_total_in_sum": 0.66 + } + ], + "errors": [ + + ], + "i": "P21D", + "l": "az01", + "n": "Tucson", + "s": "2023-10-10T00:00", + "t": "hueto" +} diff --git a/tests/testthat/heat_station/hueto/az09/default/default.json b/tests/testthat/heat_station/hueto/az09/default/default.json index af97928..087cb80 100644 --- a/tests/testthat/heat_station/hueto/az09/default/default.json +++ b/tests/testthat/heat_station/hueto/az09/default/default.json @@ -2,18 +2,25 @@ "a": "BON", "data": [ { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.06", - "eto_azmet_in_sum": 5.1000000000000005, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 4.390000000000001, - "heat_units_45F_sum": 221.50000000000003, - "heat_units_50F_sum": 125.19999999999999, - "heat_units_55F_sum": 61.1, + "chill_hours_0C_sum": 319.0, + "chill_hours_20C_sum": 3143.0, + "chill_hours_32F_sum": 319.0, + "chill_hours_45F_sum": 1215.0, + "chill_hours_68F_sum": 3143.0, + "chill_hours_7C_sum": 1215.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.19, + "eto_azmet_in_sum": 64.69, + "eto_pen_mon_in": 0.18, + "eto_pen_mon_in_sum": 58.67, + "heat_units_45F_sum": 5911.6, + "heat_units_50F_sum": 4728.9, + "heat_units_55F_sum": 3670.4, + "heat_units_9455F_sum": 3898.7, "meta_station_id": "az09", "meta_station_name": "Bonita", - "precip_total_in": "0.02", - "precip_total_in_sum": 1.9000000000000004 + "precip_total_in": 0.0, + "precip_total_in_sum": 3.62 } ], "errors": [ diff --git a/tests/testthat/heat_station_vector/hueto/az01/default/default.json b/tests/testthat/heat_station_vector/hueto/az01/default/default.json index 00aed34..e6adc4c 100644 --- a/tests/testthat/heat_station_vector/hueto/az01/default/default.json +++ b/tests/testthat/heat_station_vector/hueto/az01/default/default.json @@ -2,18 +2,25 @@ "a": "TUC", "data": [ { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.07", - "eto_azmet_in_sum": 5.49, - "eto_pen_mon_in": "0.08", - "eto_pen_mon_in_sum": 4.36, - "heat_units_45F_sum": 424.4, - "heat_units_50F_sum": 276.49999999999994, - "heat_units_55F_sum": 162.4, + "chill_hours_0C_sum": 95.0, + "chill_hours_20C_sum": 4208.0, + "chill_hours_32F_sum": 95.0, + "chill_hours_45F_sum": 637.0, + "chill_hours_68F_sum": 4208.0, + "chill_hours_7C_sum": 637.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.24, + "eto_azmet_in_sum": 71.81, + "eto_pen_mon_in": 0.24, + "eto_pen_mon_in_sum": 62.66, + "heat_units_45F_sum": 7603.4, + "heat_units_50F_sum": 6270.0, + "heat_units_55F_sum": 5018.9, + "heat_units_9455F_sum": 5528.9, "meta_station_id": "az01", "meta_station_name": "Tucson", - "precip_total_in": "0.11", - "precip_total_in_sum": 1.9800000000000002 + "precip_total_in": 0.0, + "precip_total_in_sum": 6.48 } ], "errors": [ diff --git a/tests/testthat/heat_station_vector/hueto/az02/default/default.json b/tests/testthat/heat_station_vector/hueto/az02/default/default.json index ffad4bf..0868c72 100644 --- a/tests/testthat/heat_station_vector/hueto/az02/default/default.json +++ b/tests/testthat/heat_station_vector/hueto/az02/default/default.json @@ -2,18 +2,25 @@ "a": "YUV", "data": [ { - "datetime_last": "2023-02-21", - "eto_azmet_in": "0.16", - "eto_azmet_in_sum": 6.570000000000001, - "eto_pen_mon_in": "0.15", - "eto_pen_mon_in_sum": 6.030000000000001, - "heat_units_45F_sum": 578.3, - "heat_units_50F_sum": 388.1, - "heat_units_55F_sum": 235.9, + "chill_hours_0C_sum": 0.0, + "chill_hours_20C_sum": 4443.0, + "chill_hours_32F_sum": 0.0, + "chill_hours_45F_sum": 272.0, + "chill_hours_68F_sum": 4443.0, + "chill_hours_7C_sum": 272.0, + "datetime_last": "2023-10-31", + "eto_azmet_in": 0.28, + "eto_azmet_in_sum": 73.29, + "eto_pen_mon_in": 0.29, + "eto_pen_mon_in_sum": 68.42, + "heat_units_45F_sum": 8224.0, + "heat_units_50F_sum": 6810.1, + "heat_units_55F_sum": 5468.1, + "heat_units_9455F_sum": 6037.0, "meta_station_id": "az02", "meta_station_name": "Yuma Valley", - "precip_total_in": "0.00", - "precip_total_in_sum": 0.51 + "precip_total_in": 0.0, + "precip_total_in_sum": 2.04 } ], "errors": [ diff --git a/tests/testthat/test-az_heat.R b/tests/testthat/test-az_heat.R index 6a13590..14947a5 100644 --- a/tests/testthat/test-az_heat.R +++ b/tests/testthat/test-az_heat.R @@ -25,17 +25,23 @@ test_that("start and end dates interpreted correctly", { res <- az_heat(station_id = 1, start_date = "2023-10-10", end_date = "2023-10-30") }) expect_equal(res$datetime_last, lubridate::ymd("2023-10-30")) + + + skip("not sure of desired behavior") + expect_error(az_heat(station_id = 1, end_date = "2022-09-01"), "`end_date` is before `start_date`!") }) test_that("end_date can be specified without start_date", { skip_if_offline() skip_if_not(ping_service()) - end <- "2022-09-27" + yesterday <- lubridate::today() - lubridate::days(1) with_mock_dir("heat_end", { - res_end <- az_heat(station_id = 1, end_date = end) + res_end_old <- az_heat(station_id = 1, end_date = "2022-09-27") + res_end_yesterday <- az_heat(station_id = 2, end_date = yesterday) }) - expect_s3_class(res_end, "data.frame") - expect_equal(res_end$datetime_last, lubridate::ymd("2022-09-27")) + expect_s3_class(res_end_old, "data.frame") + expect_equal(res_end_old$datetime_last, lubridate::ymd("2022-09-27")) + expect_equal(res_end_yesterday$datetime_last, yesterday) }) test_that("works with station_id as a vector", { @@ -55,7 +61,7 @@ test_that("data is in correct format", { res_default <- az_heat() }) expect_s3_class(res_default, "data.frame") - expect_equal(nrow(res_default), 28) + expect_equal(nrow(res_default), nrow(station_info)) expect_type(res_default$meta_station_name, "character") expect_type(res_default$eto_pen_mon_in, "double") expect_s3_class(res_default$datetime_last, "Date") From 8b68ef9e0c6399642f1f4fdcc02c467574e99153 Mon Sep 17 00:00:00 2001 From: Eric Scott Date: Thu, 2 Nov 2023 15:14:02 -0400 Subject: [PATCH 3/7] attempt fix for #63 --- R/az_heat.R | 8 +++++++- tests/testthat/test-az_heat.R | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/R/az_heat.R b/R/az_heat.R index e018dab..44603ac 100644 --- a/R/az_heat.R +++ b/R/az_heat.R @@ -56,6 +56,12 @@ az_heat <- function(station_id = NULL, start_date = NULL, end_date = NULL) { check_internet() params <- parse_params(station_id, start = start_date, end = end_date) + # always add a day to time_interval for heat endpoint to match how API works + if (params$time_interval != "*") { + params$time_interval <- + lubridate::format_ISO8601(lubridate::as.period(params$time_interval) + + lubridate::days(1)) + } # Query API -------------------------------------------- if (length(station_id) <= 1) { @@ -79,7 +85,7 @@ az_heat <- function(station_id = NULL, start_date = NULL, end_date = NULL) { return(tibble::tibble()) } -# Wrangle output ---------------------------------------------------------- + # Wrangle output ---------------------------------------------------------- out <- out %>% #move metadata to beginning dplyr::select(dplyr::starts_with("meta_"), dplyr::everything()) %>% diff --git a/tests/testthat/test-az_heat.R b/tests/testthat/test-az_heat.R index 14947a5..364f490 100644 --- a/tests/testthat/test-az_heat.R +++ b/tests/testthat/test-az_heat.R @@ -39,9 +39,11 @@ test_that("end_date can be specified without start_date", { res_end_old <- az_heat(station_id = 1, end_date = "2022-09-27") res_end_yesterday <- az_heat(station_id = 2, end_date = yesterday) }) - expect_s3_class(res_end_old, "data.frame") - expect_equal(res_end_old$datetime_last, lubridate::ymd("2022-09-27")) + expect_s3_class(res_end_yesterday, "data.frame") expect_equal(res_end_yesterday$datetime_last, yesterday) + + skip("not sure of desired behavior here") + expect_equal(res_end_old$datetime_last, lubridate::ymd("2022-09-27")) }) test_that("works with station_id as a vector", { From a988dbbe046070ec78e3e54dcd03fc7fafef4140 Mon Sep 17 00:00:00 2001 From: Eric Scott Date: Tue, 12 Dec 2023 09:24:27 -0700 Subject: [PATCH 4/7] get last date from data instead of guessing --- R/az_heat.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/R/az_heat.R b/R/az_heat.R index c020757..e6dbf7b 100644 --- a/R/az_heat.R +++ b/R/az_heat.R @@ -118,9 +118,8 @@ az_heat <- function(station_id = NULL, start_date = NULL, end_date = NULL) { dplyr::if_else(x %in% c(-999, -9999, -99999, -7999, 999, 999.9, 9999), NA_real_, x)) ) - # Since output from API doesn't contain any information about dates, this is just an assumption message("Returning data from ", format(params$start, "%Y-%m-%d"), - " through ", format(params$end, "%Y-%m-%d")) + " through ", format(max(out$datetime_last), "%Y-%m-%d")) return(out) } From 9844584940d1c3aefb42db18af3c9b79a205ffe9 Mon Sep 17 00:00:00 2001 From: Eric Scott Date: Tue, 12 Dec 2023 09:38:54 -0700 Subject: [PATCH 5/7] add debug option --- NEWS.md | 2 +- R/retrieve_data.R | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index 7548ff7..dc33143 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,7 +4,7 @@ - Improved messages regarding what date/time ranges are being queried and returned by data retrieval functions. - `az_hourly()` now returns data from the previous hour when `start_date_time` and `end_date_time` are not supplied rather than returning the previous day of hourly data. - `azmet` is now much more verbose, printing messages about which data are requested and which data are returned. - +- Added an option `"azmet.print_api_call"` which, when set to `TRUE` prints the HTTP request sent to the API—for debugging purposes. # azmetr 0.2.1 diff --git a/R/retrieve_data.R b/R/retrieve_data.R index 0efc0b0..05c8780 100644 --- a/R/retrieve_data.R +++ b/R/retrieve_data.R @@ -4,12 +4,14 @@ #' @param start_f character; ISO formatted date time string #' @param time_interval character; ISO8601 formatted time interval string #' @param endpoint character; one of "daily", "hourly", or "hueto" +#' @param print_call logical; when TRUE, prints the HTTP request to the AZMet API #' #' @return tibble #' @noRd #' retrieve_data <- function(station_id, start_f, time_interval, - endpoint = c("daily", "hourly", "hueto")) { + endpoint = c("daily", "hourly", "hueto"), + print_call = getOption("azmet.print_api_call")) { endpoint <- match.arg(endpoint) req <- httr2::request(base_url) %>% @@ -19,6 +21,10 @@ retrieve_data <- function(station_id, start_f, time_interval, #limit rate to 4 calls per second httr2::req_throttle(4 / 1) + if (isTRUE(print_call)) { + print(req) + } + resp <- req %>% httr2::req_perform() From 410dcfae07b7036ce871c5c99a2572d78a2e94cc Mon Sep 17 00:00:00 2001 From: Eric Scott Date: Tue, 12 Dec 2023 10:22:34 -0700 Subject: [PATCH 6/7] compact() to remove NULL columns before rbinding --- R/retrieve_data.R | 5 ++++- tests/testthat/test-az_heat.R | 6 +++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/R/retrieve_data.R b/R/retrieve_data.R index 05c8780..530f30e 100644 --- a/R/retrieve_data.R +++ b/R/retrieve_data.R @@ -35,7 +35,10 @@ retrieve_data <- function(station_id, start_f, time_interval, } data_tidy <- data_raw$data %>% - purrr::map_df(tibble::as_tibble) + purrr::compact() %>% + purrr::map(purrr::compact) %>% #removes any columns that are NULL (i.e. no data) + purrr::map(tibble::as_tibble) %>% + purrr::list_rbind() # missing columns for individual sites will be all NAs attributes(data_tidy) <- append(attributes(data_tidy), list( diff --git a/tests/testthat/test-az_heat.R b/tests/testthat/test-az_heat.R index 44f2d25..4d4ff44 100644 --- a/tests/testthat/test-az_heat.R +++ b/tests/testthat/test-az_heat.R @@ -88,8 +88,12 @@ test_that("start_date = NULL, end_date specified works", { az_heat(station_id = 1, end_date = yesterday), glue::glue("Returning data from {lubridate::floor_date(yesterday, 'year')} through {yesterday}") ) + expect_s3_class( + az_heat(end_date = "2022-02-01"), + "tbl_df" + ) expect_message( - az_heat(station_id = 1, end_date = "2022-02-01"), + az_heat(end_date = "2022-02-01"), "Returning data from 2022-01-01 through 2022-02-01" ) }) From 2bd6521699d9917b063b4b964a6fa2c444108254 Mon Sep 17 00:00:00 2001 From: Eric Scott Date: Tue, 12 Dec 2023 10:24:02 -0700 Subject: [PATCH 7/7] update news --- NEWS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS.md b/NEWS.md index dc33143..ce800c4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -5,6 +5,7 @@ - `az_hourly()` now returns data from the previous hour when `start_date_time` and `end_date_time` are not supplied rather than returning the previous day of hourly data. - `azmet` is now much more verbose, printing messages about which data are requested and which data are returned. - Added an option `"azmet.print_api_call"` which, when set to `TRUE` prints the HTTP request sent to the API—for debugging purposes. +- Fixed a bug that caused an error when data was requested from all stations but some stations didn't have data for all variables. # azmetr 0.2.1