Skip to content

Commit 90f4af5

Browse files
committed
all comments were addressed, except -behavior- as a vector.
1 parent 516cf33 commit 90f4af5

File tree

6 files changed

+63
-59
lines changed

6 files changed

+63
-59
lines changed

R/adjmat.r

-1
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,6 @@ toa_mat <- function(obj, labels=NULL, t0=NULL, t1=NULL) {
491491
}
492492
} else {
493493
for (q in 1:num_of_behaviors) {
494-
#cls <- class(obj[,q])
495494
ans[[q]] <- if ("matrix" %in% class(obj)) {
496495
if ("integer" %in% class(obj[,q])){
497496
toa_mat.integer(obj[,q], labels, t0, t1)

R/diffnet-class.r

+2
Original file line numberDiff line numberDiff line change
@@ -638,6 +638,8 @@ new_diffnet <- function(graph, toa, t0=min(toa, na.rm = TRUE), t1=max(toa, na.rm
638638

639639
# This should be reviewed !! (here the graph becomes 'dynamic')
640640

641+
warning("here the graph becomes 'dynamic' for multiple")
642+
641643
graph <- lapply(1:ncol(mat[[1]]$adopt), function(x) methods::as(graph, "dgCMatrix"))
642644
meta <- classify_graph(graph)
643645
}

R/diffnet-methods.r

+2-2
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ print.diffnet <- function(x, ...) {
9595
ifelse(meta$n>8, ", ...", "") ,")")
9696

9797
# Computing prevalence for multi-diff
98-
single <- class(cumadopt)[1]!='list'
98+
single <- !inherits(cumadopt, "list")
9999
if (!single) {
100100
prevalence_all <- character(length(cumadopt))
101101
for (q in 1:length(cumadopt)) {
@@ -214,7 +214,7 @@ summary.diffnet <- function(
214214
}))
215215

216216
# identify single-diff from multi-diff
217-
single <- class(object$cumadopt)[1]!='list'
217+
single <- !inherits(object$cumadopt, "list")
218218

219219
# Computing moran's I
220220
if (single) {

R/rdiffnet.r

+11-11
Original file line numberDiff line numberDiff line change
@@ -332,12 +332,12 @@ rdiffnet <- function(
332332
if (!length(exposure.args[["valued"]])) exposure.args[["valued"]] <- getOption("diffnet.valued", FALSE)
333333
if (!length(exposure.args[["normalized"]])) exposure.args[["normalized"]] <- TRUE
334334

335-
if (class(exposure.args[["attrs"]])[1] == "matrix") {
335+
if (inherits(exposure.args[["attrs"]], "matrix")) {
336336
# Checking if the attrs matrix is has dims n x t
337337
if (any(dim(exposure.args[["attrs"]]) != dim(matrix(NA, nrow = n, ncol = t)))) {
338338
stop("Incorrect size for -attrs- in rdiffnet. Does not match n dim or t dim.")}
339339
attrs_arr <- exposure.args[["attrs"]]
340-
if (class(seed.p.adopt) == 'list'){
340+
if (inherits(seed.p.adopt, "list")){
341341
attrs_arr <- array(attrs_arr, dim = c(n, t, length(seed.p.adopt)))
342342
} else {attrs_arr <- array(attrs_arr, dim = c(n, t, 1))}
343343
}
@@ -511,14 +511,14 @@ rdiffnet_validate_args <- function(seed.p.adopt, seed.nodes, behavior) {
511511

512512
# The class of seed.p.adopt determines if is a single or multiple diff pross.
513513

514-
if (class(seed.p.adopt) == "list") {
514+
if (inherits(seed.p.adopt, "list")) {
515515

516516
message(paste("Message: Multi-diffusion behavior simulation selected.",
517517
"Number of behaviors: ", length(seed.p.adopt)))
518518

519519
multi <- TRUE
520520

521-
} else if (class(seed.p.adopt) == "numeric") {
521+
} else if (inherits(seed.p.adopt, "numeric")) {
522522

523523
if (length(seed.p.adopt)>1) {
524524
stop(paste("length(seed.p.adopt) =", length(seed.p.adopt),
@@ -539,7 +539,7 @@ rdiffnet_validate_args <- function(seed.p.adopt, seed.nodes, behavior) {
539539

540540
# For multi-diff.
541541

542-
if (class(seed.nodes) == "list") {
542+
if (inherits(seed.nodes, "list")) {
543543
if (length(seed.nodes) != length(seed.p.adopt)) {
544544
stop("Length of lists -seed.nodes- and -seed.p.adopt- must be the same for multi diffusion.")
545545
}
@@ -563,12 +563,12 @@ rdiffnet_validate_args <- function(seed.p.adopt, seed.nodes, behavior) {
563563
} else {
564564
stop("All elements of the list seed.nodes must be either -character- or -numeric-.")
565565
}
566-
} else if (class(seed.nodes) == "numeric") {
566+
} else if (inherits(seed.nodes, "numeric")) {
567567
message("Message: Object -seed.nodes- converted to a -list-.",
568568
"All behaviors will have the same -", seed.nodes, "- seed nodes.")
569569

570570
seed.nodes <- replicate(length(seed.p.adopt), seed.nodes, simplify = FALSE)
571-
} else if (class(seed.nodes) == "character") {
571+
} else if (inherits(seed.nodes, "character")) {
572572
if (length(seed.nodes)==length(seed.p.adopt)) {
573573
seed.nodes <- as.list(seed.nodes)
574574
message("Message: Object -seed.nodes- converted to a -list-.",
@@ -583,17 +583,17 @@ rdiffnet_validate_args <- function(seed.p.adopt, seed.nodes, behavior) {
583583
stop("Unsupported -seed.nodes- value. See the manual for references.")
584584
}
585585

586-
if (class(behavior) == "list") {
586+
if (inherits(behavior, "list")) {
587587
if (length(seed.p.adopt)!=length(behavior)) {
588588
stop("If -behavior- is a list, it must be of the same length as -seed.p.adopt-.")
589589
}
590-
} else if (class(behavior) == "character" && length(behavior) > 1) {
590+
} else if (inherits(behavior, "character") && length(behavior) > 1) {
591591
if (length(behavior) != length(seed.p.adopt)) {
592592
stop("Mismatch between length(behavior) and length(seed.p.adopt)")
593593
} else {
594594
behavior <- as.list(behavior)
595595
}
596-
} else if (class(behavior) == "character" && length(behavior) == 1) {
596+
} else if (inherits(behavior, "character") && length(behavior) == 1) {
597597
message(paste("Message: Name of 1 behavior provided, but", length(seed.p.adopt), "are needed. "),
598598
"Names generalized to 'behavior'_1, 'behavior'_2, etc.")
599599
behaviors <- list()
@@ -609,7 +609,7 @@ rdiffnet_validate_args <- function(seed.p.adopt, seed.nodes, behavior) {
609609

610610
# For Single-diff.
611611

612-
if (length(seed.nodes) == 1 && class(seed.nodes)=="character") {
612+
if (length(seed.nodes) == 1 && inherits(seed.nodes, "character")) {
613613

614614
if (!seed.nodes %in% c("marginal", "central", "random")) {
615615
stop("Object -seed.nodes- is a -character- different from 'marginal', 'central', or 'random'.")

tests/testthat/test-rdiffnet-parameters.R

+20-18
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,18 @@ test_that(
1111
behavior <- c("random behavior")
1212
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
1313

14-
class(rdiffnet_args$seed.p.adopt) == "list"
15-
class(rdiffnet_args$seed.nodes) == "list"
16-
class(rdiffnet_args$behavior) == "list"
14+
expect_type(rdiffnet_args$seed.p.adopt, "list")
15+
expect_type(rdiffnet_args$seed.nodes, "list")
16+
expect_type(rdiffnet_args$behavior, "list")
1717

1818
seed.p.adopt <- 0.14
1919
seed.nodes <- 'random'
2020
behavior <- "random behavior"
2121
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
2222

23-
class(rdiffnet_args$seed.p.adopt) == "list"
24-
class(rdiffnet_args$seed.nodes) == "list"
25-
class(rdiffnet_args$behavior) == "list"
23+
expect_type(rdiffnet_args$seed.p.adopt, "list")
24+
expect_type(rdiffnet_args$seed.nodes, "list")
25+
expect_type(rdiffnet_args$behavior, "list")
2626

2727
# Must show ERROR
2828

@@ -104,40 +104,42 @@ test_that("Multi diff models rdiff args work", {
104104
seed.nodes <- "random"
105105
behavior <- "random behavior"
106106
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
107+
expect_type(rdiffnet_args$seed.p.adopt, "list")
108+
expect_type(rdiffnet_args$seed.nodes, "list")
109+
expect_type(rdiffnet_args$behavior, "list")
107110

108111
seed.nodes <- c(1,3,5)
109112
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
113+
expect_type(rdiffnet_args$seed.nodes, "list")
110114

111115
seed.nodes <- c('marginal',"central")
112116
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
117+
expect_type(rdiffnet_args$seed.nodes, "list")
113118

114-
seed.p.adopt <- list(0.14,0.05)
115-
seed.nodes <- list('random', "central")
116119
behavior <- list("random behavior_1", "random behavior_2")
117120
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
118-
class(rdiffnet_args$seed.p.adopt) == "list"
119-
class(rdiffnet_args$seed.nodes) == "list"
120-
class(rdiffnet_args$behavior) == "list"
121+
expect_type(rdiffnet_args$behavior, "list")
121122

122123
behavior <- c("random behavior_1", "random behavior_2")
123124
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
124-
class(rdiffnet_args$behavior) == "list"
125+
expect_type(rdiffnet_args$behavior, "list")
125126

126127
behavior <- "random behavior" #Default
127128
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
128-
class(rdiffnet_args$behavior) == "list"
129+
expect_type(rdiffnet_args$behavior, "list")
130+
131+
behavior <- c("random behavior_1")
132+
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
133+
expect_type(rdiffnet_args$behavior, "list")
129134

130135
seed.nodes <- c(1,3,5)
131136
behavior <- list("random behavior_1", "random behavior_2")
132137
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
133-
class(rdiffnet_args$seed.nodes) == 'list'
138+
expect_type(rdiffnet_args$seed.nodes, "list")
134139

135140
seed.nodes <- list('marginal',"central")
136141
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
137-
class(rdiffnet_args$seed.nodes) == 'list'
138-
139-
behavior <- c("random behavior_1")
140-
rdiffnet_args <- rdiffnet_validate_args(seed.p.adopt, seed.nodes, behavior)
142+
expect_type(rdiffnet_args$seed.nodes, "list")
141143

142144
# Must show ERROR
143145

tests/testthat/test-rdiffnet.R

+28-27
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,35 @@ test_that("Simulation study", {
107107

108108
})
109109

110-
# Test for multi diffusion ---
110+
# Testing diffnet class across several inputs (single)
111+
test_that("rdiffnet must run across several inputs (single)", {
112+
expect_s3_class(rdiffnet(100, 5), "diffnet")
113+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = 0.1), "diffnet")
114+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = 0.1, seed.nodes = 'random'), "diffnet")
115+
expect_s3_class(rdiffnet(100, 5, seed.nodes = c(1, 3, 5)), "diffnet")
116+
117+
# summary
118+
net_1 <- rdiffnet(100, 5, seed.nodes = c(1,3,5))
119+
expect_s3_class(summary(net_1), "data.frame")
120+
})
121+
122+
# Testing diffnet class across several inputs (multiple)
123+
test_that("rdiffnet must run across several inputs (multiple)", {
124+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08)), "diffnet")
125+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), behavior = c('tabacco', 'alcohol')), "diffnet")
126+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), seed.nodes = 'random'), "diffnet")
127+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), seed.nodes = c('random', 'central')), "diffnet")
128+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), threshold.dist = 0.3), "diffnet")
129+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), threshold.dist = list(0.1, 0.2)), "diffnet")
130+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), threshold.dist = rexp(100)), "diffnet")
131+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), threshold.dist = list(rexp(100), runif(100))), "diffnet")
132+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), threshold.dist = function(x) 0.3), "diffnet")
133+
expect_s3_class(rdiffnet(100, 5, seed.p.adopt = list(0.1, 0.08), threshold.dist = list(function(x) 0.3, function(x) 0.2)), "diffnet")
134+
135+
net_2 <- rdiffnet(100, 5, seed.p.adopt = list(0.05,0.05), seed.nodes = c(1,3,5))
136+
expect_s3_class(summary(net_2), "data.frame")
137+
})
111138

