diff --git a/tests/RegionT.cpp b/tests/RegionT.cpp index 94db4df9..088ca875 100644 --- a/tests/RegionT.cpp +++ b/tests/RegionT.cpp @@ -652,6 +652,44 @@ TEST_CASE("[Region] Parsing opcodes") REQUIRE(region.crossfadeVelOutRange == Range(0, 0)); } + SECTION("xfin_locc, xfin_hicc") + { + REQUIRE(!region.crossfadeCCInRange.contains(4)); + region.parseOpcode({ "xfin_locc4", "4" }); + REQUIRE(region.crossfadeCCInRange[4] == Range(4, 4)); + region.parseOpcode({ "xfin_locc4", "128" }); + REQUIRE(region.crossfadeCCInRange[4] == Range(127, 127)); + region.parseOpcode({ "xfin_locc4", "59" }); + REQUIRE(region.crossfadeCCInRange[4] == Range(59, 127)); + region.parseOpcode({ "xfin_hicc4", "59" }); + REQUIRE(region.crossfadeCCInRange[4] == Range(59, 59)); + region.parseOpcode({ "xfin_hicc4", "128" }); + REQUIRE(region.crossfadeCCInRange[4] == Range(59, 127)); + region.parseOpcode({ "xfin_hicc4", "0" }); + REQUIRE(region.crossfadeCCInRange[4] == Range(0, 0)); + region.parseOpcode({ "xfin_hicc4", "-1" }); + REQUIRE(region.crossfadeCCInRange[4] == Range(0, 0)); + } + + SECTION("xfout_locc, xfout_hicc") + { + REQUIRE(!region.crossfadeCCOutRange.contains(4)); + region.parseOpcode({ "xfout_locc4", "4" }); + REQUIRE(region.crossfadeCCOutRange[4] == Range(4, 127)); + region.parseOpcode({ "xfout_locc4", "128" }); + REQUIRE(region.crossfadeCCOutRange[4] == Range(127, 127)); + region.parseOpcode({ "xfout_locc4", "59" }); + REQUIRE(region.crossfadeCCOutRange[4] == Range(59, 127)); + region.parseOpcode({ "xfout_hicc4", "59" }); + REQUIRE(region.crossfadeCCOutRange[4] == Range(59, 59)); + region.parseOpcode({ "xfout_hicc4", "128" }); + REQUIRE(region.crossfadeCCOutRange[4] == Range(59, 127)); + region.parseOpcode({ "xfout_hicc4", "0" }); + REQUIRE(region.crossfadeCCOutRange[4] == Range(0, 0)); + region.parseOpcode({ "xfout_hicc4", "-1" }); + REQUIRE(region.crossfadeCCOutRange[4] == Range(0, 0)); + } + SECTION("xf_keycurve") { REQUIRE(region.crossfadeKeyCurve == SfzCrossfadeCurve::power); @@ -680,6 +718,20 @@ TEST_CASE("[Region] Parsing opcodes") REQUIRE(region.crossfadeVelCurve == SfzCrossfadeCurve::gain); } + SECTION("xf_cccurve") + { + REQUIRE(region.crossfadeCCCurve == SfzCrossfadeCurve::power); + region.parseOpcode({ "xf_cccurve", "gain" }); + REQUIRE(region.crossfadeCCCurve == SfzCrossfadeCurve::gain); + region.parseOpcode({ "xf_cccurve", "power" }); + REQUIRE(region.crossfadeCCCurve == SfzCrossfadeCurve::power); + region.parseOpcode({ "xf_cccurve", "something" }); + REQUIRE(region.crossfadeCCCurve == SfzCrossfadeCurve::power); + region.parseOpcode({ "xf_cccurve", "gain" }); + region.parseOpcode({ "xf_cccurve", "something" }); + REQUIRE(region.crossfadeCCCurve == SfzCrossfadeCurve::gain); + } + SECTION("pitch_keycenter") { REQUIRE(region.pitchKeycenter == 60);