Switch to unified view

a b/tests/testthat/test-preprocess.R
1
context("preprocess")
2
3
test_that("Check preprocessing", {
4
  
5
  #testthat::skip_if_not_installed("tensorflow")
6
  testthat::skip_if_not(reticulate::py_module_available("tensorflow"))
7
  
8
  z <- seq_encoding_lm(sequence = c(1,0,5,1,3,4,3,1,4,1,2),
9
                       maxlen = 5,
10
                       vocabulary = c("a", "c", "g", "t"),
11
                       start_ind = c(1,3),
12
                       ambiguous_nuc = "equal",
13
                       target_len = 1,
14
                       output_format = "target_right")
15
  
16
  x <- z[[1]]
17
  y <- z[[2]]
18
  
19
  expect_equivalent(x[1,1,], c(1,0,0,0))
20
  expect_equivalent(x[1,2,], c(0,0,0,0))
21
  expect_equivalent(x[1,3,], rep(0.25, 4))
22
  expect_equivalent(x[1,4,], c(1,0,0,0))
23
  expect_equivalent(x[1,5,], c(0,0,1,0))
24
  expect_equivalent(y[1,], c(0,0,0,1))
25
  
26
  expect_equivalent(x[2,1,], rep(0.25, 4))
27
  expect_equivalent(x[2,2,], c(1,0,0,0))
28
  expect_equivalent(x[2,3,], c(0,0,1,0))
29
  expect_equivalent(x[2,4,], c(0,0,0,1))
30
  expect_equivalent(x[2,5,], c(0,0,1,0))
31
  expect_equivalent(y[2,], c(1,0,0,0))
32
  
33
  # use character string as input
34
  z <- seq_encoding_lm(sequence = NULL,
35
                       maxlen = 5,
36
                       vocabulary = c("a", "c", "g", "t"),
37
                       start_ind = c(1,3),
38
                       ambiguous_nuc = "zero",
39
                       target_len = 1,
40
                       output_format = "target_right",
41
                       char_sequence = "ACTaaTNTNaZ")
42
  
43
  
44
  x <- z[[1]]
45
  y <- z[[2]]
46
  
47
  expect_equivalent(apply(x[1,,], 1, which.max), c(1,2,4,1,1))
48
  expect_equivalent(apply(x[2,,], 1, which.max), c(4,1,1,4,1))
49
  expect_equivalent(y[1,], c(0,0,0,1))
50
  expect_equivalent(y[2,], c(0,0,0,1))
51
  
52
  x <- seq_encoding_label(sequence = c(1,0,5,1,3,4,3,1,4,1,2),
53
                          maxlen = 5,
54
                          vocabulary = c("a", "c", "g", "t"),
55
                          start_ind = c(1,3),
56
                          ambiguous_nuc = "equal")
57
  
58
  expect_equivalent(x[1,1,], c(1,0,0,0))
59
  expect_equivalent(x[1,2,], c(0,0,0,0))
60
  expect_equivalent(x[1,3,], rep(0.25, 4))
61
  expect_equivalent(x[1,4,], c(1,0,0,0))
62
  expect_equivalent(x[1,5,], c(0,0,1,0))
63
  
64
  expect_equivalent(x[2,1,], rep(0.25, 4))
65
  expect_equivalent(x[2,2,], c(1,0,0,0))
66
  expect_equivalent(x[2,3,], c(0,0,1,0))
67
  expect_equivalent(x[2,4,], c(0,0,0,1))
68
  expect_equivalent(x[2,5,], c(0,0,1,0))
69
  
70
  # use character string as input
71
  x <- seq_encoding_label(maxlen = 5,
72
                          vocabulary = c("a", "c", "g", "t"),
73
                          start_ind = c(1,3),
74
                          ambiguous_nuc = "equal",
75
                          char_sequence = "ACTaaTNTNaZ")
76
  
77
  expect_equivalent(apply(x[1,,], 1, which.max), c(1,2,4,1,1))
78
  expect_equivalent(apply(x[2,,], 1, which.max), c(4,1,1,4,1))
79
  expect_equivalent(x[2,5,], rep(0.25, 4))
80
  
81
})