tests/testthat/test-bb_helpers.R

context("bb_helpers")

test_that("bb_barchart works", {
  
  dat <- data.frame(
    labels = c("A", "B", "C"), 
    values = c(1, 2, 3),
    groups = c("a", "a", "b")
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_barchart(mapping = bbaes(labels, values))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "bar")
  
  bb <- billboarder(data = dat) %>% 
    bb_barchart(mapping = bbaes(labels, values, fill = groups))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "bar")
  
})




test_that("bb_bar_color_manual works", {
  
  dat <- data.frame(
    labels = c("A", "B", "C"), 
    values = c(1, 2, 3),
    groups = c("a", "a", "b")
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_barchart(mapping = bbaes(labels, values)) %>% 
    bb_bar_color_manual(values = list(
      A = "firebrick",
      B = "forestgreen",
      C = "steelblue"
    ))
  
  expect_is(bb, "billboarder")
  expect_is(bb$x$bb_opts$data$color, "JS_EVAL")
  
})



test_that("bb_categories works", {
  
  dat <- data.frame(
    labels = c("A", "B", "C"), 
    values = c(1, 2, 3),
    groups = c("a", "a", "b")
  )
  
  bb <- billboarder() %>% 
    bb_categories(categories = c("A", "B"))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$axis$x$type, "category")
  expect_identical(bb$x$bb_opts$axis$x$categories, c("A", "B"))
  
})



test_that("bb_scatterplot works", {
  
  dat <- data.frame(
    x = 1:10,
    y = 1:10,
    z = 1:10,
    groups = rep(c("A", "B"), each = 5)
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_scatterplot(mapping = bbaes(x, y))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "scatter")
  
  bb <- billboarder(data = dat) %>% 
    bb_scatterplot(mapping = bbaes(x, y, size = z))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "bubble")
  
  bb <- billboarder(data = dat) %>% 
    bb_scatterplot(mapping = bbaes(x, y, group = groups))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "scatter")
  
  
  bb <- billboarder(data = dat) %>% 
    bb_scatterplot(mapping = bbaes(x, y, group = groups, size = z))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "bubble")
  
})



test_that("bb_gaugechart works", {

  bb <- billboarder() %>% 
    bb_gaugechart(value = 50)
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "gauge")
  
})





test_that("bb_piechart works", {
  
  dat <- data.frame(
    labels = c("A", "B", "C"), 
    values = c(1, 2, 3),
    groups = c("a", "a", "b")
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_piechart(mapping = bbaes(labels, values))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "pie")
  
})



test_that("bb_donutchart works", {
  
  dat <- data.frame(
    labels = c("A", "B", "C"), 
    values = c(1, 2, 3),
    groups = c("a", "a", "b")
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_donutchart(mapping = bbaes(labels, values))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "donut")
  
  bb <- billboarder() %>% 
    bb_donutchart(data = dat)
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "donut")
  
})




test_that("bb_linechart works", {
  
  dat <- data.frame(
    index = seq_len(100),
    Sine = sin(1:100/10),
    Cosine = 0.5 * cos(1:100/10),
    Sine2 = sin(1:100/10) * 0.25 + 0.5
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_linechart(mapping = bbaes(index, Sine), dasharray = 2, width = 5)
  
  expect_is(bb, "billboarder")
  expect_is(bb$x$bb_opts$data$type, "list")
  expect_true(length(bb$x$bb_opts$customStyle) > 0)
  
  
  bb <- billboarder() %>% 
    bb_linechart(data = rnorm(30))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type[[1]], "line")
})




test_that("bb_densityplot works", {
  
  dat <- data.frame(
    x = rnorm(100),
    groups = rep(c("A", "B"), each = 50)
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_densityplot(mapping = bbaes(x))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "area-spline")
  
  bb <- billboarder(data = dat) %>% 
    bb_densityplot(mapping = bbaes(x, group = groups))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "area-spline")
})




test_that("bb_histogram works", {
  
  dat <- data.frame(
    x = rnorm(100),
    groups = rep(c("A", "B"), each = 50)
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_histogram(mapping = bbaes(x))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "area-step")
  
  bb <- billboarder(data = dat) %>% 
    bb_histogram(mapping = bbaes(x, group = groups))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "area-step")
})




test_that("bb_lollipop works", {
  
  dat <- data.frame(
    labels = c("A", "B", "C"), 
    values = c(1, 2, 3),
    groups = c("a", "a", "b")
  )
  
  bb <- billboarder(data = dat) %>% 
    bb_lollipop(mapping = bbaes(labels, values))
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "bar")
  
})





test_that("bb_radarchart works", {
  
  data("avengers_wide")

  bb <- billboarder() %>%
    bb_radarchart(data = avengers_wide)
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "radar")
  
  data("avengers")
  
  bb <- billboarder() %>%
    bb_radarchart(
      data = avengers, 
      mapping = bbaes(x = axis, y = value, group = group)
    )
  
  expect_is(bb, "billboarder")
  expect_identical(bb$x$bb_opts$data$type, "radar")
  
})
dreamRs/billboarder documentation built on Feb. 26, 2024, 1:17 p.m.