test_that("CWB_FixedSchedule() works as expected in example", { Tavg <- DataForCWB[, 2] Tmax <- DataForCWB[, 3] Tmin <- DataForCWB[, 4] Rn <- DataForCWB[, 6] WS <- DataForCWB[, 7] RH <- DataForCWB[, 8] G <- DataForCWB[, 9] ET0 <- ET0_PM(Tavg, Tmax, Tmin, Rn, RH, WS, G, Alt = 700) Rain <- DataForCWB[, 10] Drz <- DataForCWB[, 11] AWC <- DataForCWB[, 12] MAD <- DataForCWB[, 13] Kc <- DataForCWB[, 14] Irrig <- DataForCWB[, 15] Scheduling <- 5 tes <- CWB_FixedSchedule( Rain = Rain, ET0 = ET0, AWC = AWC, Drz = Drz, Kc = Kc, Irrig = Irrig, MAD = MAD, Scheduling = Scheduling, start.date = "2023-11-23" ) expect_s3_class(tes, "data.frame") expect_length(tes, 14) expect_equal(nrow(tes), 129) expect_named( tes, c( "DaysSeason", "Rain", "Irrig", "ET0", "Kc", "WaterStressCoef_Ks", "ETc", "(P+Irrig)-ETc", "NonStandardCropEvap", "ET_Defict", "TAW", "SoilWaterDeficit", "d_MAD", "Scheduling" ) ) expect_equal(tes[1:3, "NonStandardCropEvap"], c(2.440372, 4.171917, 4.290477), tolerance = 0.01) expect_equal(tes[1:3, "ET_Defict"], c(0.000000000, 0.000000000, 0.000000000), tolerance = 0.01) expect_equal(tes[1:3, "TAW"], c(45.72, 45.72, 45.72), tolerance = 0.01) expect_equal(tes[1:3, "SoilWaterDeficit"], c(0.0000000, 3.9179166, 8.2083937), tolerance = 0.01) expect_equal(tes[1:3, "d_MAD"], c(13.716, 13.716, 13.716), tolerance = 0.01) expect_equal(tes[1:3, "Scheduling"], c("No", "No", "No")) }) test_that("CWB_FixedSchedule() works as expected when initialD is provided", { Tavg <- DataForCWB[, 2] Tmax <- DataForCWB[, 3] Tmin <- DataForCWB[, 4] Rn <- DataForCWB[, 6] WS <- DataForCWB[, 7] RH <- DataForCWB[, 8] G <- DataForCWB[, 9] ET0 <- ET0_PM(Tavg, Tmax, Tmin, Rn, RH, WS, G, Alt = 700) Rain <- DataForCWB[, 10] Drz <- DataForCWB[, 11] AWC <- DataForCWB[, 12] MAD <- DataForCWB[, 13] Kc <- DataForCWB[, 14] Irrig <- DataForCWB[, 15] Scheduling <- 5 tes <- CWB_FixedSchedule( Rain = Rain, ET0 = ET0, AWC = AWC, Drz = Drz, Kc = Kc, Irrig = Irrig, MAD = MAD, Scheduling = Scheduling, InitialD = 0, start.date = "2023-11-23" ) expect_s3_class(tes, "data.frame") expect_length(tes, 14) expect_equal(nrow(tes), 129) expect_named( tes, c( "DaysSeason", "Rain", "Irrig", "ET0", "Kc", "WaterStressCoef_Ks", "ETc", "(P+Irrig)-ETc", "NonStandardCropEvap", "ET_Defict", "TAW", "SoilWaterDeficit", "d_MAD", "Scheduling" ) ) expect_equal(tes[1:3, "NonStandardCropEvap"], c(2.440372, 4.171917, 4.290477), tolerance = 0.01) expect_equal(tes[1:3, "ET_Defict"], c(0.000000000, 0.000000000, 0.000000000), tolerance = 0.01) expect_equal(tes[1:3, "TAW"], c(45.72, 45.72, 45.72), tolerance = 0.01) expect_equal(tes[1:3, "SoilWaterDeficit"], c(0.0000000, 3.9179166, 8.2083937), tolerance = 0.01) expect_equal(tes[1:3, "d_MAD"], c(13.716, 13.716, 13.716), tolerance = 0.01) expect_equal(tes[1:3, "Scheduling"], c("No", "No", "No")) }) test_that("Wrong date format", { Tavg <- DataForCWB[, 2] Tmax <- DataForCWB[, 3] Tmin <- DataForCWB[, 4] Rn <- DataForCWB[, 6] WS <- DataForCWB[, 7] RH <- DataForCWB[, 8] G <- DataForCWB[, 9] ET0 <- ET0_PM(Tavg, Tmax, Tmin, Rn, RH, WS, G, Alt = 700) Rain <- DataForCWB[, 10] Drz <- DataForCWB[, 11] AWC <- DataForCWB[, 12] MAD <- DataForCWB[, 13] Kc <- DataForCWB[, 14] Irrig <- DataForCWB[, 15] Scheduling <- 5 start.date <- "date" expect_error( CWB_FixedSchedule( Rain = Rain, ET0 = ET0, AWC = AWC, Drz = Drz, Kc = Kc, Irrig = Irrig, MAD = MAD, Scheduling = Scheduling, start.date = start.date ), "`date` is not in a valid date format. Please enter a valid date format." ) }) test_that("CWB_FixedSchedule() works as expected When Kc is NULL", { Tavg <- DataForCWB[, 2] Tmax <- DataForCWB[, 3] Tmin <- DataForCWB[, 4] Rn <- DataForCWB[, 6] WS <- DataForCWB[, 7] RH <- DataForCWB[, 8] G <- DataForCWB[, 9] ET0 <- ET0_PM(Tavg, Tmax, Tmin, Rn, RH, WS, G, Alt = 700) Rain <- DataForCWB[, 10] Drz <- DataForCWB[, 11] AWC <- DataForCWB[, 12] MAD <- DataForCWB[, 13] Irrig <- DataForCWB[, 15] Scheduling <- 5 tes <- CWB_FixedSchedule( Rain = Rain, ET0 = ET0, AWC = AWC, Drz = Drz, Irri = Irrig, MAD = MAD, Scheduling = Scheduling, start.date = "2023-11-23" ) expect_s3_class(tes, "data.frame") expect_length(tes, 14) expect_equal(nrow(tes), 129) expect_named( tes, c( "DaysSeason", "Rain", "Irrig", "ET0", "Kc", "WaterStressCoef_Ks", "ETc", "(P+Irrig)-ETc", "NonStandardCropEvap", "ET_Defict", "TAW", "SoilWaterDeficit", "d_MAD", "Scheduling" ) ) expect_equal(tes[1:3, "NonStandardCropEvap"], c(2.440372, 4.171917, 4.290477), tolerance = 0.01) expect_equal(tes[1:3, "ET_Defict"], c(0.000000000, 0.000000000, 0.000000000), tolerance = 0.01) expect_equal(tes[1:3, "TAW"], c(45.72, 45.72, 45.72), tolerance = 0.01) expect_equal(tes[1:3, "SoilWaterDeficit"], c(0.0000000, 3.9179166, 8.2083937), tolerance = 0.01) expect_equal(tes[1:3, "d_MAD"], c(13.716, 13.716, 13.716), tolerance = 0.01) expect_equal(tes[1:3, "Scheduling"], c("No", "No", "No")) }) test_that("CWB_FixedSchedule() works as expected When Irrig is NULL", { Tavg <- DataForCWB[, 2] Tmax <- DataForCWB[, 3] Tmin <- DataForCWB[, 4] Rn <- DataForCWB[, 6] WS <- DataForCWB[, 7] RH <- DataForCWB[, 8] G <- DataForCWB[, 9] ET0 <- ET0_PM(Tavg, Tmax, Tmin, Rn, RH, WS, G, Alt = 700) Rain <- DataForCWB[, 10] Drz <- DataForCWB[, 11] AWC <- DataForCWB[, 12] MAD <- DataForCWB[, 13] Kc <- DataForCWB[, 14] #Irrig <- DataForCWB[,15] Scheduling <- 5 tes <- CWB_FixedSchedule( Rain = Rain, ET0 = ET0, AWC = AWC, Drz = Drz, Kc = Kc, MAD = MAD, Scheduling = Scheduling, start.date = "2023-11-23" ) expect_s3_class(tes, "data.frame") expect_length(tes, 14) expect_equal(nrow(tes), 129) expect_named( tes, c( "DaysSeason", "Rain", "Irrig", "ET0", "Kc", "WaterStressCoef_Ks", "ETc", "(P+Irrig)-ETc", "NonStandardCropEvap", "ET_Defict", "TAW", "SoilWaterDeficit", "d_MAD", "Scheduling" ) ) expect_equal(tes[1:3, "NonStandardCropEvap"], c(2.440372, 4.171917, 4.290477), tolerance = 0.01) expect_equal(tes[1:3, "ET_Defict"], c(0.000000000, 0.000000000, 0.000000000), tolerance = 0.01) expect_equal(tes[1:3, "TAW"], c(45.72, 45.72, 45.72), tolerance = 0.01) expect_equal(tes[1:3, "SoilWaterDeficit"], c(0.0000000, 3.9179166, 8.2083937), tolerance = 0.01) expect_equal(tes[1:3, "d_MAD"], c(13.716, 13.716, 13.716), tolerance = 0.01) expect_equal(tes[1:3, "Scheduling"], c("No", "No", "No")) }) test_that("CWB_FixedSchedule() works as expected When MAD is NULL", { Tavg <- DataForCWB[, 2] Tmax <- DataForCWB[, 3] Tmin <- DataForCWB[, 4] Rn <- DataForCWB[, 6] WS <- DataForCWB[, 7] RH <- DataForCWB[, 8] G <- DataForCWB[, 9] ET0 <- ET0_PM(Tavg, Tmax, Tmin, Rn, RH, WS, G, Alt = 700) Rain <- DataForCWB[, 10] Drz <- DataForCWB[, 11] AWC <- DataForCWB[, 12] #MAD <- DataForCWB[,13] Kc <- DataForCWB[, 14] Irrig <- DataForCWB[, 15] Scheduling <- 5 tes <- CWB_FixedSchedule( Rain = Rain, ET0 = ET0, AWC = AWC, Drz = Drz, Kc = Kc, Irrig = Irrig, Scheduling = Scheduling, start.date = "2023-11-23" ) expect_s3_class(tes, "data.frame") expect_length(tes, 14) expect_equal(nrow(tes), 129) expect_named( tes, c( "DaysSeason", "Rain", "Irrig", "ET0", "Kc", "WaterStressCoef_Ks", "ETc", "(P+Irrig)-ETc", "NonStandardCropEvap", "ET_Defict", "TAW", "SoilWaterDeficit", "d_MAD", "Scheduling" ) ) expect_equal(tes[1:3, "NonStandardCropEvap"], c(2.440372, 4.171917, 4.290477), tolerance = 0.01) expect_equal(tes[1:3, "ET_Defict"], c(0.000000000, 0.000000000, 0.000000000), tolerance = 0.01) expect_equal(tes[1:3, "TAW"], c(45.72, 45.72, 45.72), tolerance = 0.01) expect_equal(tes[1:3, "SoilWaterDeficit"], c(0.0000000, 3.9179166, 8.2083937), tolerance = 0.01) expect_equal(tes[1:3, "d_MAD"], c(13.716, 13.716, 13.716), tolerance = 0.01) expect_equal(tes[1:3, "Scheduling"], c("No", "No", "No")) }) test_that("CWB_FixedSchedule() works as expected when G is NULL", { Tavg <- DataForCWB[, 2] Tmax <- DataForCWB[, 3] Tmin <- DataForCWB[, 4] Rn <- DataForCWB[, 6] WS <- DataForCWB[, 7] RH <- DataForCWB[, 8] expect_warning(ET0 <- ET0_PM(Tavg, Tmax, Tmin, Rn, RH, WS, Alt = 700), "The first 3 G values were set to zero") Rain <- DataForCWB[, 10] Drz <- DataForCWB[, 11] AWC <- DataForCWB[, 12] MAD <- DataForCWB[, 13] Kc <- DataForCWB[, 14] Irrig <- DataForCWB[, 15] Scheduling <- 5 tes <- CWB_FixedSchedule( Rain = Rain, ET0 = ET0, AWC = AWC, Drz = Drz, MAD = MAD, Scheduling = Scheduling, Kc = Kc, Irrig = Irrig, start.date = "2023-11-23" ) expect_s3_class(tes, "data.frame") expect_length(tes, 14) expect_equal(nrow(tes), 129) expect_named( tes, c( "DaysSeason", "Rain", "Irrig", "ET0", "Kc", "WaterStressCoef_Ks", "ETc", "(P+Irrig)-ETc", "NonStandardCropEvap", "ET_Defict", "TAW", "SoilWaterDeficit", "d_MAD", "Scheduling" ) ) expect_equal(tes[1:3, "NonStandardCropEvap"], c(2.293183, 4.104242, 4.333359), tolerance = 0.01) expect_equal(tes[1:3, "ET_Defict"], c(0.000000000, 0.000000000, 0.000000000), tolerance = 0.01) expect_equal(tes[1:3, "TAW"], c(45.72, 45.72, 45.72), tolerance = 0.01) expect_equal(tes[1:3, "SoilWaterDeficit"], c(0.0000000, 3.8502425, 8.1836018), tolerance = 0.01) expect_equal(tes[1:3, "d_MAD"], c(13.716, 13.716, 13.716), tolerance = 0.01) expect_equal(tes[1:3, "Scheduling"], c("No", "No", "No")) }) test_that("CWB_FixedSchedule() works as expected when P