Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add infrastructure section to all step test files #1131

Merged
merged 12 commits into from Apr 26, 2023
Merged

Conversation

EmilHvitfeldt
Copy link
Member

@EmilHvitfeldt EmilHvitfeldt commented Apr 25, 2023

This PR is part of #1130.

This PR seems like it is doing a lot, but it is just moving tests around. Looking at it commit by commit is very helpful.

I'm defining infrastructure tests as tests that should be used on all steps, or all applicable tests. All steps should test that they print correctly, and all steps that uses check_name() should test that they are used. These are infrastructure tests.

Tests under the infrastructure section should be in alphabetical order, for no other reason than to avoid confusion when new tests are added

  • Each step_*() and check_*() file gets an # Infrastructure ---------- section in their test file.
  • renamed test-factors2string.R to match name of step
  • split mutate() and rename() tests into 2 each to the _at() variants have their own files.

Moved over tests that should be called for each step

@EmilHvitfeldt
Copy link
Member Author

EmilHvitfeldt commented Apr 25, 2023

Missing test

Empty printing

c(
"tests/testthat/test-geodist.R",                                                    
"tests/testthat/test-interact.R",
"tests/testthat/test-intercept.R",
"tests/testthat/test-mutate.R", # one test called "no input"
"tests/testthat/test-nnmf_sparse.R",
"tests/testthat/test-sample.R",
"tests/testthat/test-select.R"
)

printing

c(
"tests/testthat/test-newvalues.R",
"tests/testthat/test-nnmf_sparse.R"                              
)

empty selection tidy method works

c("
tests/testthat/test-geodist.R", 
"tests/testthat/test-interact.R",                                  
"tests/testthat/test-intercept.R", 
"tests/testthat/test-lag.R", 
"tests/testthat/test-mutate.R", 
"tests/testthat/test-nnmf_sparse.R", 
"tests/testthat/test-sample.R", 
"tests/testthat/test-select.R"
)

empty selection prep/bake is a no-op

c("tests/testthat/test-arrange.R", 
"tests/testthat/test-classdist.R",                                 
"tests/testthat/test-count.R", 
"tests/testthat/test-depth.R", 
"tests/testthat/test-geodist.R",
 "tests/testthat/test-interact.R", 
"tests/testthat/test-intercept.R", 
"tests/testthat/test-mutate.R", 
"tests/testthat/test-nnmf_sparse.R",
"tests/testthat/test-regex.R", 
"tests/testthat/test-sample.R", 
"tests/testthat/test-select.R"
)

bake method errors when needed non-standard role columns are missing

Some of these might be false negatives. E.i. I need to think about if all steps needs this test

c(
"tests/testthat/test-arrange.R",
 "tests/testthat/test-class.R",                                     
"tests/testthat/test-colcheck.R", 
"tests/testthat/test-corr.R", 
"tests/testthat/test-dummy_multi_choice.R", 
"tests/testthat/test-filter.R", 
"tests/testthat/test-filter_missing.R", 
"tests/testthat/test-intercept.R", 
"tests/testthat/test-lincomb.R", 
"tests/testthat/test-missing.R", 
"tests/testthat/test-mutate.R", 
"tests/testthat/test-mutate_at.R", 
"tests/testthat/test-naomit.R", 
"tests/testthat/test-newvalues.R", 
"tests/testthat/test-nnmf_sparse.R", 
"tests/testthat/test-nzv.R", 
"tests/testthat/test-poly_bernstein.R", 
"tests/testthat/test-profile.R", 
"tests/testthat/test-range_check.R", 
"tests/testthat/test-rename.R", 
"tests/testthat/test-rename_at.R", 
"tests/testthat/test-rm.R", 
"tests/testthat/test-sample.R", 
"tests/testthat/test-slice.R", 
"tests/testthat/test-spline_b.R", 
"tests/testthat/test-spline_convex.R", 
"tests/testthat/test-spline_monotone.R",
 "tests/testthat/test-spline_natural.R", 
"tests/testthat/test-spline_nonnegative.R",
 "tests/testthat/test-string2factor.R", 
"tests/testthat/test-time.R", 
"tests/testthat/test-window.R", 
"tests/testthat/test-zv.R"
)

@EmilHvitfeldt
Copy link
Member Author

Incorrect tests

empty selection tidy method works

The following steps don't return 0-row tibbles

  • poly_bernstein
  • spline_b
  • spline_convex
  • spline_monotone
  • spline_natural
  • spline_nonnegative
  • profile

Merge branch 'test-splitting' of github.com:tidymodels/recipes into test-splitting

