From 971bfbb0dee76b9db158b4b050376d5e3f710a75 Mon Sep 17 00:00:00 2001 From: Aleksis Vuoksenmaa Date: Sun, 1 Oct 2017 20:01:56 +0300 Subject: [PATCH 1/3] Added realistic tests to passing resource tests --- .../test/resources/data_analysis/DESCRIPTION | 9 +++ .../test/resources/data_analysis/NAMESPACE | 2 + .../resources/data_analysis/R/arithmetics.R | 16 ++++ .../test/resources/data_analysis/R/matrices.R | 3 + .../test/resources/data_analysis/R/strings.R | 3 + .../test/resources/data_analysis/R/week1.R | 73 +++++++++++++++++ .../test/resources/data_analysis/README.md | 8 ++ .../data_analysis/data_analysis.Rproj | 17 ++++ .../data_analysis/tests/testthat/helperTMC.R | 13 +++ .../tests/testthat/testArithmetics.R | 36 +++++++++ .../tests/testthat/testMatrices.R | 14 ++++ .../tests/testthat/testStrings.R | 8 ++ .../data_analysis/tests/testthat/testWeek1.R | 79 +++++++++++++++++++ .../test/resources/data_analysis/tmc/result.R | 4 + .../data_analysis/tmc_run_test_example.sh | 4 + .../src/test/resources/passing/R/week1.R | 73 +++++++++++++++++ .../passing/test/testthat/testWeek1.R | 79 +++++++++++++++++++ 17 files changed, 441 insertions(+) create mode 100644 tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION create mode 100644 tmc-langs-r/src/test/resources/data_analysis/NAMESPACE create mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/matrices.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/strings.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/week1.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/README.md create mode 100644 tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj create mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/tmc/result.R create mode 100644 tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh create mode 100644 tmc-langs-r/src/test/resources/passing/R/week1.R create mode 100644 tmc-langs-r/src/test/resources/passing/test/testthat/testWeek1.R diff --git a/tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION b/tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION new file mode 100644 index 000000000..cb6f570b1 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION @@ -0,0 +1,9 @@ +Package: data_analysis +Title: What the Package Does (one line, title case) +Version: 0.0.0.9000 +Authors@R: person("First", "Last", email = "first.last@example.com", role = c("aut", "cre")) +Description: What the package does (one paragraph). +Depends: R (>= 3.2.3) +License: What license is it under? +Encoding: UTF-8 +LazyData: true diff --git a/tmc-langs-r/src/test/resources/data_analysis/NAMESPACE b/tmc-langs-r/src/test/resources/data_analysis/NAMESPACE new file mode 100644 index 000000000..ce085262b --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/NAMESPACE @@ -0,0 +1,2 @@ +# Generated by roxygen2: fake comment so roxygen2 overwrites silently. +exportPattern("^[^\\.]") \ No newline at end of file diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R b/tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R new file mode 100644 index 000000000..fe5f31853 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R @@ -0,0 +1,16 @@ + +add <- function(a, b) { + return(a+b) +} + +subtract <- function(a, b) { + return(a-b) +} + +multiply <- function(a, b) { + return(a*b) +} + +divide <- function(a, b) { + return(a/b) +} diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/matrices.R b/tmc-langs-r/src/test/resources/data_analysis/R/matrices.R new file mode 100644 index 000000000..066d87d15 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/R/matrices.R @@ -0,0 +1,3 @@ +transpose_matrix <- function(matrix) { + return(t(matrix)) +} diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/strings.R b/tmc-langs-r/src/test/resources/data_analysis/R/strings.R new file mode 100644 index 000000000..7feafdf95 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/R/strings.R @@ -0,0 +1,3 @@ +constant_string <- function() { + return("jono") +} diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/week1.R b/tmc-langs-r/src/test/resources/data_analysis/R/week1.R new file mode 100644 index 000000000..07deb637a --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/R/week1.R @@ -0,0 +1,73 @@ +##These exercises are taken from the course "Data-analyysi R-ohjelmistolla" +#(https://wiki.helsinki.fi/pages/viewpage.action?pageId=135074576). +## + +##Exercise 1 + +a1 <- 4 + 10 +b1 <- 5*a1 +c1 <- b1^3 +d1 <- exp(b1) +e1 <- d1^(1/10) +f1 <- sin(c1) +res1 <- (b1 + c1 + e1 + f1) + +##Exercise 2 + +a2 <- 51%%7 + +##Excercise 3 +a3 <- 51%%7 + 51%/%7 + +##Excercise 4 +v4_1 <- c(20, 5, -2, 3, 47) +v4_2 <- seq(0, 100, 5) +v4_3 <- c(v4_1, v4_2) +v4_4 <- v4_3[(v4_3 > 3) & (v4_3 < 50)] +v4_5 <- v4_4[(v4_4 %% 10) == 0] + +##Exercise 5 +v5_1 <- rep(0, 1, 50) +v5_1[c(F, T)] <- 2 + +sum5_1 <- sum(v5_1) +v5_1 +v5_2 <- v5_1 +v5_2[c(T, F)] <- 1.2 +sum5_2 <- sum(v5_2) + +##Excerice 6 + +A <- matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE) + + +##Excercise 7 +B <- c(1, 1, 0)%*% solve(A) + +##Excercise 8 +I_3 <- diag(c(1, 1, 1)) +A_8 <- A %*%I_3 + +##Excercise 9 +is_eq_matrix <- t(A) == A +is_eq_matrix <- F + +##Excercise 10 +C_10 <- matrix(c(runif(20, min = 1, max=20)), ncol=4) +v10_1 <- C_10[C_10 < 5] +number10 <- length(v10_1) + +D_10 <- C_10 +D_10[D_10 < 5] <- 10 + +E_10 <- D_10 +E_10 <- D_10[c(T, T, T, T, F),c(F,T,T, T)] + + +##Excercise 11 +C_11 <- matrix(1:100, ncol=2) +C_11[c(F, T)] <- NA + +##Excercise 12 +C_12 <- C_11 +C_12[is.na(C_12)] <- 0 diff --git a/tmc-langs-r/src/test/resources/data_analysis/README.md b/tmc-langs-r/src/test/resources/data_analysis/README.md new file mode 100644 index 000000000..2d9b43401 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/README.md @@ -0,0 +1,8 @@ +# Project 1 + +This is a project that we use to test if testthat-tests that we have written +work and how the results can be parsed. + +## How to use + +To run tests on this test project, run the script `tmc_run_test_example.sh`. diff --git a/tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj b/tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj new file mode 100644 index 000000000..21a4da087 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj @@ -0,0 +1,17 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R new file mode 100644 index 000000000..f5d8a1992 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R @@ -0,0 +1,13 @@ + +#Sets the points for all tests to global environment, wherefrom they can +#be retrieved. +points_for_all_tests <- function(points) { + .GlobalEnv$points_for_all_tests <- points +} + +#The test that wraps around test_that()-method and stores the points +#to global environment. +test <- function(desc, points, code) { + .GlobalEnv$points[[desc]] <- points + test_that(desc, code) +} diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R new file mode 100644 index 000000000..2d099db79 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R @@ -0,0 +1,36 @@ +library('testthat') + +source("../../R/arithmetics.R") + +points_for_all_tests(c("r1")) + +test("Addition works", c("r1.1", "r1.2"), { + expect_equal(add(1, 2), 3) + expect_equal(add(1, 2), 3.0) + expect_equal(add(1, 4), 5) +}) + +test("Multiplication works", c("r1.3", "r1.4"), { + expect_equal(multiply(1, 2), 2) + expect_equal(multiply(2, 10), 20) +}) + +test("Subtraction works", c("r1.5"), { + expect_equal(subtract(10, 2), 8) + expect_equal(subtract(0, 0), 0) + expect_equal(subtract(0, 4), -4) +}) + +test("Division works", c("r1.6"), { + expect_equal(divide(10, 2), 5) + expect_equal(divide(1, 2), 0.5) +}) + +test("Test with no points", c(), { + expect_equal(1,1) +}) + +test("Dummy test set to fail", c(), { + expect_true(FALSE) + expect_equal(1,2) +}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R new file mode 100644 index 000000000..ad8bbe898 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R @@ -0,0 +1,14 @@ +library('testthat') +source('../../R/matrices.R') + +points_for_all_tests(c("r2")) + +test("Matrix transpose with [[1,2]] works", c("r2.1"), { + A<- matrix(c(1,2),nrow=1) + expect_equal(transpose_matrix(A),matrix(c(1,2),nrow=2)) +}) + +test("Matrix transpose with [[1,2],[3,4]] works", c("r2.2"), { + A<- matrix(c(1,2,3,4),nrow=2) + expect_equal(transpose_matrix(A),matrix(c(1,3,2,4),nrow=2)) +}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R new file mode 100644 index 000000000..cf8c71f0a --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R @@ -0,0 +1,8 @@ +library('testthat') +source('../../R/strings.R') + +points_for_all_tests(c("r3")) + +test("Constant string works", c("r3.1"), { + expect_equal(constant_string(), "jono") +}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R new file mode 100644 index 000000000..fed980b30 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R @@ -0,0 +1,79 @@ +library('testthat') +source('../../R/week1.R') + +points_for_all_tests(c("r4")) + +help_A <- matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE) + +test("Exercise 1 is correct", c("r4.1"), { + expect_equal(a1, 14) + expect_equal(b1, 70) + expect_equal(c1, 343000) + expect_true(abs(e1-1096.63) < 0.1) + expect_true(abs(f1 - 0.7920019) < 0.1) + expect_true(abs(res1 - 344167.4) < 0.1) +}) + +test("Exercise 2 is correct", c("r4.2"), { + expect_equal(a2, 2) +}) + +test("Exercise 3 is correct", c("r4.3", "r4.4"), { + expect_equal(a3, 9) +}) + +test("Exercise 4 is correct", c("r4.5"), { + expect_equal(v4_1, c(20, 5, -2, 3, 47)) + expect_equal(v4_2, c(0:20)*5) + expect_equal(v4_3, c(c(20, 5, -2, 3, 47), seq(0, 100, 5))) + expect_equal(v4_4, c(20, 5, 47, 5, 10, 15, 20, 25, 30, 35, 40, 45)) + expect_equal(v4_5, c(20, 10, 20, 30, 40)) +}) + +test("Exercise 5 is correct", c("r4.6"), { + t1 <- rep(0, 1, 50) + t1[c(F, T)] <- 2 + expect_equal(v5_1, t1) + expect_equal(sum5_1, 50) + expect_equal(sum5_2, 80) +}) + +test("Exercise 6 is correct", c("r4.7"), { + expect_equal(A, matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE)) +}) + +test("Exercise 7 is correct", c("r4.8"), { + expect_equal(A, help_A) +}) + +test("Exercise 8 is correct", c("r4.9"), { + expect_equal(B, c(1, 1, 0)%*%solve(help_A)) +}) + +test("Exercise 9 is correct", c("r4.10"), { + expect_equal(I_3, diag(c(1, 1, 1))) + expect_equal(A_8, help_A) +}) + +test("Exercise 10 is correct", c("r4.11"), { + expect_false(is_eq_matrix) +}) + +test("Exercise 11 is correct", c("r4.12"), { + expect_true(number10 < 10) + + expect_true(dim(E_10)[1] == 4) + expect_true(dim(E_10)[2] == 3) +}) + +test("Exercise 12 is correct", c("r4.13"), { + M <- matrix(1:100, ncol=2) + M[c(F, T)] <- NA + expect_equal(C_11, M) +}) + +test("Exercise 13 is correct", c("r4.14"), { + M <- matrix(1:100, ncol=2) + M[c(F, T)] <- 0 + expect_equal(C_12, M) +}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tmc/result.R b/tmc-langs-r/src/test/resources/data_analysis/tmc/result.R new file mode 100644 index 000000000..17f2dff64 --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/tmc/result.R @@ -0,0 +1,4 @@ +library(tmcRtestrunner) + +# Note: working directory must be the projects root! +run_tests(getwd()) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh b/tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh new file mode 100644 index 000000000..283efdd0f --- /dev/null +++ b/tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh @@ -0,0 +1,4 @@ +#!/bin/sh +#Currently this script needs to be run at project root! + +Rscript -e "library(tmcRtestrunner);run_rests(\"$PWD\", print=TRUE)" diff --git a/tmc-langs-r/src/test/resources/passing/R/week1.R b/tmc-langs-r/src/test/resources/passing/R/week1.R new file mode 100644 index 000000000..07deb637a --- /dev/null +++ b/tmc-langs-r/src/test/resources/passing/R/week1.R @@ -0,0 +1,73 @@ +##These exercises are taken from the course "Data-analyysi R-ohjelmistolla" +#(https://wiki.helsinki.fi/pages/viewpage.action?pageId=135074576). +## + +##Exercise 1 + +a1 <- 4 + 10 +b1 <- 5*a1 +c1 <- b1^3 +d1 <- exp(b1) +e1 <- d1^(1/10) +f1 <- sin(c1) +res1 <- (b1 + c1 + e1 + f1) + +##Exercise 2 + +a2 <- 51%%7 + +##Excercise 3 +a3 <- 51%%7 + 51%/%7 + +##Excercise 4 +v4_1 <- c(20, 5, -2, 3, 47) +v4_2 <- seq(0, 100, 5) +v4_3 <- c(v4_1, v4_2) +v4_4 <- v4_3[(v4_3 > 3) & (v4_3 < 50)] +v4_5 <- v4_4[(v4_4 %% 10) == 0] + +##Exercise 5 +v5_1 <- rep(0, 1, 50) +v5_1[c(F, T)] <- 2 + +sum5_1 <- sum(v5_1) +v5_1 +v5_2 <- v5_1 +v5_2[c(T, F)] <- 1.2 +sum5_2 <- sum(v5_2) + +##Excerice 6 + +A <- matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE) + + +##Excercise 7 +B <- c(1, 1, 0)%*% solve(A) + +##Excercise 8 +I_3 <- diag(c(1, 1, 1)) +A_8 <- A %*%I_3 + +##Excercise 9 +is_eq_matrix <- t(A) == A +is_eq_matrix <- F + +##Excercise 10 +C_10 <- matrix(c(runif(20, min = 1, max=20)), ncol=4) +v10_1 <- C_10[C_10 < 5] +number10 <- length(v10_1) + +D_10 <- C_10 +D_10[D_10 < 5] <- 10 + +E_10 <- D_10 +E_10 <- D_10[c(T, T, T, T, F),c(F,T,T, T)] + + +##Excercise 11 +C_11 <- matrix(1:100, ncol=2) +C_11[c(F, T)] <- NA + +##Excercise 12 +C_12 <- C_11 +C_12[is.na(C_12)] <- 0 diff --git a/tmc-langs-r/src/test/resources/passing/test/testthat/testWeek1.R b/tmc-langs-r/src/test/resources/passing/test/testthat/testWeek1.R new file mode 100644 index 000000000..fed980b30 --- /dev/null +++ b/tmc-langs-r/src/test/resources/passing/test/testthat/testWeek1.R @@ -0,0 +1,79 @@ +library('testthat') +source('../../R/week1.R') + +points_for_all_tests(c("r4")) + +help_A <- matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE) + +test("Exercise 1 is correct", c("r4.1"), { + expect_equal(a1, 14) + expect_equal(b1, 70) + expect_equal(c1, 343000) + expect_true(abs(e1-1096.63) < 0.1) + expect_true(abs(f1 - 0.7920019) < 0.1) + expect_true(abs(res1 - 344167.4) < 0.1) +}) + +test("Exercise 2 is correct", c("r4.2"), { + expect_equal(a2, 2) +}) + +test("Exercise 3 is correct", c("r4.3", "r4.4"), { + expect_equal(a3, 9) +}) + +test("Exercise 4 is correct", c("r4.5"), { + expect_equal(v4_1, c(20, 5, -2, 3, 47)) + expect_equal(v4_2, c(0:20)*5) + expect_equal(v4_3, c(c(20, 5, -2, 3, 47), seq(0, 100, 5))) + expect_equal(v4_4, c(20, 5, 47, 5, 10, 15, 20, 25, 30, 35, 40, 45)) + expect_equal(v4_5, c(20, 10, 20, 30, 40)) +}) + +test("Exercise 5 is correct", c("r4.6"), { + t1 <- rep(0, 1, 50) + t1[c(F, T)] <- 2 + expect_equal(v5_1, t1) + expect_equal(sum5_1, 50) + expect_equal(sum5_2, 80) +}) + +test("Exercise 6 is correct", c("r4.7"), { + expect_equal(A, matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE)) +}) + +test("Exercise 7 is correct", c("r4.8"), { + expect_equal(A, help_A) +}) + +test("Exercise 8 is correct", c("r4.9"), { + expect_equal(B, c(1, 1, 0)%*%solve(help_A)) +}) + +test("Exercise 9 is correct", c("r4.10"), { + expect_equal(I_3, diag(c(1, 1, 1))) + expect_equal(A_8, help_A) +}) + +test("Exercise 10 is correct", c("r4.11"), { + expect_false(is_eq_matrix) +}) + +test("Exercise 11 is correct", c("r4.12"), { + expect_true(number10 < 10) + + expect_true(dim(E_10)[1] == 4) + expect_true(dim(E_10)[2] == 3) +}) + +test("Exercise 12 is correct", c("r4.13"), { + M <- matrix(1:100, ncol=2) + M[c(F, T)] <- NA + expect_equal(C_11, M) +}) + +test("Exercise 13 is correct", c("r4.14"), { + M <- matrix(1:100, ncol=2) + M[c(F, T)] <- 0 + expect_equal(C_12, M) +}) From 7718ac1edaa85dc58bb3b635b292ed3eecf12560 Mon Sep 17 00:00:00 2001 From: Aleksis Vuoksenmaa Date: Sun, 1 Oct 2017 20:02:23 +0300 Subject: [PATCH 2/3] Removed unnecessary files. --- .../test/resources/data_analysis/DESCRIPTION | 9 --- .../test/resources/data_analysis/NAMESPACE | 2 - .../resources/data_analysis/R/arithmetics.R | 16 ---- .../test/resources/data_analysis/R/matrices.R | 3 - .../test/resources/data_analysis/R/strings.R | 3 - .../test/resources/data_analysis/R/week1.R | 73 ----------------- .../test/resources/data_analysis/README.md | 8 -- .../data_analysis/data_analysis.Rproj | 17 ---- .../data_analysis/tests/testthat/helperTMC.R | 13 --- .../tests/testthat/testArithmetics.R | 36 --------- .../tests/testthat/testMatrices.R | 14 ---- .../tests/testthat/testStrings.R | 8 -- .../data_analysis/tests/testthat/testWeek1.R | 79 ------------------- .../test/resources/data_analysis/tmc/result.R | 4 - .../data_analysis/tmc_run_test_example.sh | 4 - 15 files changed, 289 deletions(-) delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/NAMESPACE delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/matrices.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/strings.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/R/week1.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/README.md delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/tmc/result.R delete mode 100644 tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh diff --git a/tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION b/tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION deleted file mode 100644 index cb6f570b1..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/DESCRIPTION +++ /dev/null @@ -1,9 +0,0 @@ -Package: data_analysis -Title: What the Package Does (one line, title case) -Version: 0.0.0.9000 -Authors@R: person("First", "Last", email = "first.last@example.com", role = c("aut", "cre")) -Description: What the package does (one paragraph). -Depends: R (>= 3.2.3) -License: What license is it under? -Encoding: UTF-8 -LazyData: true diff --git a/tmc-langs-r/src/test/resources/data_analysis/NAMESPACE b/tmc-langs-r/src/test/resources/data_analysis/NAMESPACE deleted file mode 100644 index ce085262b..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/NAMESPACE +++ /dev/null @@ -1,2 +0,0 @@ -# Generated by roxygen2: fake comment so roxygen2 overwrites silently. -exportPattern("^[^\\.]") \ No newline at end of file diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R b/tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R deleted file mode 100644 index fe5f31853..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/R/arithmetics.R +++ /dev/null @@ -1,16 +0,0 @@ - -add <- function(a, b) { - return(a+b) -} - -subtract <- function(a, b) { - return(a-b) -} - -multiply <- function(a, b) { - return(a*b) -} - -divide <- function(a, b) { - return(a/b) -} diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/matrices.R b/tmc-langs-r/src/test/resources/data_analysis/R/matrices.R deleted file mode 100644 index 066d87d15..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/R/matrices.R +++ /dev/null @@ -1,3 +0,0 @@ -transpose_matrix <- function(matrix) { - return(t(matrix)) -} diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/strings.R b/tmc-langs-r/src/test/resources/data_analysis/R/strings.R deleted file mode 100644 index 7feafdf95..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/R/strings.R +++ /dev/null @@ -1,3 +0,0 @@ -constant_string <- function() { - return("jono") -} diff --git a/tmc-langs-r/src/test/resources/data_analysis/R/week1.R b/tmc-langs-r/src/test/resources/data_analysis/R/week1.R deleted file mode 100644 index 07deb637a..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/R/week1.R +++ /dev/null @@ -1,73 +0,0 @@ -##These exercises are taken from the course "Data-analyysi R-ohjelmistolla" -#(https://wiki.helsinki.fi/pages/viewpage.action?pageId=135074576). -## - -##Exercise 1 - -a1 <- 4 + 10 -b1 <- 5*a1 -c1 <- b1^3 -d1 <- exp(b1) -e1 <- d1^(1/10) -f1 <- sin(c1) -res1 <- (b1 + c1 + e1 + f1) - -##Exercise 2 - -a2 <- 51%%7 - -##Excercise 3 -a3 <- 51%%7 + 51%/%7 - -##Excercise 4 -v4_1 <- c(20, 5, -2, 3, 47) -v4_2 <- seq(0, 100, 5) -v4_3 <- c(v4_1, v4_2) -v4_4 <- v4_3[(v4_3 > 3) & (v4_3 < 50)] -v4_5 <- v4_4[(v4_4 %% 10) == 0] - -##Exercise 5 -v5_1 <- rep(0, 1, 50) -v5_1[c(F, T)] <- 2 - -sum5_1 <- sum(v5_1) -v5_1 -v5_2 <- v5_1 -v5_2[c(T, F)] <- 1.2 -sum5_2 <- sum(v5_2) - -##Excerice 6 - -A <- matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE) - - -##Excercise 7 -B <- c(1, 1, 0)%*% solve(A) - -##Excercise 8 -I_3 <- diag(c(1, 1, 1)) -A_8 <- A %*%I_3 - -##Excercise 9 -is_eq_matrix <- t(A) == A -is_eq_matrix <- F - -##Excercise 10 -C_10 <- matrix(c(runif(20, min = 1, max=20)), ncol=4) -v10_1 <- C_10[C_10 < 5] -number10 <- length(v10_1) - -D_10 <- C_10 -D_10[D_10 < 5] <- 10 - -E_10 <- D_10 -E_10 <- D_10[c(T, T, T, T, F),c(F,T,T, T)] - - -##Excercise 11 -C_11 <- matrix(1:100, ncol=2) -C_11[c(F, T)] <- NA - -##Excercise 12 -C_12 <- C_11 -C_12[is.na(C_12)] <- 0 diff --git a/tmc-langs-r/src/test/resources/data_analysis/README.md b/tmc-langs-r/src/test/resources/data_analysis/README.md deleted file mode 100644 index 2d9b43401..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Project 1 - -This is a project that we use to test if testthat-tests that we have written -work and how the results can be parsed. - -## How to use - -To run tests on this test project, run the script `tmc_run_test_example.sh`. diff --git a/tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj b/tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj deleted file mode 100644 index 21a4da087..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/data_analysis.Rproj +++ /dev/null @@ -1,17 +0,0 @@ -Version: 1.0 - -RestoreWorkspace: Default -SaveWorkspace: Default -AlwaysSaveHistory: Default - -EnableCodeIndexing: Yes -UseSpacesForTab: Yes -NumSpacesForTab: 2 -Encoding: UTF-8 - -RnwWeave: Sweave -LaTeX: pdfLaTeX - -BuildType: Package -PackageUseDevtools: Yes -PackageInstallArgs: --no-multiarch --with-keep.source diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R deleted file mode 100644 index f5d8a1992..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/helperTMC.R +++ /dev/null @@ -1,13 +0,0 @@ - -#Sets the points for all tests to global environment, wherefrom they can -#be retrieved. -points_for_all_tests <- function(points) { - .GlobalEnv$points_for_all_tests <- points -} - -#The test that wraps around test_that()-method and stores the points -#to global environment. -test <- function(desc, points, code) { - .GlobalEnv$points[[desc]] <- points - test_that(desc, code) -} diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R deleted file mode 100644 index 2d099db79..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testArithmetics.R +++ /dev/null @@ -1,36 +0,0 @@ -library('testthat') - -source("../../R/arithmetics.R") - -points_for_all_tests(c("r1")) - -test("Addition works", c("r1.1", "r1.2"), { - expect_equal(add(1, 2), 3) - expect_equal(add(1, 2), 3.0) - expect_equal(add(1, 4), 5) -}) - -test("Multiplication works", c("r1.3", "r1.4"), { - expect_equal(multiply(1, 2), 2) - expect_equal(multiply(2, 10), 20) -}) - -test("Subtraction works", c("r1.5"), { - expect_equal(subtract(10, 2), 8) - expect_equal(subtract(0, 0), 0) - expect_equal(subtract(0, 4), -4) -}) - -test("Division works", c("r1.6"), { - expect_equal(divide(10, 2), 5) - expect_equal(divide(1, 2), 0.5) -}) - -test("Test with no points", c(), { - expect_equal(1,1) -}) - -test("Dummy test set to fail", c(), { - expect_true(FALSE) - expect_equal(1,2) -}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R deleted file mode 100644 index ad8bbe898..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testMatrices.R +++ /dev/null @@ -1,14 +0,0 @@ -library('testthat') -source('../../R/matrices.R') - -points_for_all_tests(c("r2")) - -test("Matrix transpose with [[1,2]] works", c("r2.1"), { - A<- matrix(c(1,2),nrow=1) - expect_equal(transpose_matrix(A),matrix(c(1,2),nrow=2)) -}) - -test("Matrix transpose with [[1,2],[3,4]] works", c("r2.2"), { - A<- matrix(c(1,2,3,4),nrow=2) - expect_equal(transpose_matrix(A),matrix(c(1,3,2,4),nrow=2)) -}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R deleted file mode 100644 index cf8c71f0a..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testStrings.R +++ /dev/null @@ -1,8 +0,0 @@ -library('testthat') -source('../../R/strings.R') - -points_for_all_tests(c("r3")) - -test("Constant string works", c("r3.1"), { - expect_equal(constant_string(), "jono") -}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R b/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R deleted file mode 100644 index fed980b30..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/tests/testthat/testWeek1.R +++ /dev/null @@ -1,79 +0,0 @@ -library('testthat') -source('../../R/week1.R') - -points_for_all_tests(c("r4")) - -help_A <- matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE) - -test("Exercise 1 is correct", c("r4.1"), { - expect_equal(a1, 14) - expect_equal(b1, 70) - expect_equal(c1, 343000) - expect_true(abs(e1-1096.63) < 0.1) - expect_true(abs(f1 - 0.7920019) < 0.1) - expect_true(abs(res1 - 344167.4) < 0.1) -}) - -test("Exercise 2 is correct", c("r4.2"), { - expect_equal(a2, 2) -}) - -test("Exercise 3 is correct", c("r4.3", "r4.4"), { - expect_equal(a3, 9) -}) - -test("Exercise 4 is correct", c("r4.5"), { - expect_equal(v4_1, c(20, 5, -2, 3, 47)) - expect_equal(v4_2, c(0:20)*5) - expect_equal(v4_3, c(c(20, 5, -2, 3, 47), seq(0, 100, 5))) - expect_equal(v4_4, c(20, 5, 47, 5, 10, 15, 20, 25, 30, 35, 40, 45)) - expect_equal(v4_5, c(20, 10, 20, 30, 40)) -}) - -test("Exercise 5 is correct", c("r4.6"), { - t1 <- rep(0, 1, 50) - t1[c(F, T)] <- 2 - expect_equal(v5_1, t1) - expect_equal(sum5_1, 50) - expect_equal(sum5_2, 80) -}) - -test("Exercise 6 is correct", c("r4.7"), { - expect_equal(A, matrix(c(3, 5, 6, 1/2, sqrt(5), 16, 0, 2, 0),nrow = 3, ncol = 3, byrow = TRUE)) -}) - -test("Exercise 7 is correct", c("r4.8"), { - expect_equal(A, help_A) -}) - -test("Exercise 8 is correct", c("r4.9"), { - expect_equal(B, c(1, 1, 0)%*%solve(help_A)) -}) - -test("Exercise 9 is correct", c("r4.10"), { - expect_equal(I_3, diag(c(1, 1, 1))) - expect_equal(A_8, help_A) -}) - -test("Exercise 10 is correct", c("r4.11"), { - expect_false(is_eq_matrix) -}) - -test("Exercise 11 is correct", c("r4.12"), { - expect_true(number10 < 10) - - expect_true(dim(E_10)[1] == 4) - expect_true(dim(E_10)[2] == 3) -}) - -test("Exercise 12 is correct", c("r4.13"), { - M <- matrix(1:100, ncol=2) - M[c(F, T)] <- NA - expect_equal(C_11, M) -}) - -test("Exercise 13 is correct", c("r4.14"), { - M <- matrix(1:100, ncol=2) - M[c(F, T)] <- 0 - expect_equal(C_12, M) -}) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tmc/result.R b/tmc-langs-r/src/test/resources/data_analysis/tmc/result.R deleted file mode 100644 index 17f2dff64..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/tmc/result.R +++ /dev/null @@ -1,4 +0,0 @@ -library(tmcRtestrunner) - -# Note: working directory must be the projects root! -run_tests(getwd()) diff --git a/tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh b/tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh deleted file mode 100644 index 283efdd0f..000000000 --- a/tmc-langs-r/src/test/resources/data_analysis/tmc_run_test_example.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -#Currently this script needs to be run at project root! - -Rscript -e "library(tmcRtestrunner);run_rests(\"$PWD\", print=TRUE)" From 06e80ee83b4939bed41f8d049801f59910455d11 Mon Sep 17 00:00:00 2001 From: Aleksis Vuoksenmaa Date: Mon, 2 Oct 2017 11:06:07 +0300 Subject: [PATCH 3/3] Fixed test issues with R plugin --- .../helsinki/cs/tmc/langs/r/RStudentFilePolicyTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tmc-langs-r/src/test/java/fi/helsinki/cs/tmc/langs/r/RStudentFilePolicyTest.java b/tmc-langs-r/src/test/java/fi/helsinki/cs/tmc/langs/r/RStudentFilePolicyTest.java index 05c91dcfd..b3377a4f2 100644 --- a/tmc-langs-r/src/test/java/fi/helsinki/cs/tmc/langs/r/RStudentFilePolicyTest.java +++ b/tmc-langs-r/src/test/java/fi/helsinki/cs/tmc/langs/r/RStudentFilePolicyTest.java @@ -33,7 +33,7 @@ public void testFilesInRDirectoryAreStudentFiles() throws IOException { TestUtils.collectPaths(projectPath, studentFiles, studentFilePolicy); - assertEquals(1, studentFiles.size()); + assertEquals(2, studentFiles.size()); assertTrue(studentFiles.contains("R" + File.separator + "arithmetics.R")); } @@ -43,7 +43,7 @@ public void testFilesInTestthatDirectoryAreNotStudentFiles() throws IOException TestUtils.collectPaths(projectPath, studentFiles, studentFilePolicy); - assertEquals(1, studentFiles.size()); + assertEquals(2, studentFiles.size()); assertFalse(studentFiles.contains( "test" + File.separatorChar + "testthat" + File.separatorChar + "testArithmetics.R")); @@ -55,7 +55,7 @@ public void testResultRInTmcDirectoryIsNotAStudentFile() throws IOException { TestUtils.collectPaths(projectPath, studentFiles, studentFilePolicy); - assertEquals(1, studentFiles.size()); + assertEquals(2, studentFiles.size()); assertFalse(studentFiles.contains("tmc" + File.separatorChar + "result.R")); } -} \ No newline at end of file +}