112-
# Seed of first adopters
113139
test_that("All should be equal! (multiple)", {
114140
set.seed(12131)
115141
n <- 50
@@ -131,31 +157,6 @@ test_that("All should be equal! (multiple)", {
131157
})
132158

133159

134-
#single
135-
rdiffnet(100, 5)
136-
rdiffnet(100, 5, seed.p.adopt = 0.1)
137-
rdiffnet(100, 5, seed.p.adopt = 0.1, seed.nodes = 'random')
138-
rdiffnet(100, 5, seed.nodes = c(1,3,5))
139-
net_1 <- rdiffnet(100, 5, seed.nodes = c(1,3,5))
140-
summary(net_1)
141-
142-
#multi
143-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08))
144-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), behavior = c('tabacco', 'alcohol'))
145-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), seed.nodes = 'random')
146-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), seed.nodes = c('random', 'central'))
147-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), threshold.dist = 0.3)
148-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), threshold.dist = list(0.1,0.2))
149-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), threshold.dist = rexp(100))
150-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), threshold.dist = list(rexp(100),runif(100)))
151-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), threshold.dist = function(x) 0.3)
152-
rdiffnet(100, 5, seed.p.adopt = list(0.1,0.08), threshold.dist = list(function(x) 0.3, function(x) 0.2))
153-
154-
net_1 <- rdiffnet(100, 5, seed.nodes = c(1,3,5))
155-
summary(net_1)
156-
net_2 <- rdiffnet(100, 5, seed.p.adopt = list(0.05,0.05), seed.nodes = c(1,3,5))
157-
summary(net_2)
158-
159160
#rdiffnet(100, 5, seed.p.adopt = 0.9, threshold.dist = 2, exposure.args = list(normalized=FALSE))
160161

161162
# set.seed(1234)

0 commit comments

Comments
 (0)