library(vdiffr)
library(ggplot2)

context("arrows")
skip_on_ci()
test_that("arrow guide works", {

    g <- ggplot(seals, aes(long, lat)) +
        geom_vector(aes(dx = delta_long, dy = delta_lat), skip = 2)
    expect_doppelganger("no-scale",
                        g)
    expect_doppelganger("with-scale",
                        g + scale_mag())
    expect_doppelganger("guide-default", g + scale_mag("Seals velocity"))
    expect_doppelganger("guide-name-guide",
                        g + scale_mag(guide = guide_legend(title = "Velocity (m/s)")))
    expect_doppelganger("guide-max-1", g + scale_mag("Seals velocity", max = 1))
    expect_doppelganger("guide-max-2", g + scale_mag("Seals velocity", max = 2))
    expect_doppelganger("guide-max-size-2", g + scale_mag("Seals velocity", max_size = 2))
    expect_doppelganger("guide-mm",  g + scale_mag("Seals velocity", default_unit = "mm"))


     g <- ggplot(seals, aes(long, lat)) +
         geom_arrow(aes(dx = delta_long, dy = delta_lat), skip = 1, color = "red") +
         geom_vector(aes(dx = delta_long, dy = delta_lat), skip = 1) +
         scale_mag()

     expect_doppelganger("vector-arrow-example", g)

})

test_that("mag and angle equal dx and dy", {
    dxdy <- ggplot(seals, aes(long, lat)) +
        geom_vector(aes(dx = delta_long, dy = delta_lat), skip = 2) +
        scale_mag("Mag(delta_long, delta_lat)")

    magangle <- ggplot(seals, aes(long, lat)) +
        geom_vector(aes(mag = Mag(delta_long, delta_lat),
                        angle = Angle(delta_long, delta_lat)), skip = 2)
    expect_doppelganger("mag and angle", magangle)
    expect_doppelganger("dx and dy", dxdy)
})
