63 lines
1.8 KiB
C++
63 lines
1.8 KiB
C++
|
|
#include "catch2/catch.hpp"
|
||
|
|
#include "../sources/Region.h"
|
||
|
|
using namespace Catch::literals;
|
||
|
|
|
||
|
|
TEST_CASE("[Opcode] Construction")
|
||
|
|
{
|
||
|
|
SECTION("Normal construction")
|
||
|
|
{
|
||
|
|
sfz::Opcode opcode { "sample", "dummy"};
|
||
|
|
REQUIRE( opcode.opcode == "sample" );
|
||
|
|
REQUIRE( opcode.value == "dummy" );
|
||
|
|
REQUIRE( !opcode.parameter );
|
||
|
|
}
|
||
|
|
|
||
|
|
SECTION("Normal construction with underscore")
|
||
|
|
{
|
||
|
|
sfz::Opcode opcode { "sample_underscore", "dummy"};
|
||
|
|
REQUIRE( opcode.opcode == "sample_underscore" );
|
||
|
|
REQUIRE( opcode.value == "dummy" );
|
||
|
|
REQUIRE( !opcode.parameter );
|
||
|
|
}
|
||
|
|
|
||
|
|
SECTION("Parameterized opcode")
|
||
|
|
{
|
||
|
|
sfz::Opcode opcode { "sample123", "dummy"};
|
||
|
|
REQUIRE( opcode.opcode == "sample" );
|
||
|
|
REQUIRE( opcode.value == "dummy" );
|
||
|
|
REQUIRE( opcode.parameter );
|
||
|
|
REQUIRE( *opcode.parameter == 123 );
|
||
|
|
}
|
||
|
|
|
||
|
|
SECTION("Parameterized opcode with underscore")
|
||
|
|
{
|
||
|
|
sfz::Opcode opcode { "sample_underscore123", "dummy"};
|
||
|
|
REQUIRE( opcode.opcode == "sample_underscore" );
|
||
|
|
REQUIRE( opcode.value == "dummy" );
|
||
|
|
REQUIRE( opcode.parameter );
|
||
|
|
REQUIRE( *opcode.parameter == 123 );
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
TEST_CASE("[Opcode] Note values")
|
||
|
|
{
|
||
|
|
auto noteValue = sfz::readNoteValue("c-1");
|
||
|
|
REQUIRE( noteValue );
|
||
|
|
REQUIRE( *noteValue == 0);
|
||
|
|
noteValue = sfz::readNoteValue("C-1");
|
||
|
|
REQUIRE( noteValue );
|
||
|
|
REQUIRE( *noteValue == 0);
|
||
|
|
noteValue = sfz::readNoteValue("g9");
|
||
|
|
REQUIRE( noteValue );
|
||
|
|
REQUIRE( *noteValue == 127);
|
||
|
|
noteValue = sfz::readNoteValue("G9");
|
||
|
|
REQUIRE( noteValue );
|
||
|
|
REQUIRE( *noteValue == 127);
|
||
|
|
noteValue = sfz::readNoteValue("c#4");
|
||
|
|
REQUIRE( noteValue );
|
||
|
|
REQUIRE( *noteValue == 61);
|
||
|
|
noteValue = sfz::readNoteValue("C#4");
|
||
|
|
REQUIRE( noteValue );
|
||
|
|
REQUIRE( *noteValue == 61);
|
||
|
|
}
|