expect_equal( poorman:::select_positions(mtcars, 1L), c(mpg = 1), info = "Integer selections work" ) expect_equal( poorman:::select_positions(mtcars, 0L), integer(0), info = "Selecting the 0th integer column returns an empty data.frame" ) expect_equal( poorman:::select_positions(mtcars, 1), c(mpg = 1), info = "Numeric selections work" ) expect_equal( poorman:::select_positions(mtcars, 0), integer(0), info = "Selecting the 0th numeric column returns an empty data.frame" ) expect_equal( poorman:::select_positions(mtcars, "mpg"), c(mpg = 1), info = "Selecting by character string works" ) expect_equal( poorman:::select_positions(mtcars, mpg), c(mpg = 1), info = "Selecting by symbol works" ) expect_equal( poorman:::select_positions(mtcars, starts_with("m")), c(mpg = 1), info = "Selecting columns using an expression" ) expect_equal( poorman:::select_positions(mtcars, 1:3), c(mpg = 1, cyl = 2, disp = 3), info = "Selecting with a numeric sequence" ) expect_equal( poorman:::select_positions(mtcars, "mpg":"cyl"), c(mpg = 1, cyl = 2), info = "Selecting with a character sequence" ) expect_equal( poorman:::select_positions(mtcars, mpg:cyl), c(mpg = 1, cyl = 2), info = "Selecting with a symbol sequence" ) expect_equal( poorman:::select_positions(mtcars, -1:-3), c(hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a numeric sequence" ) expect_equal( poorman:::select_positions(mtcars, -mpg:-cyl), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a symbol sequence" ) expect_equal( poorman:::select_positions(mtcars, -"mpg":-"cyl"), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a charatcer sequence" ) expect_equal( poorman:::select_positions(mtcars, !mpg), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a symbol" ) expect_equal( poorman:::select_positions(mtcars, !1), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a numeric" ) expect_equal( poorman:::select_positions(mtcars, !"mpg"), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a character vector" ) expect_equal( poorman:::select_positions(mtcars, !mpg:!cyl), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with symbol sequences" ) expect_equal( poorman:::select_positions(mtcars, !"mpg":!"cyl"), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a character sequence" ) expect_equal( poorman:::select_positions(mtcars, !c(mpg, cyl)), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns using a negated c()" ) expect_equal( poorman:::select_positions(mtcars, -1), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a numeric" ) expect_equal( poorman:::select_positions(mtcars, -1L), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with an integer" ) expect_equal( poorman:::select_positions(mtcars, -mpg), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a symbol" ) expect_equal( poorman:::select_positions(mtcars, -"mpg"), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns with a character vector" ) expect_equal( poorman:::select_positions(mtcars, -starts_with("m")), c(cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns using an expression" ) expect_equal( poorman:::select_positions(mtcars, c(1, 2)), c(mpg = 1, cyl = 2), info = "Selecting columns with c() and numerics" ) expect_equal( poorman:::select_positions(mtcars, c("mpg", "cyl")), c(mpg = 1, cyl = 2), info = "Selecting columns with c() and character strings" ) expect_equal( poorman:::select_positions(mtcars, c(mpg, cyl)), c(mpg = 1, cyl = 2), info = "Selecting columns with c() and symbols" ) expect_equal( poorman:::select_positions(mtcars, c(starts_with("m"), starts_with("c"))), c(mpg = 1, cyl = 2, carb = 11), info = "Selecting columns with c() and expressions" ) expect_equal( poorman:::select_positions(mtcars, c(-mpg, -cyl)), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns using c() and symbols" ) expect_equal( poorman:::select_positions(mtcars, !c(mpg, cyl)), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns using a negated c()" ) expect_equal( poorman:::select_positions(mtcars, -(1:2)), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns using a negative, bracketed sequence" ) expect_equal( poorman:::select_positions(mtcars, !(1:2)), c(disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Dropping columns using a negated, bracketed sequence" ) expect_equal( poorman:::select_positions(mtcars, 1L, 2, "disp", "hp", starts_with("dr"), wt:qsec), c(mpg = 1, cyl = 2, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7), info = "Test selecting with a mixture of selection options" ) expect_equal( poorman:::select_positions(mtcars, -2, 3), c(mpg = 1, disp = 3, hp = 4, drat = 5, wt = 6, qsec = 7, vs = 8, am = 9, gear = 10, carb = 11), info = "Mixture of negative and positives select only negatives" ) expect_equal( poorman:::select_positions(mtcars, 3, -2), c(disp = 3), info = "Mixture of positives and negatives select only negatives" ) expect_equal( poorman:::select_positions(mtcars, NULL), integer(0), info = "NULL returns zero column positions" ) expect_equal( poorman:::select_positions(mtcars, am, NULL, cyl), c("am" = 9, "cyl" = 2), info = "combinations of NULL and other parameter names ignore the NULLs" ) expect_error( poorman:::select_positions(mtcars, 100), info = "Out of range columns error" ) expect_error( poorman:::select_positions(mtcars, TRUE), info = "Logical selections do not work" )