context("equation label utilities")
options(OutDec = ".")
test_that("eq rhs well formatted", {
expect_equal(build_eq.x.rhs(output.type = "expression", orientation = "x"),
"~italic(x)")
expect_equal(build_eq.x.rhs(output.type = "expression", orientation = "y"),
"~italic(y)")
expect_equal(build_eq.x.rhs(output.type = "latex", orientation = "x"),
" x")
expect_equal(build_eq.x.rhs(output.type = "latex", orientation = "y"),
" y")
expect_equal(build_eq.x.rhs(output.type = "markdown", orientation = "x"),
"_x_")
expect_equal(build_eq.x.rhs(output.type = "markdown", orientation = "y"),
"_y_")
expect_equal(build_eq.x.rhs(output.type = "text", orientation = "x"),
" x")
expect_equal(build_eq.x.rhs(output.type = "text", orientation = "y"),
" y")
})
test_that("eq lhs well formatted", {
expect_equal(build_lhs(output.type = "expression", orientation = "x"),
"italic(y)~`=`~")
expect_equal(build_lhs(output.type = "expression", orientation = "y"),
"italic(x)~`=`~")
expect_equal(build_lhs(output.type = "latex", orientation = "x"),
"y = ")
expect_equal(build_lhs(output.type = "latex", orientation = "y"),
"x = ")
expect_equal(build_lhs(output.type = "markdown", orientation = "x"),
"_y_ = ")
expect_equal(build_lhs(output.type = "markdown", orientation = "y"),
"_x_ = ")
expect_equal(build_lhs(output.type = "text", orientation = "x"),
"y = ")
expect_equal(build_lhs(output.type = "text", orientation = "y"),
"x = ")
})
test_that("polynomial as character well formatted", {
expect_equal(poly2character(x = 1:5, decreasing = FALSE, digits = 3, keep.zeros = TRUE),
poly2character(x = 1:5))
expect_equal(poly2character(x = 1:5, decreasing = FALSE, digits = 3, keep.zeros = TRUE),
"1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4")
expect_equal(poly2character(x = 1:5, decreasing = FALSE, digits = 2, keep.zeros = TRUE),
"1.0 + 2.0*x + 3.0*x^2 + 4.0*x^3 + 5.0*x^4")
expect_equal(poly2character(x = 1:5, decreasing = FALSE, digits = 3, keep.zeros = FALSE),
"1 + 2*x + 3*x^2 + 4*x^3 + 5*x^4")
expect_equal(poly2character(x = 1:5, decreasing = FALSE, digits = 2, keep.zeros = FALSE),
"1 + 2*x + 3*x^2 + 4*x^3 + 5*x^4")
expect_equal(poly2character(x = 1:5, decreasing = TRUE, digits = 3, keep.zeros = TRUE),
"5.00*x^4 + 4.00*x^3 + 3.00*x^2 + 2.00*x + 1.00")
expect_equal(poly2character(x = (1:5) * 1e-3, decreasing = TRUE, digits = 3, keep.zeros = TRUE),
"0.00500*x^4 + 0.00400*x^3 + 0.00300*x^2 + 0.00200*x + 0.00100")
expect_equal(poly2character(x = (1:5) * 1e-6, decreasing = TRUE, digits = 3, keep.zeros = TRUE),
"5.00e-06*x^4 + 4.00e-06*x^3 + 3.00e-06*x^2 + 2.00e-06*x + 1.00e-06")
expect_equal(poly2character(x = (1:5) * 1e+3 + 1e-5, decreasing = TRUE, digits = 3, keep.zeros = TRUE),
"5.00e+03*x^4 + 4.00e+03*x^3 + 3.00e+03*x^2 + 2.00e+03*x + 1.00e+03")
expect_warning(poly2character(x = NA))
expect_true(is.na(suppressWarnings(poly2character(x = NA))))
expect_equal(poly2character(x = NULL), character(0))
expect_equal(poly2character(x = numeric()), character(0))
})
test_that("well-formatted polynomial numbers", {
expect_equal(typeset_numbers("1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4",
output.type = "expression"),
"1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4")
expect_equal(typeset_numbers("0.00500*x^4 + 0.00400*x^3 + 0.00300*x^2 + 0.00200*x + 0.00100",
output.type = "expression"),
"0.00500*x^4 + 0.00400*x^3 + 0.00300*x^2 + 0.00200*x + 0.00100")
expect_equal(typeset_numbers("5.00e-06*x^4 + 4.00e-06*x^3 + 3.00e-06*x^2 + 2.00e-06*x + 1.00e-06",
output.type = "expression"),
"5.00%*% 10^{-06}*x^4 + 4.00%*% 10^{-06}*x^3 + 3.00%*% 10^{-06}*x^2 + 2.00%*% 10^{-06}*x + 1.00%*% 10^{-06}")
expect_equal(typeset_numbers("5.00e+03*x^4 + 4.00e+03*x^3 + 3.00e+03*x^2 + 2.00e+03*x + 1.000e+03",
output.type = "expression"),
"5.00%*% 10^{+03}*x^4 + 4.00%*% 10^{+03}*x^3 + 3.00%*% 10^{+03}*x^2 + 2.00%*% 10^{+03}*x + 1.000%*% 10^{+03}")
expect_equal(typeset_numbers("1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4",
output.type = "latex"),
"1.00 + 2.00x + 3.00x^2 + 4.00x^3 + 5.00x^4")
expect_equal(typeset_numbers("0.00500*x^4 + 0.00400*x^3 + 0.00300*x^2 + 0.00200*x + 0.00100",
output.type = "latex"),
"0.00500x^4 + 0.00400x^3 + 0.00300x^2 + 0.00200x + 0.00100")
expect_equal(typeset_numbers("5.00e-06*x^4 + 4.00e-06*x^3 + 3.00e-06*x^2 + 2.00e-06*x + 1.00e-06",
output.type = "latex"),
"5.00\\times{} 10^{-06}x^4 + 4.00\\times{} 10^{-06}x^3 + 3.00\\times{} 10^{-06}x^2 + 2.00\\times{} 10^{-06}x + 1.00\\times{} 10^{-06}")
expect_equal(typeset_numbers("5.00e+03*x^4 + 4.00e+03*x^3 + 3.00e+03*x^2 + 2.00e+03*x + 1.000e+03",
output.type = "latex"),
"5.00\\times{} 10^{+03}x^4 + 4.00\\times{} 10^{+03}x^3 + 3.00\\times{} 10^{+03}x^2 + 2.00\\times{} 10^{+03}x + 1.000\\times{} 10^{+03}")
expect_equal(typeset_numbers("1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4",
output.type = "markdown"),
"1.00+2.00 x+3.00 x2+4.00 x3+5.00 x4")
expect_equal(typeset_numbers("0.00500*x^4 + 0.00400*x^3 + 0.00300*x^2 + 0.00200*x + 0.00100",
output.type = "markdown"),
"0.00500 x4+0.00400 x3+0.00300 x2+0.00200 x+0.00100")
expect_equal(typeset_numbers("5.00e-06*x^4 + 4.00e-06*x^3 + 3.00e-06*x^2 + 2.00e-06*x + 1.00e-06",
output.type = "markdown"),
"5.00×10-6 x4+4.00×10-6 x3+3.00×10-6 x2+2.00×10-6 x+1.00×10-6")
expect_equal(typeset_numbers("5.00e+03*x^4 + 4.00e+03*x^3 + 3.00e+03*x^2 + 2.00e+03*x + 1.000e+03",
output.type = "markdown"),
"5.00×10+3 x4+4.00×10+3 x3+3.00×10+3 x2+2.00×10+3 x+1.000×10+3")
expect_equal(typeset_numbers("1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4",
output.type = "text"),
"1.00 + 2.00 x + 3.00 x^2 + 4.00 x^3 + 5.00 x^4")
expect_equal(typeset_numbers("0.00500*x^4 + 0.00400*x^3 + 0.00300*x^2 + 0.00200*x + 0.00100",
output.type = "text"),
"0.00500 x^4 + 0.00400 x^3 + 0.00300 x^2 + 0.00200 x + 0.00100")
expect_equal(typeset_numbers("5.00e-06*x^4 + 4.00e-06*x^3 + 3.00e-06*x^2 + 2.00e-06*x + 1.00e-06",
output.type = "text"),
"5.00 10^-06 x^4 + 4.00 10^-06 x^3 + 3.00 10^-06 x^2 + 2.00 10^-06 x + 1.00 10^-06")
expect_equal(typeset_numbers("5.00e+03*x^4 + 4.00e+03*x^3 + 3.00e+03*x^2 + 2.00e+03*x + 1.000e+03",
output.type = "text"),
"5.00 10^+03 x^4 + 4.00 10^+03 x^3 + 3.00 10^+03 x^2 + 2.00 10^+03 x + 1.000 10^+03")
})
test_that("well-formatted equation labels", {
expect_equal(coefs2poly_eq(coefs = 1:5,
coef.digits = 3L,
coef.keep.zeros = TRUE,
decreasing = FALSE,
eq.x.rhs = "x",
lhs = "y~`=`~",
output.type = "expression",
decimal.mark = "."),
coefs2poly_eq(coefs = 1:5))
expect_equal(coefs2poly_eq(coefs = 1:5),
"y~`=`~1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4")
expect_equal(coefs2poly_eq(coefs = 5),
"y~`=`~5.00")
expect_equal(coefs2poly_eq(coefs = 1:5,
coef.digits = 4L),
"y~`=`~1.000 + 2.000*x + 3.000*x^2 + 4.000*x^3 + 5.000*x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
coef.keep.zeros = FALSE),
"y~`=`~1 + 2*x + 3*x^2 + 4*x^3 + 5*x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
decreasing = TRUE),
"y~`=`~5.00*x^4 + 4.00*x^3 + 3.00*x^2 + 2.00*x + 1.00")
expect_equal(coefs2poly_eq(coefs = 5,
decreasing = TRUE),
"y~`=`~5.00")
expect_equal(coefs2poly_eq(coefs = 1:5,
lhs = NULL),
"1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
lhs = ""),
"1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
eq.x.rhs = "a",
lhs = "b~`=`~"),
"b~`=`~1.00 + 2.00*a + 3.00*a^2 + 4.00*a^3 + 5.00*a^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
lhs = "y = ",
output.type = "latex"),
"y = 1.00 + 2.00x + 3.00x^2 + 4.00x^3 + 5.00x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
lhs = "y = ",
output.type = "markdown"),
"y = 1.00+2.00 x+3.00 x2+4.00 x3+5.00 x4")
expect_equal(coefs2poly_eq(coefs = 1:5,
lhs = "y = ",
output.type = "text"),
"y = 1.00 + 2.00 x + 3.00 x^2 + 4.00 x^3 + 5.00 x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
decimal.mark = ","),
"y~`=`~1.00 + 2.00*x + 3.00*x^2 + 4.00*x^3 + 5.00*x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
lhs = "y = ",
output.type = "latex",
decimal.mark = ","),
"y = 1,00 + 2,00x + 3,00x^2 + 4,00x^3 + 5,00x^4")
expect_equal(coefs2poly_eq(coefs = 1:5,
eq.x.rhs = "_x_",
lhs = "_y_ = ",
output.type = "markdown",
decimal.mark = ","),
"_y_ = 1,00+2,00 _x_+3,00 _x_2+4,00 _x_3+5,00 _x_4")
expect_equal(coefs2poly_eq(coefs = 1:5,
lhs = "y = ",
output.type = "text",
decimal.mark = ","),
"y = 1,00 + 2,00 x + 3,00 x^2 + 4,00 x^3 + 5,00 x^4")
})
test_that("checks for bad arguments work", {
expect_warning(coefs2poly_eq(coefs = 1:5, coef.digits = 2))
expect_error(coefs2poly_eq(coefs = 1:5, coef.digits = 0))
})