@@ -100,65 +100,55 @@ test_that("read_cmdstan_csv() fails with the no params listed", {
100
100
" Supplied CSV file does not contain any variable names or data!" )
101
101
})
102
102
103
- test_that(" read_cmdstan_csv() matches rstan::read_stan_csv() " , {
103
+ test_that(" read_cmdstan_csv() matches utils::read.csv " , {
104
104
skip_on_cran()
105
105
csv_files <- c(test_path(" resources" , " csv" , " model1-1-warmup.csv" ),
106
106
test_path(" resources" , " csv" , " model1-2-warmup.csv" ))
107
107
108
- draws_array <- readRDS(test_path(" answers" , " rstan-read-stan-csv-no-warmup.rds" ))
109
- draws_array <- posterior :: as_draws_array(draws_array )
110
- csv_output <- read_cmdstan_csv(csv_files )
111
- expect_equal(csv_output $ post_warmup_draws [,, " mu" ],
112
- draws_array [,," mu" ])
113
- expect_equal(csv_output $ post_warmup_draws [,, " sigma" ],
114
- draws_array [,," sigma" ])
115
- expect_equal(csv_output $ post_warmup_draws [,, " lp__" ],
116
- draws_array [,," lp__" ])
117
- })
108
+ draws_array_1 <- utils :: read.csv(test_path(" resources" , " csv" , " model1-1-warmup.csv" ), comment.char = " #" )
109
+ draws_array_2 <- utils :: read.csv(test_path(" resources" , " csv" , " model1-2-warmup.csv" ), comment.char = " #" )
110
+ post_warmup_draws_array_1 <- posterior :: as_draws_array(draws_array_1 [101 : 200 ,,])
111
+ post_warmup_draws_array_2 <- posterior :: as_draws_array(draws_array_2 [101 : 200 ,,])
112
+ warmup_draws_array_1 <- posterior :: as_draws_array(draws_array_1 [1 : 100 ,,])
113
+ warmup_draws_array_2 <- posterior :: as_draws_array(draws_array_2 [1 : 100 ,,])
118
114
119
- test_that(" read_cmdstan_csv() matches rstan::read_stan_csv() with save_warmup" , {
120
- skip_on_cran()
121
- csv_files <- c(test_path(" resources" , " csv" , " model1-1-warmup.csv" ),
122
- test_path(" resources" , " csv" , " model1-2-warmup.csv" ))
123
-
124
- draws_array <- readRDS(test_path(" answers" , " rstan-read-stan-csv-warmup.rds" ))
125
- draws_array <- posterior :: as_draws_array(draws_array )
126
115
csv_output <- read_cmdstan_csv(csv_files )
127
-
128
- warmup_iter <- csv_output $ metadata $ iter_warmup
129
- num_iter <- csv_output $ metadata $ iter_sampling + csv_output $ metadata $ iter_warmup
130
-
131
- draws_array_post_warmup <- draws_array [(warmup_iter + 1 ): num_iter ,,]
132
- draws_array_warmup <- draws_array [1 : warmup_iter ,,]
133
-
134
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_draws , " mu" ),
135
- posterior :: extract_variable_matrix(draws_array_post_warmup , " mu" ))
136
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_draws , " sigma" ),
137
- posterior :: extract_variable_matrix(draws_array_post_warmup , " sigma" ))
138
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_draws , " lp__" ),
139
- posterior :: extract_variable_matrix(draws_array_post_warmup , " lp__" ))
140
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_draws , " mu" ),
141
- posterior :: extract_variable_matrix(draws_array_warmup , " mu" ))
142
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_draws , " sigma" ),
143
- posterior :: extract_variable_matrix(draws_array_warmup , " sigma" ))
144
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_draws , " lp__" ),
145
- posterior :: extract_variable_matrix(draws_array_warmup , " lp__" ))
116
+ for (param in c(" mu" , " sigma" , " lp__" )) {
117
+ expect_equal(posterior :: subset_draws(csv_output $ post_warmup_draws , chain = 1 , variable = param ),
118
+ post_warmup_draws_array_1 [,,param ])
119
+ expect_equal(posterior :: subset_draws(csv_output $ warmup_draws , chain = 1 , variable = param ),
120
+ warmup_draws_array_1 [,,param ])
121
+ expect_equal(posterior :: subset_draws(csv_output $ post_warmup_draws , chain = 2 , variable = param ),
122
+ post_warmup_draws_array_2 [,,param ])
123
+ expect_equal(posterior :: subset_draws(csv_output $ warmup_draws , chain = 2 , variable = param ),
124
+ warmup_draws_array_2 [,,param ])
125
+ }
126
+ for (diagnostic in c(" divergent__" , " accept_stat__" , " treedepth__" , " stepsize__" , " n_leapfrog__" , " energy__" )) {
127
+ expect_equal(posterior :: subset_draws(csv_output $ post_warmup_sampler_diagnostics , chain = 1 , variable = diagnostic ),
128
+ post_warmup_draws_array_1 [,,diagnostic ])
129
+ expect_equal(posterior :: subset_draws(csv_output $ warmup_sampler_diagnostics , chain = 1 , variable = diagnostic ),
130
+ warmup_draws_array_1 [,,diagnostic ])
131
+ expect_equal(posterior :: subset_draws(csv_output $ post_warmup_sampler_diagnostics , chain = 2 , variable = diagnostic ),
132
+ post_warmup_draws_array_2 [,,diagnostic ])
133
+ expect_equal(posterior :: subset_draws(csv_output $ warmup_sampler_diagnostics , chain = 2 , variable = diagnostic ),
134
+ warmup_draws_array_2 [,,diagnostic ])
135
+ }
146
136
})
147
137
148
- test_that(" read_cmdstan_csv() matches rstan::read_stan_csv() for csv file without warmup" , {
138
+ test_that(" read_cmdstan_csv() matches utils::read.csv for csv file without warmup" , {
149
139
skip_on_cran()
150
140
csv_files <- c(test_path(" resources" , " csv" , " model1-2-no-warmup.csv" ))
151
141
152
- draws_array <- readRDS (test_path(" answers " , " rstan-read-stan- csv- no-warmup-file.rds " ) )
142
+ draws_array <- utils :: read.csv (test_path(" resources " , " csv" , " model1-2- no-warmup.csv " ), comment.char = " # " )
153
143
draws_array <- posterior :: as_draws_array(draws_array )
154
144
csv_output <- read_cmdstan_csv(csv_files )
145
+ expect_equal(posterior :: subset_draws(csv_output $ post_warmup_draws , chain = 1 , variable = " mu" ),
146
+ draws_array [,," mu" ])
147
+ expect_equal(posterior :: subset_draws(csv_output $ post_warmup_draws , chain = 1 , variable = " sigma" ),
148
+ draws_array [,," sigma" ])
149
+ expect_equal(posterior :: subset_draws(csv_output $ post_warmup_draws , chain = 1 , variable = " lp__" ),
150
+ draws_array [,," lp__" ])
155
151
156
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_draws , " mu" ),
157
- posterior :: extract_variable_matrix(draws_array , " mu" ))
158
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_draws , " sigma" ),
159
- posterior :: extract_variable_matrix(draws_array , " sigma" ))
160
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_draws , " lp__" ),
161
- posterior :: extract_variable_matrix(draws_array , " lp__" ))
162
152
})
163
153
164
154
test_that(" read_cmdstan_csv() returns correct diagonal of inverse mass matrix" , {
@@ -221,48 +211,6 @@ test_that("read_cmdstan_csv() returns correct dense inverse mass matrix for 2 cs
221
211
7.78791 , 0.0780934 , 4.34037 , 8.13132 , 7.53072 , 5.61617 , 4.72335 , 8.10162 , 7.75486 , 35.6602 ))
222
212
})
223
213
224
- test_that(" read_cmdstan_csv() matches rstan::read_stan_csv() for csv file" , {
225
- skip_on_cran()
226
- csv_files <- c(test_path(" resources" , " csv" , " model1-2-warmup.csv" ))
227
-
228
- sampler_diagnostics <- readRDS(test_path(" answers" , " rstan-read-stan-csv-sampler-params.rds" ))
229
- sampler_diagnostics <- posterior :: as_draws_array(sampler_diagnostics [[1 ]])
230
- csv_output <- read_cmdstan_csv(csv_files )
231
- num_warmup <- csv_output $ metadata $ iter_warmup / csv_output $ metadata $ thin
232
- if (csv_output $ metadata $ save_warmup ) {
233
- num_iter <- csv_output $ metadata $ iter_sampling + csv_output $ metadata $ iter_warmup
234
- } else {
235
- num_iter <- csv_output $ metadata $ iter_sampling
236
- }
237
-
238
- # match warmup sampler info
239
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_sampler_diagnostics , " divergent__" ),
240
- posterior :: extract_variable_matrix(sampler_diagnostics [1 : num_warmup ,,], " divergent__" ))
241
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_sampler_diagnostics , " accept_stat__" ),
242
- posterior :: extract_variable_matrix(sampler_diagnostics [1 : num_warmup ,,], " accept_stat__" ))
243
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_sampler_diagnostics , " treedepth__" ),
244
- posterior :: extract_variable_matrix(sampler_diagnostics [1 : num_warmup ,,], " treedepth__" ))
245
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_sampler_diagnostics , " stepsize__" ),
246
- posterior :: extract_variable_matrix(sampler_diagnostics [1 : num_warmup ,,], " stepsize__" ))
247
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_sampler_diagnostics , " n_leapfrog__" ),
248
- posterior :: extract_variable_matrix(sampler_diagnostics [1 : num_warmup ,,], " n_leapfrog__" ))
249
- expect_equal(posterior :: extract_variable_matrix(csv_output $ warmup_sampler_diagnostics , " energy__" ),
250
- posterior :: extract_variable_matrix(sampler_diagnostics [1 : num_warmup ,,], " energy__" ))
251
- # match post-warmup sampling info
252
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_sampler_diagnostics , " divergent__" ),
253
- posterior :: extract_variable_matrix(sampler_diagnostics [(num_warmup + 1 ): num_iter ,,], " divergent__" ))
254
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_sampler_diagnostics , " accept_stat__" ),
255
- posterior :: extract_variable_matrix(sampler_diagnostics [(num_warmup + 1 ): num_iter ,,], " accept_stat__" ))
256
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_sampler_diagnostics , " treedepth__" ),
257
- posterior :: extract_variable_matrix(sampler_diagnostics [(num_warmup + 1 ): num_iter ,,], " treedepth__" ))
258
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_sampler_diagnostics , " stepsize__" ),
259
- posterior :: extract_variable_matrix(sampler_diagnostics [(num_warmup + 1 ): num_iter ,,], " stepsize__" ))
260
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_sampler_diagnostics , " n_leapfrog__" ),
261
- posterior :: extract_variable_matrix(sampler_diagnostics [(num_warmup + 1 ): num_iter ,,], " n_leapfrog__" ))
262
- expect_equal(posterior :: extract_variable_matrix(csv_output $ post_warmup_sampler_diagnostics , " energy__" ),
263
- posterior :: extract_variable_matrix(sampler_diagnostics [(num_warmup + 1 ): num_iter ,,], " energy__" ))
264
- })
265
-
266
214
test_that(" read_cmdstan_csv() works with thin" , {
267
215
skip_on_cran()
268
216
0 commit comments