library(dplyr)
test_that("transpose returns as expected.", {
expect_equal(transpose("b_,", -1, key = "am"), as_noteworthy("a,"))
expect_equal(transpose("b_2", 1, key = "c"), as_noteworthy("b2"))
x <- list("a_3 b_4 c5", "a#3 b4 c#5", "a3 b4 c5")
expect_equal(transpose(x[[1]], 0) |> as.character(), gsub("3", "", x[[1]]))
expect_equal(tp("c#3 a_' d#,", 0, key = "f") |> as.character(), "d_ a_' e_,")
expect_equal(tp("d_4 a2 e_2", 0, key = "g") |> as.character(), "c#4 a2 d#2")
expect_equal(tp("c#3 a_' d#,", 0) |> as.character(), "d_ a_' e_,")
expect_equal(tp("d_4 a2 e_2", 0, accidentals = "sharp") |> as.character(),
"c#4 a2 d#2")
expect_equal(tp(x[[1]], -1) |> as.character(), "g a4 b4")
expect_equal(tp(x[[1]], 1, "tick", "sharp") |> as.character(),
"a b' c#''")
expect_equal(tp(x[[2]], 11) |> as.character(), "a4 a#5 c6")
expect_equal(tp(x[[2]], 12) |> as.character(), "a#4 b5 c#6")
expect_equal(tp(x[[2]], 13) |> as.character(), "b4 c6 d6")
expect_equal(tp(x[[3]], 2, key = "f") |> as.character(), "b d_5 d5")
expect_equal(tp(x[[3]], 2, key = "g") |> as.character(), "b c#5 d5")
expect_equal(tp(x[[3]], 2, accidentals = "sharp") |>
as.character(), "b c#5 d5")
expect_equal(tp("a b' c''", 2, key = "f") |> as.character(), "b d_'' d''")
expect_equal(tp("a b' c''", 2, "integer", "sharp") |> as.character(),
"b c#5 d5")
expect_equal(tp("a b' c''", 2, key = "flat") |> as.character(), "b d_'' d''")
expect_equal(tp("a, b3 c'", 2, key = "g") |> as.character(), "b, c#' d'")
expect_equal(tp("a2 b c4", 2, "tick", key = "sharp") |> as.character(),
"b, c#' d'")
expect_equal(tp("a2 b c4", 2, "tick", key = "flat") |> as.character(),
"b, d_' d'")
expect_equal(tp("a b' c''", 2, "integer", key = "f") |> as.character(),
"b d_5 d5")
expect_equal(tp("a b' c''", 2, "integer", key = "flat") |> as.character(),
"b d_5 d5")
expect_equal(tp("a, b c'", 2, "integer", key = "g") |> as.character(),
"b2 c#4 d4")
expect_equal(tp("a, b c'", 2, "integer", key = "sharp") |> as.character(),
"b2 c#4 d4")
x <- as_noteworthy("r b2 c#4 s d4")
y <- as_noteworthy("r b, c#' s d'")
expect_equal(tp("r a, b s c'", 2, key = "g", "integer"), x)
expect_equal(tp("r a, b s c4", 2, key = "sharp"), y)
expect_equal(tp("r a, b s c'", 2, key = "g", "integer"), x)
expect_equal(tp("r a, b s c4", 2, key = "sharp"), y)
expect_equal(tp("s a,~ a, b r c'~", 2, "integer", key = "g"),
as_noteworthy("s b2~ b2 c#4 r d4~"))
expect_equal(tp("r a, bd'f#' s c4", 2, key = "sharp"),
as_noteworthy("r b, c#'e'g#' s d'"))
x <- as_noteworthy("a' a# b_2 b~ b ceg c'e'g' ce3g c4e4g4 c,e2g, d_,e_ e_'")
y1 <- "c'' d_' d_ d'~ d' e_gb_ e_'g'b_' e_gb_ e_'g'b_' e_,g,b_, e,g_ g_'"
y2 <- "c5 c#4 c# d4~ d4 d#ga# d#4g4a#4 d#ga# d#4g4a#4 d#2g2a#2 e2f# f#4"
expect_equal(transpose(x, 3, key = "flat"), as_noteworthy(y1))
expect_equal(transpose(x, 3, accidentals = "flat"), as_noteworthy(y1))
expect_equal(transpose(x, 3, "integer", "sharp"),
as_noteworthy(y2, "integer"))
expect_equal(tp("r s", 1), as_noteworthy("r s"))
expect_equal(tp("r a#, a", 1), as_noteworthy("r b, a#"))
expect_equal(tp("c0", -1), as_noteworthy("b,,,,", "integer"))
expect_error(tp("a", 1, key = "x"), "Invalid `key`. See `keys\\(\\)`.")
expect_error(tp("a", 1, "x"),
"`octaves` must be 'tick' or 'integer' if not NULL.")
expect_error(tp("a", 1, accidentals = "x"),
"`accidentals` must be 'flat' or 'sharp' if not NULL.")
expect_error(tp("a.", 1), "Invalid notes or chords found.")
expect_error(tp("a.. c", 1), "Invalid notes or chords found.")
expect_error(tp(p("a", 1)),
"`notes` must be a noteworthy string, not a phrase object.")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.