#include <ableton/Link.hpp>
#include <ableton/platforms/stl/Clock.hpp>
#include <ableton/test/CatchWrapper.hpp>
namespace ableton
{
TEST_CASE("SessionState")
{
SECTION("ForceBeatTime")
{
using namespace std::chrono;
using namespace ableton::link;
const auto beats = 0.;
const auto time = microseconds{23456789};
const auto quantum = 4.;
using SessionState = ableton::BasicLink<platforms::stl::Clock>::SessionState;
for (auto tempo = 20.; tempo < 999.; tempo += 0.8)
{
const auto tl = Timeline{Tempo{tempo}, Beats{12345678.}, microseconds{1234567}};
auto sessionState = SessionState({{tl, {}, {}}, false});
sessionState.forceBeatAtTime(beats, time, quantum);
CHECK(beats >= sessionState.beatAtTime(time, quantum));
}
}
}
}