tests/testthat/test_genome.r

genome_path <- system.file("extdata", "hg19.chrom.sizes.gz", package = "valr")
genome <- read_genome(genome_path)

test_that("genomes are correctly read", {
  expect_equal(nrow(genome), 25)
  expect_equal(colnames(genome), c("chrom", "size"))
  expect_true("data.frame" %in% class(genome))
})

test_that("unbounded intervals are removed", {
  x <- tibble::tribble(
    ~chrom , ~start , ~end ,
    "chr1" ,   -100 ,  500 ,
    "chr1" ,    100 ,  1e9 ,
    "chr1" ,    500 , 1000
  )
  expect_equal(nrow(bound_intervals(x, genome)), 1)
})

test_that("trim param removes dangling intervals", {
  x <- tibble::tribble(
    ~chrom , ~start , ~end      ,
    "chr1" ,      1 , 249250721
  )
  res <- bound_intervals(x, genome, trim = TRUE)
  expect_equal(res$end, 249250621)
})

test_that("duplicate chroms throw an error.", {
  genome <- tibble::tribble(
    ~chrom , ~size ,
    "chr1" ,  1000 ,
    "chr1" ,  1000
  )

  x <- tibble::tribble(
    ~chrom , ~start , ~end  ,
    "chr1" ,      1 , 10000
  )

  expect_error(bed_complement(x, genome))
})

Try the valr package in your browser

Any scripts or data that you put into this service are public.

valr documentation built on Dec. 10, 2025, 9:08 a.m.