@@ -68,8 +68,21 @@ grid_regular.parameters <- function(
6868 original = TRUE ,
6969 filter = NULL
7070) {
71- # test for NA and finalized
72- # test for empty ...
71+ check_dots_empty()
72+
73+ if (nrow(x ) == 0 ) {
74+ cli :: cli_abort(" At least one parameter object is required." )
75+ }
76+ # check for unknowns
77+ for (i in seq_along(x $ object )) {
78+ check_param(
79+ x $ object [[i ]],
80+ allow_na = FALSE ,
81+ allow_unknown = FALSE ,
82+ arg = x $ id [i ]
83+ )
84+ }
85+
7386 params <- x $ object
7487 names(params ) <- x $ id
7588 grd <- make_regular_grid(
@@ -91,6 +104,22 @@ grid_regular.list <- function(
91104 original = TRUE ,
92105 filter = NULL
93106) {
107+ check_dots_empty()
108+
109+ if (length(x ) == 0 ) {
110+ cli :: cli_abort(" At least one parameter object is required." )
111+ }
112+ # check for unknowns
113+ param_names <- names(x )
114+ for (i in seq_along(x )) {
115+ check_param(
116+ x [[i ]],
117+ allow_na = FALSE ,
118+ allow_unknown = FALSE ,
119+ arg = param_arg_name(param_names [i ], x [[i ]], i )
120+ )
121+ }
122+
94123 y <- parameters(x )
95124 params <- y $ object
96125 names(params ) <- y $ id
@@ -114,7 +143,19 @@ grid_regular.param <- function(
114143 original = TRUE ,
115144 filter = NULL
116145) {
117- y <- parameters(list (x , ... ))
146+ # check for unknowns
147+ param_list <- list (x , ... )
148+ param_names <- names(param_list )
149+ for (i in seq_along(param_list )) {
150+ check_param(
151+ param_list [[i ]],
152+ allow_na = FALSE ,
153+ allow_unknown = FALSE ,
154+ arg = param_arg_name(param_names [i ], param_list [[i ]], i )
155+ )
156+ }
157+
158+ y <- parameters(param_list )
118159 params <- y $ object
119160 names(params ) <- y $ id
120161 grd <- make_regular_grid(
@@ -136,7 +177,7 @@ make_regular_grid <- function(
136177) {
137178 check_levels(levels , call = call )
138179 check_bool(original , call = call )
139- validate_params( ... , call = call )
180+
140181 filter_quo <- enquo(filter )
141182 param_quos <- quos(... )
142183 params <- map(param_quos , eval_tidy )
@@ -207,8 +248,21 @@ grid_random.parameters <- function(
207248 original = TRUE ,
208249 filter = NULL
209250) {
210- # test for NA and finalized
211- # test for empty ...
251+ check_dots_empty()
252+
253+ if (nrow(x ) == 0 ) {
254+ cli :: cli_abort(" At least one parameter object is required." )
255+ }
256+ # check for unknowns
257+ for (i in seq_along(x $ object )) {
258+ check_param(
259+ x $ object [[i ]],
260+ allow_na = FALSE ,
261+ allow_unknown = FALSE ,
262+ arg = x $ id [i ]
263+ )
264+ }
265+
212266 params <- x $ object
213267 names(params ) <- x $ id
214268 grd <- make_random_grid(
@@ -224,6 +278,22 @@ grid_random.parameters <- function(
224278# ' @export
225279# ' @rdname grid_regular
226280grid_random.list <- function (x , ... , size = 5 , original = TRUE , filter = NULL ) {
281+ check_dots_empty()
282+
283+ if (length(x ) == 0 ) {
284+ cli :: cli_abort(" At least one parameter object is required." )
285+ }
286+ # check for unknowns
287+ param_names <- names(x )
288+ for (i in seq_along(x )) {
289+ check_param(
290+ x [[i ]],
291+ allow_na = FALSE ,
292+ allow_unknown = FALSE ,
293+ arg = param_arg_name(param_names [i ], x [[i ]], i )
294+ )
295+ }
296+
227297 y <- parameters(x )
228298 params <- y $ object
229299 names(params ) <- y $ id
@@ -247,7 +317,19 @@ grid_random.param <- function(
247317 original = TRUE ,
248318 filter = NULL
249319) {
250- y <- parameters(list (x , ... ))
320+ param_list <- list (x , ... )
321+ # check for unknowns
322+ param_names <- names(param_list )
323+ for (i in seq_along(param_list )) {
324+ check_param(
325+ param_list [[i ]],
326+ allow_na = FALSE ,
327+ allow_unknown = FALSE ,
328+ arg = param_arg_name(param_names [i ], param_list [[i ]], i )
329+ )
330+ }
331+
332+ y <- parameters(param_list )
251333 params <- y $ object
252334 names(params ) <- y $ id
253335 grd <- make_random_grid(
@@ -269,7 +351,7 @@ make_random_grid <- function(
269351) {
270352 check_number_whole(size , min = 1 , call = call )
271353 check_bool(original , call = call )
272- validate_params( ... , call = call )
354+
273355 filter_quo <- enquo(filter )
274356 param_quos <- quos(... )
275357 params <- map(param_quos , eval_tidy )
0 commit comments