# Conflicts:
#	tests/testthat/_snaps/center.md
#	tests/testthat/_snaps/classdist.md
#	tests/testthat/_snaps/corr.md
#	tests/testthat/_snaps/dummy_extract.md
#	tests/testthat/_snaps/filter_missing.md
#	tests/testthat/_snaps/hyperbolic.md
#	tests/testthat/_snaps/impute_linear.md
#	tests/testthat/_snaps/impute_mean.md
#	tests/testthat/_snaps/impute_median.md
#	tests/testthat/_snaps/impute_mode.md
#	tests/testthat/_snaps/nzv.md
#	tests/testthat/_snaps/other.md
#	tests/testthat/_snaps/pca.md
#	tests/testthat/_snaps/percentile.md
#	tests/testthat/_snaps/scale.md
#	tests/testthat/_snaps/spatialsign.md
#	tests/testthat/test-BoxCox.R
#	tests/testthat/test-YeoJohnson.R
#	tests/testthat/test-arrange.R
#	tests/testthat/test-bin2factor.R
#	tests/testthat/test-bs.R
#	tests/testthat/test-center.R
#	tests/testthat/test-class.R
#	tests/testthat/test-classdist.R
#	tests/testthat/test-colcheck.R
#	tests/testthat/test-corr.R
#	tests/testthat/test-count.R
#	tests/testthat/test-cut.R
#	tests/testthat/test-date.R
#	tests/testthat/test-depth.R
#	tests/testthat/test-discretize.R
#	tests/testthat/test-dummy.R
#	tests/testthat/test-dummy_extract.R
#	tests/testthat/test-dummy_multi_choice.R
#	tests/testthat/test-factor2string.R
#	tests/testthat/test-filter.R
#	tests/testthat/test-filter_missing.R
#	tests/testthat/test-harmonic.R
#	tests/testthat/test-holiday.R
#	tests/testthat/test-hyperbolic.R
#	tests/testthat/test-ica.R
#	tests/testthat/test-impute_bag.R
#	tests/testthat/test-impute_knn.R
#	tests/testthat/test-impute_linear.R
#	tests/testthat/test-impute_lower.R
#	tests/testthat/test-impute_mean.R
#	tests/testthat/test-impute_median.R
#	tests/testthat/test-impute_mode.R
#	tests/testthat/test-impute_roll.R
#	tests/testthat/test-indicate_na.R
#	tests/testthat/test-integer.R
#	tests/testthat/test-inverse.R
#	tests/testthat/test-invlogit.R
#	tests/testthat/test-isomap.R
#	tests/testthat/test-kpca.R
#	tests/testthat/test-kpca_poly.R
#	tests/testthat/test-kpca_rbf.R
#	tests/testthat/test-lag.R
#	tests/testthat/test-lincomb.R
#	tests/testthat/test-log.R
#	tests/testthat/test-logit.R
#	tests/testthat/test-missing.R
#	tests/testthat/test-naomit.R
#	tests/testthat/test-newvalues.R
#	tests/testthat/test-novel.R
#	tests/testthat/test-ns.R
#	tests/testthat/test-num2factor.R
#	tests/testthat/test-nzv.R
#	tests/testthat/test-ordinalscore.R
#	tests/testthat/test-other.R
#	tests/testthat/test-pca.R
#	tests/testthat/test-percentile.R
#	tests/testthat/test-pls.R
#	tests/testthat/test-poly.R
#	tests/testthat/test-poly_bernstein.R
#	tests/testthat/test-profile.R
#	tests/testthat/test-range.R
#	tests/testthat/test-range_check.R
#	tests/testthat/test-ratio.R
#	tests/testthat/test-regex.R
#	tests/testthat/test-relevel.R
#	tests/testthat/test-relu.R
#	tests/testthat/test-rm.R
#	tests/testthat/test-scale.R
#	tests/testthat/test-shuffle.R
#	tests/testthat/test-slice.R
#	tests/testthat/test-spatialsign.R
#	tests/testthat/test-spline_b.R
#	tests/testthat/test-spline_convex.R
#	tests/testthat/test-spline_monotone.R
#	tests/testthat/test-spline_natural.R
#	tests/testthat/test-spline_nonnegative.R
#	tests/testthat/test-sqrt.R
#	tests/testthat/test-string2factor.R
#	tests/testthat/test-time.R
#	tests/testthat/test-unknown.R
#	tests/testthat/test-unorder.R
#	tests/testthat/test-window.R
#	tests/testthat/test-zv.R
Copy link
Contributor

@simonpcouch simonpcouch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thumbs up from me! Opened up one issue while reviewing that can be handled separately. Reviewing commit-by-commit was definitely helpful, thanks. :) Didn't dig very deeply into most of these changes—trusting that these indeed just move things around.

@github-actions
Copy link

This pull request has been automatically locked. If you believe you have found a related problem, please file a new issue (with a reprex https://reprex.tidyverse.org) and link to this issue.

@github-actions github-actions bot locked and limited conversation to collaborators May 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants