+19
-30
@@ -1,4 +1,5 @@
|
||||
#include <test.hpp>
|
||||
#include "catalog_fixture.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
@@ -59,6 +60,7 @@ auto score_asset_json(std::string title, std::string key = "C", std::string part
|
||||
metadata["title"] = std::move(title);
|
||||
metadata["key_signature"] = std::move(key);
|
||||
value.at("music").at("staves").as_array().front().as_object()["name"] = std::move(part);
|
||||
vamp_test::add_timing(value);
|
||||
return boost::json::serialize(value);
|
||||
}
|
||||
|
||||
@@ -108,35 +110,24 @@ BOOST_AUTO_TEST_CASE(product_vamp_audio_config_parses_defaults_and_values) {
|
||||
auto defaults = vamp_zero::parse_config(boost::json::parse(R"json({})json"));
|
||||
BOOST_REQUIRE(defaults);
|
||||
BOOST_TEST(defaults->audio.enabled);
|
||||
BOOST_TEST(!defaults->audio.playback_enabled);
|
||||
BOOST_TEST(!defaults->audio.backing_enabled);
|
||||
BOOST_TEST(!defaults->audio.metronome_enabled);
|
||||
BOOST_TEST(defaults->audio.metronome_bpm == 120U);
|
||||
BOOST_TEST(defaults->audio.metronome_min_bpm == 40U);
|
||||
BOOST_TEST(defaults->audio.metronome_max_bpm == 240U);
|
||||
BOOST_TEST(defaults->audio.metronome_step == 5U);
|
||||
BOOST_TEST(defaults->audio.tempo_bpm == 120U);
|
||||
auto parsed = vamp_zero::parse_config(boost::json::parse(R"json({
|
||||
"audio": {
|
||||
"enabled": false,
|
||||
"playback_enabled": true,
|
||||
"backing_enabled": true,
|
||||
"metronome_enabled": true,
|
||||
"metronome_bpm": 90,
|
||||
"metronome_min_bpm": 50,
|
||||
"metronome_max_bpm": 180,
|
||||
"metronome_step": 10,
|
||||
"beats_per_bar": 3,
|
||||
"tempo_bpm": 90,
|
||||
"master_volume": 0.5,
|
||||
"metronome_volume": 0.25
|
||||
}
|
||||
})json"));
|
||||
BOOST_REQUIRE(parsed);
|
||||
BOOST_TEST(!parsed->audio.enabled);
|
||||
BOOST_TEST(parsed->audio.playback_enabled);
|
||||
BOOST_TEST(parsed->audio.backing_enabled);
|
||||
BOOST_TEST(parsed->audio.metronome_enabled);
|
||||
BOOST_TEST(parsed->audio.metronome_bpm == 90U);
|
||||
BOOST_TEST(parsed->audio.metronome_min_bpm == 50U);
|
||||
BOOST_TEST(parsed->audio.metronome_max_bpm == 180U);
|
||||
BOOST_TEST(parsed->audio.metronome_step == 10U);
|
||||
BOOST_TEST(parsed->audio.beats_per_bar == 3U);
|
||||
BOOST_TEST(parsed->audio.tempo_bpm == 90U);
|
||||
BOOST_TEST(parsed->audio.master_volume == 0.5F);
|
||||
BOOST_TEST(parsed->audio.metronome_volume == 0.25F);
|
||||
}
|
||||
@@ -144,9 +135,7 @@ BOOST_AUTO_TEST_CASE(product_vamp_audio_config_parses_defaults_and_values) {
|
||||
BOOST_AUTO_TEST_CASE(product_vamp_audio_config_rejects_invalid_tempo_range) {
|
||||
auto parsed = vamp_zero::parse_config(boost::json::parse(R"json({
|
||||
"audio": {
|
||||
"metronome_bpm": 120,
|
||||
"metronome_min_bpm": 160,
|
||||
"metronome_max_bpm": 80
|
||||
"tempo_bpm": 125
|
||||
}
|
||||
})json"));
|
||||
BOOST_TEST(!parsed);
|
||||
@@ -160,7 +149,7 @@ BOOST_AUTO_TEST_CASE(settings_menu_toggles_audio_settings_and_edits_tempo) {
|
||||
BOOST_CHECK(state.mode == vamp_zero::app_mode::SETTINGS_MENU);
|
||||
BOOST_TEST(state.selected_settings_index == 1U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_TEST(state.audio.playback_enabled);
|
||||
BOOST_TEST(!state.audio.backing_enabled);
|
||||
BOOST_TEST(static_cast<std::int32_t>(state.mode) == static_cast<std::int32_t>(vamp_zero::app_mode::SETTINGS_MENU));
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
BOOST_TEST(state.selected_settings_index == 2U);
|
||||
@@ -172,17 +161,17 @@ BOOST_AUTO_TEST_CASE(settings_menu_toggles_audio_settings_and_edits_tempo) {
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_TEST(state.audio.tempo_editing);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
BOOST_TEST(state.audio.metronome_bpm == 125U);
|
||||
BOOST_TEST(state.audio.tempo_bpm == 120U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::PREVIOUS);
|
||||
BOOST_TEST(state.audio.metronome_bpm == 120U);
|
||||
BOOST_TEST(state.audio.tempo_bpm == 110U);
|
||||
for (auto index = std::int32_t{}; index < 40; ++index) {
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::PREVIOUS);
|
||||
}
|
||||
BOOST_TEST(state.audio.metronome_bpm == 40U);
|
||||
BOOST_TEST(state.audio.tempo_bpm == 60U);
|
||||
for (auto index = std::int32_t{}; index < 80; ++index) {
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
}
|
||||
BOOST_TEST(state.audio.metronome_bpm == 240U);
|
||||
BOOST_TEST(state.audio.tempo_bpm == 120U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_TEST(!state.audio.tempo_editing);
|
||||
}
|
||||
@@ -191,17 +180,17 @@ BOOST_AUTO_TEST_CASE(remote_display_reports_settings_without_a_catalog_dump) {
|
||||
auto state = navigation_state();
|
||||
state.mode = vamp_zero::app_mode::SETTINGS_MENU;
|
||||
state.selected_settings_index = 3U;
|
||||
state.audio.playback_enabled = true;
|
||||
state.audio.backing_enabled = true;
|
||||
state.audio.metronome_enabled = true;
|
||||
state.audio.metronome_bpm = 135;
|
||||
state.audio.tempo_bpm = 110;
|
||||
state.audio.tempo_editing = true;
|
||||
auto remote = vamp_pico::remote_display_state{};
|
||||
BOOST_REQUIRE(vamp_pico::parse_remote_display_body(vamp_zero::remote_display_text(state), remote));
|
||||
BOOST_TEST(std::string{remote.focus} == "Tempo");
|
||||
BOOST_TEST(std::string{remote.mode} == "settings_menu");
|
||||
BOOST_TEST(remote.playback);
|
||||
BOOST_TEST(remote.backing);
|
||||
BOOST_TEST(remote.metronome);
|
||||
BOOST_TEST(remote.bpm == 135U);
|
||||
BOOST_TEST(remote.bpm == 110U);
|
||||
BOOST_TEST(remote.editing);
|
||||
}
|
||||
|
||||
@@ -279,7 +268,7 @@ BOOST_AUTO_TEST_CASE(song_part_navigation_preserves_selection_and_remote_display
|
||||
for (auto index = std::uint32_t{}; index < 4U; ++index) {
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
}
|
||||
BOOST_TEST(state.page_index == 2U);
|
||||
BOOST_TEST(state.page_index == 0U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_CHECK(state.mode == vamp_zero::app_mode::PERFORMANCE_PART_MENU);
|
||||
BOOST_TEST(state.selected_part_index == selection);
|
||||
|
||||
Reference in New Issue
Block a user