tests/testthat/test_calculatetSexRatio.R

#' Copyright(c) 2017-2024 R. Mark Sharp
#' This file is part of nprcgenekeepr
context("calculateSexRatio")

data("qcBreeders")
data("pedWithGenotype")
skip_if_not(exists("qcBreeders"))
skip_if_not(exists("pedWithGenotype"))
available <- c(
  "JGPN6K", "8KM1MP", "I9TQ0T", "Q0RGP7", "VFS0XB", "CQC133",
  "2KULR3", "HOYW0S", "FHV13N", "OUM6QF", "6Z7MD9", "CFPEEU",
  "HLI95R", "RI0O7F", "7M51X5", "DR5GXB", "170ZTZ", "C1ICXL"
)
nonMales <- c(
  "JGPN6K", "8KM1MP", "I9TQ0T", "Q0RGP7", "CQC133",
  "2KULR3", "HOYW0S", "FHV13N", "OUM6QF", "6Z7MD9", "CFPEEU",
  "HLI95R", "RI0O7F", "7M51X5", "DR5GXB", "170ZTZ", "C1ICXL"
)
male <- "VFS0XB"
test_that("calculateSexRatio calculates correctly", {
  expect_equal(calculateSexRatio(ids = male, ped = pedWithGenotype), 0.0)
  expect_equal(calculateSexRatio(ids = nonMales, ped = pedWithGenotype), Inf)
  expect_equal(calculateSexRatio(ids = available, ped = pedWithGenotype), 17.0)
  expect_equal(calculateSexRatio(
    ids = available, ped = pedWithGenotype,
    additionalMales = 1L
  ), 8.5)
  expect_equal(calculateSexRatio(
    ids = available, ped = pedWithGenotype,
    additionalFemales = 1L
  ), 18.0)
  expect_equal(calculateSexRatio(
    ids = available, ped = pedWithGenotype,
    additionalMales = 1L, additionalFemales = 1L
  ), 9.0)
  expect_equal(
    calculateSexRatio(
      ids = nonMales, ped = pedWithGenotype,
      additionalMales = 1L, additionalFemales = 0L
    ),
    17.0
  )
  expect_equal(
    calculateSexRatio(
      ids = character(0L), ped = pedWithGenotype,
      additionalMales = 1L, additionalFemales = 0L
    ),
    0.0
  )
  expect_true(is.na(calculateSexRatio(
    ids = character(0L), ped = pedWithGenotype,
    additionalMales = 0L,
    additionalFemales = 0L
  )))
  expect_equal(calculateSexRatio(
    ids = character(0L), ped = pedWithGenotype,
    additionalMales = 0L,
    additionalFemales = 1L
  ), Inf)
  expect_equal(calculateSexRatio(
    ids = character(0L), ped = pedWithGenotype,
    additionalMales = 2L,
    additionalFemales = 1L
  ), 0.5)
})

Try the nprcgenekeepr package in your browser

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

nprcgenekeepr documentation built on June 8, 2025, 10:55 a.m.