tests/testthat/test_scales.R

context("antanym utilities")

test_that("map scale estimation works", {
    ## 1:20M map
    expect_equal(round(an_mapscale(c(400, 570), c(-180, 180, -90, -40)) /1e6), 20)

    ## 1:1M map
    expect_equal(round(an_mapscale(c(550, 550), c(68, 81, -70, -65))/1e6), 1)

    ## 1:50k map
    expect_lte(abs(round(an_mapscale(c(650, 750), c(158+36/60, 159+6/60, -54-47.5/60, -54-28/60))/1e3)-50), 1)

    ## 50M map
    expect_lte(abs(round(an_mapscale(c(150, 150), c(-180, 180, -90, -50))/1e6)-50), 1)

    ## check that an_mapscale copes with all map_extent input formats
    ext <- c(60, 90, -70, -60)
    dims <- c(100, 100)
    ms0 <- an_mapscale(map_dimensions = dims, map_extent = ext)
    ## as a raster object
    raster_ext <- raster()
    extent(raster_ext) <- ext
    expect_identical(ms0, an_mapscale(map_dimensions = dims, map_extent = raster_ext))
    ## as a raster extent object
    expect_identical(ms0, an_mapscale(map_dimensions = dims, map_extent = extent(raster_ext)))
    ## Spatial object
    my_sp <- sp::SpatialPoints(cbind(c(60, 90), c(-70, -60)))
    expect_identical(ms0, an_mapscale(map_dimensions = dims, map_extent = my_sp))
    ## Spatial bbox object
    expect_identical(ms0, an_mapscale(map_dimensions = dims, map_extent = sp::bbox(my_sp)))
})
SCAR/antanym documentation built on Sept. 13, 2022, 6:27 p.m.