This page was generated on 2020-10-17 11:54:23 -0400 (Sat, 17 Oct 2020).
R version 4.0.3 (2020-10-10) -- "Bunny-Wunnies Freak Out"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> # The line you need to have R CMD check work,
> # and avoid some weird error I got from R CMD check.
>
> Sys.setenv("R_TESTS" = "")
>
> # The following commands model off of
> # https://github.com/hadley/testthat
>
> library(testthat)
> library(ASAFE)
>
> test_check("ASAFE")
[1] "alleles_1 and ancestries_1 have been defined so that\n n is an 18-long vector of 1's,\n algorithm_1snp(alleles_1, ancestries_1) =\n em(n = replicate(n = 18, expr = 1), epsilon = 10^-8, iteration_cap = 1000).\n algorithm_1snp(alleles_1, ancestries_1) = "
[1] 0.5 0.5 0.5
[1] "alleles are: "
rs1 rs2
[1,] 0 0
[2,] 0 0
[3,] 0 0
[4,] 0 0
[5,] 0 0
[6,] 0 0
[7,] 0 0
[8,] 0 0
[9,] 0 0
[10,] 0 0
[11,] 0 0
[12,] 0 0
[13,] 0 0
[14,] 1 1
[15,] 0 0
[16,] 1 1
[17,] 0 0
[18,] 1 1
[19,] 0 0
[20,] 1 1
[21,] 0 0
[22,] 1 1
[23,] 0 0
[24,] 1 1
[25,] 1 1
[26,] 1 1
[27,] 1 1
[28,] 1 1
[29,] 1 1
[30,] 1 1
[31,] 1 1
[32,] 1 1
[33,] 1 1
[34,] 1 1
[35,] 1 1
[36,] 1 1
[1] "ancestries are: "
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
ancestries_1 0 0 0 1 0 2 1 1 1 2 2 2
ancestries_1 0 0 0 1 0 2 1 1 1 2 2 2
[,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21] [,22] [,23]
ancestries_1 0 0 0 1 0 2 1 1 1 2 2
ancestries_1 0 0 0 1 0 2 1 1 1 2 2
[,24] [,25] [,26] [,27] [,28] [,29] [,30] [,31] [,32] [,33] [,34]
ancestries_1 2 0 0 0 1 0 2 1 1 1 2
ancestries_1 2 0 0 0 1 0 2 1 1 1 2
[,35] [,36]
ancestries_1 2 2
ancestries_1 2 2
[1] "algorithm_1snp_wrapper(i = 1,\n alleles = alleles,\n ancestries = ancestries)"
[1] "rs1" "0.5" "0.5" "0.5"
[1] "algorithm_1snp_wrapper(i = 2,\n alleles = alleles,\n ancestries = ancestries)"
[1] "rs2" "0.5" "0.5" "0.5"
[1] "change_ancestry(anc = 0, error_rate = 1) should be 1 or 2"
[1] 2
[1] "change_ancestry(anc = 1, error_rate = 1) should be 0 or 2"
[1] 2
[1] "change_ancestry(anc = 2, error_rate = 1) should be 0 or 1"
[1] 1
[1] "draw_allele_given_anc(anc = 0, freqs = c(1, 0, 0)) should return 1"
[1] "draw_allele_given_anc(anc = 0, freqs = c(0, 0, 0)) should return 0"
[1] "draw_allele_given_anc(anc = 1, freqs = c(0, 1, 0)) should return 1"
[1] "draw_allele_given_anc(anc = 1, freqs = c(0, 0, 0)) should return 0"
[1] "draw_allele_given_anc(anc = 2, freqs = c(0, 0, 1)) should return 1"
[1] "draw_allele_given_anc(anc = 2, freqs = c(0, 0, 0)) should return 0"
[1] "draw_allele_given_anc(anc = 3, freqs = c(0, 0, 0)) should return error"
[1] "em(n = replicate(n = 18, expr = 1),\n epsilon = 10^-8, iteration_cap = 1000) = "
[1] 0.5 0.5 0.5
[1] "The following should run: "
[1] "n_ind = 3"
[1] "n_markers = 2"
[1] "ancestries_matrix = "
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 1 1
[4,] 1 1
[5,] 2 2
[6,] 2 2
[1] "get_errors_1_scenario(p0 = 1, p1 = 1, p2 = 1,\n ancestries_matrix_true = ancestries_matrix,\n ancestries_matrix_estimated = ancestries_matrix)"
[,1] [,2]
[1,] -3e-08 -3e-08
[2,] -3e-08 -3e-08
[3,] -3e-08 -3e-08
[1] "The following should run: "
[1] "n_ind = 3"
[1] "n_markers = 2"
[1] "ancestries_matrix = "
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 1 1
[4,] 1 1
[5,] 2 2
[6,] 2 2
[1] "get_errors_1_scenario(p0 = 1, p1 = 1, p2 = 1,\n ancestries_matrix_true = ancestries_matrix,\n ancestries_matrix_estimated = ancestries_matrix)"
[,1] [,2]
[1,] -3e-08 -3e-08
[2,] -3e-08 -3e-08
[3,] -3e-08 -3e-08
[1] "get_errors_summary_stats_1_scenario(p0 = 1, p1 = 1, p2 = 1,\n ancestries_matrix_true = ancestries_matrix,\n ancestries_matrix_estimated = ancestries_matrix)\n takes mean error over snp columns, and errors across snps should be identical,\n so mean errors should be the same as a column from the output of\n the get_errors_1_scenario() call"
mean_errors sd_errors
[1,] -3e-08 0
[2,] -3e-08 0
[3,] -3e-08 0
[1] "Constructing an example where I know what to expect\n from this function."
[1] "Say estimates are: "
rsid Freq1_Anc0 Freq1_Anc1 Freq1_Anc2
[1,] 1 0.15 0.15 0.15
[2,] 2 0.36 0.36 0.36
[3,] 3 0.57 0.57 0.57
[4,] 4 0.78 0.78 0.78
[5,] 5 0.99 0.99 0.99
[1] "Say truth is: "
rsid Freq1_Anc0 Freq1_Anc1 Freq1_Anc2
[1,] 1 0.1 0.1 0.1
[2,] 2 0.3 0.3 0.3
[3,] 3 0.5 0.5 0.5
[4,] 4 0.7 0.7 0.7
[5,] 5 0.9 0.9 0.9
[1] "Constructing an example where I know what to expect\n from this function."
[1] "Say estimates are: "
rsid Freq1_Anc0 Freq1_Anc1 Freq1_Anc2
[1,] 1 0.1 0.1 0.1
[2,] 2 0.1 0.1 0.1
[3,] 3 0.1 0.1 0.1
[4,] 4 0.9 0.9 0.9
[5,] 5 0.9 0.9 0.9
[6,] 6 0.9 0.9 0.9
[1] "Say truth is: "
rsid Freq1_Anc0 Freq1_Anc1 Freq1_Anc2
[1,] 1 0.2 0.2 0.2
[2,] 2 0.2 0.2 0.2
[3,] 3 0.5 0.5 0.5
[4,] 4 0.5 0.5 0.5
[5,] 5 0.8 0.8 0.8
[6,] 6 0.8 0.8 0.8
[1] "n_ind = 3"
[1] "n_markers = 2"
[1] "anc_spec_freqs = "
[,1] [,2] [,3]
[1,] 1.0 1.0 1.0
[2,] 0.0 0.0 0.0
[3,] 0.5 0.5 0.5
[1] "ancestries_matrix = "
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 1 1
[4,] 1 1
[5,] 2 2
[6,] 2 2
[1] "get_results_error(error_rate = 0,\n anc_spec_freqs, ancestries_matrix_true) = "
p0 p1 p2 Mean SD
Abs_Error_Afr_Freq 1.0 1.0 1.0 -3.0e-08 0.00000e+00
Abs_Error_Eur_Freq 1.0 1.0 1.0 -3.0e-08 0.00000e+00
Abs_Error_NA_Freq 1.0 1.0 1.0 -3.0e-08 0.00000e+00
Abs_Error_Afr_Freq 0.0 0.0 0.0 3.0e-08 0.00000e+00
Abs_Error_Eur_Freq 0.0 0.0 0.0 3.0e-08 0.00000e+00
Abs_Error_NA_Freq 0.0 0.0 0.0 3.0e-08 0.00000e+00
Abs_Error_Afr_Freq 0.5 0.5 0.5 3.0e-08 0.00000e+00
Abs_Error_Eur_Freq 0.5 0.5 0.5 1.5e-08 2.12132e-08
Abs_Error_NA_Freq 0.5 0.5 0.5 0.0e+00 0.00000e+00
[1] "get_results_error(error_rate = 1,\n anc_spec_freqs, ancestries_matrix_true) = "
p0 p1 p2 Mean SD
Abs_Error_Afr_Freq 1.0 1.0 1.0 -2.25e-08 1.060660e-08
Abs_Error_Eur_Freq 1.0 1.0 1.0 -4.50e-08 2.121320e-08
Abs_Error_NA_Freq 1.0 1.0 1.0 -4.50e-08 2.121320e-08
Abs_Error_Afr_Freq 0.0 0.0 0.0 2.25e-08 1.060660e-08
Abs_Error_Eur_Freq 0.0 0.0 0.0 4.50e-08 2.121320e-08
Abs_Error_NA_Freq 0.0 0.0 0.0 4.50e-08 2.121320e-08
Abs_Error_Afr_Freq 0.5 0.5 0.5 6.25e-01 5.303301e-01
Abs_Error_Eur_Freq 0.5 0.5 0.5 0.00e+00 0.000000e+00
Abs_Error_NA_Freq 0.5 0.5 0.5 -7.50e-01 3.535534e-01
[1] "anc_spec_freqs = "
[,1] [,2] [,3]
[1,] 1.0 1.0 1.0
[2,] 0.0 0.0 0.0
[3,] 0.5 0.5 0.5
[1] "ancestries_matrix = "
[,1] [,2]
[1,] 0 0
[2,] 0 0
[3,] 1 1
[4,] 1 1
[5,] 2 2
[6,] 2 2
[1] "get_scenario_errors(row = 1, anc_spec_freqs = anc_spec_freqs,\n ancestries_matrix_true = ancestries_matrix,\n ancestries_matrix_estimated = ancestries_matrix)"
p0 p1 p2 mean_errors sd_errors
[1,] 1 1 1 -3e-08 0
[2,] 1 1 1 -3e-08 0
[3,] 1 1 1 -3e-08 0
[1] "get_scenario_errors(row = 2, anc_spec_freqs = anc_spec_freqs,\n ancestries_matrix_true = ancestries_matrix,\n ancestries_matrix_estimated = ancestries_matrix)"
p0 p1 p2 mean_errors sd_errors
[1,] 0 0 0 3e-08 0
[2,] 0 0 0 3e-08 0
[3,] 0 0 0 3e-08 0
[1] "get_scenario_errors(row = 3, anc_spec_freqs = anc_spec_freqs,\n ancestries_matrix_true = ancestries_matrix,\n ancestries_matrix_estimated = ancestries_matrix)"
p0 p1 p2 mean_errors sd_errors
[1,] 0.5 0.5 0.5 0.000000e+00 0.000000e+00
[2,] 0.5 0.5 0.5 2.974014e-17 4.242641e-08
[3,] 0.5 0.5 0.5 3.000000e-08 0.000000e+00
[1] "get_true_freqs_1snp(alleles_1 = c(0, 0, 1, 0, 1, 1),\n ancestries_1 = c(0, 1, 0, 2, 1, 2))\n should return [0.5, 0.5, 0.5]"
[1] "sample_ancestry(0) = Should be something other than 0"
[1] 2
[1] "sample_ancestry(1) = Should be something other than 1"
[1] 0
[1] "sample_ancestry(2) = Should be something other than 2"
[1] 1
══ testthat results ═══════════════════════════════════════════════════════════
[ OK: 63 | SKIPPED: 5 | WARNINGS: 0 | FAILED: 0 ]
>
> # Note that in the directory tests/testthat,
> # there's 1 test file per function. I like that format,
> # because I don't have to scroll through a long file.
> # Hadley does the same thing here:
> # https://github.com/hadley/testthat/tree/master/tests/testthat.
>
> proc.time()
user system elapsed
1.121 0.042 1.144