library(raster)
test_that("Catchment area", {
	skip_on_cran()
	kamp_dem = readRDS(system.file("testdata/kamp_dem_sm.rds", package="watershed"))
	kamp = delineate(kamp_dem, outlet=NA)
	expect_error(ca <- catchment(kamp), regex=NA)
	expect_equal(ca, sum(values(kamp$catchment), na.rm=TRUE) * prod(res(kamp$catchment)))
	## try for reaches
	Tp = pixel_topology(kamp)
	expect_error(ca_r <- catchment(kamp, type='reach', Tp = Tp), regex=NA)
	## outlet has largest catchment area, and is equal to the CA for the whole network
	Tr = reach_topology(kamp, Tp)
	out_r = .outlet(Tr)
	expect_equal(ca_r[out_r], max(ca_r))
	expect_equal(ca_r[out_r], ca)
	## smallest catchment area is one of the headwaters
	hw_r = .headwater(Tr)
	expect_true(min(ca_r) %in% ca_r[hw_r])
	## try for all pixels -- TOO SLOW
	## try for specific pixels
	px = stream_coordinates(kamp)[.outlet(Tp),]
	expect_error(ca_p <- catchment(kamp, type='points', y = px, Tp = Tp), regex=NA)
	ca_p_map <- expect_error(catchment(kamp, type='points', y = px, area = FALSE, Tp = Tp), regex=NA)
	## we used the outlet, so the area and the map should be identical to the whole river
	expect_equal(ca_p, ca)
	expect_true(compareRaster(ca_p_map, kamp$catchment, values=TRUE))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.