1
0

update plotting code and makefile

This commit is contained in:
2022-06-30 23:00:28 -07:00
parent 588bdd7ed7
commit cb1e895ff1
11 changed files with 1360 additions and 13 deletions

View File

@@ -0,0 +1,80 @@
library(filelock)
init.remember <- function(){
if(exists("r") == FALSE){
if(file.exists(remember.file)){
if(!exists("remember.file.lock"))
init.file.lock()
lck <- lock(remember.file.lock, exclusive = FALSE)
r <<- readRDS(remember.file)
unlock(lck)
} else {
r <<- list()
}
}
}
remember.file <<- "remembr.RDS"
init.file.lock <- function(){
remember.file.lock <<- paste0(remember.file,"_LOCK")
}
remember.prefix <<- ""
change.remember.file <- function(file,clear=FALSE){
if(!clear){
remember.file <<- file
init.file.lock()
save.remember()
} else {
remember.file <<- file
rm(r,pos=globalenv())
init.remember()
}
}
set.remember.prefix <- function(prefix){
remember.prefix <<- prefix
}
load.if.exists <- function(){
if(file.exists(remember.file)){
if(!exists("remember.file.lock"))
init.file.lock()
lck <- lock(remember.file.lock, exclusive = FALSE)
r <<- readRDS(remember.file)
unlock(lck)
} else {
r <<- list()
}
}
remember <- function(var,name,lock=T){
init.remember()
load.if.exists()
if(remember.prefix == ""){
r[[name]] <<- var
} else {
if(is.null(r[[remember.prefix]])){
r[[remember.prefix]] <<- list()
}
r[[remember.prefix]][[name]] <<- var
}
save.remember()
}
save.remember <- function(lock=T){
if(!exists("remember.file.lock"))
init.file.lock()
lck <- lock(remember.file.lock, exclusive=TRUE)
saveRDS(r,file=remember.file)
unlock(lck)
}
init.remember()

View File

@@ -0,0 +1,3 @@
#!Rscript
library(testthat)
testthat::test_dir('tests')

View File

@@ -0,0 +1,25 @@
library(testthat)
library(data.table)
source("../RemembeR.R")
test_that("single numbers",{
remember(1,"one")
expect_equal(r$one,1)
}
)
test_that("prefixes",{
set.remember.prefix("prefix")
remember(2,"two")
expect_equal(r$prefix$two,2)
expect_equal(r$one,1)
}
)
test.dt <- as.data.table(data("mtcars"))
test_that("data.tables",{
set.remember.prefix("")
remember(test.dt, 'test.dt')
expect_equal(r$test.dt,test.dt)
}
)