Fix ScriptScheduler tests

This commit is contained in:
Malin E
2021-10-25 10:49:24 +02:00
parent fc4c3f1cfa
commit d86923ebb7
2 changed files with 113 additions and 113 deletions
+1 -1
View File
@@ -162,7 +162,7 @@ void ScriptScheduler::clearSchedule(std::optional<int> group) {
std::vector<std::string> ScriptScheduler::progressTo(double newTime) {
std::vector<std::string> result;
if (!_enabled || newTime == _currentTime) {
if (!_enabled || newTime == _currentTime || _scripts.empty()) {
// Update the new time
_currentTime = newTime;
return result;
+112 -112
View File
@@ -38,7 +38,7 @@ TEST_CASE("ScriptScheduler: Simple Forward", "[scriptscheduler]") {
);
using namespace openspace::scripting;
ScriptScheduler scheduler;
std::vector<ScriptScheduler::ScheduledScript> scripts;
@@ -49,16 +49,16 @@ TEST_CASE("ScriptScheduler: Simple Forward", "[scriptscheduler]") {
script.backwardScript = "BackwardScript1";
scripts.push_back(script);
}
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 02"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -91,15 +91,15 @@ TEST_CASE("ScriptScheduler: Multiple Forward Single Jump", "[scriptscheduler]")
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 02"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript2");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript2");
openspace::SpiceManager::deinitialize();
}
@@ -127,18 +127,18 @@ TEST_CASE("ScriptScheduler: Multiple Forward Ordering", "[scriptscheduler]") {
script2.backwardScript = "BackwardScript2";
scripts.push_back(script2);
}
ScriptScheduler scheduler;
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 02"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(*(std::next(res.first)) == "ForwardScript2");
REQUIRE(res.size() == 2);
REQUIRE(res[0] == "ForwardScript1");
REQUIRE(res[1] == "ForwardScript2");
openspace::SpiceManager::deinitialize();
}
@@ -160,17 +160,17 @@ TEST_CASE("ScriptScheduler: Simple Backward", "[scriptscheduler]") {
script1.backwardScript = "BackwardScript1";
scripts.push_back(script1);
}
ScriptScheduler scheduler;
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 05"));
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 02"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -198,21 +198,21 @@ TEST_CASE("ScriptScheduler: Multiple Backward Single Jump", "[scriptscheduler]")
script2.backwardScript = "BackwardScript2";
scripts.push_back(script2);
}
ScriptScheduler scheduler;
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 07"));
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript2");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript2");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -240,18 +240,18 @@ TEST_CASE("ScriptScheduler: Multiple Backward Ordering", "[scriptscheduler]") {
script2.backwardScript = "BackwardScript2";
scripts.push_back(script2);
}
ScriptScheduler scheduler;
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 07"));
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(*(res.first) == "BackwardScript2");
REQUIRE(*(std::next(res.first)) == "BackwardScript1");
REQUIRE(res.size() == 2);
REQUIRE(res[0] == "BackwardScript2");
REQUIRE(res[1] == "BackwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -263,24 +263,24 @@ TEST_CASE("ScriptScheduler: Empty", "[scriptscheduler]") {
);
using namespace openspace::scripting;
static const std::vector<double> TestTimes = {
0.0, 1.0, -1.0, std::numeric_limits<double>::min(),
-std::numeric_limits<double>::max(), std::numeric_limits<double>::max()
};
// First test if a new ScriptScheduler will return an empty list
for (double t : TestTimes) {
ScriptScheduler scheduler;
auto res = scheduler.progressTo(t);
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
}
// Then test the same thing but keeping the same ScriptScheduler
ScriptScheduler scheduler;
for (double t : TestTimes) {
auto res = scheduler.progressTo(t);
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
}
openspace::SpiceManager::deinitialize();
@@ -294,7 +294,7 @@ TEST_CASE("ScriptScheduler: Forward Backwards", "[scriptscheduler]") {
using namespace openspace::scripting;
using namespace std::string_literals;
std::vector<ScriptScheduler::ScheduledScript> scripts;
{
ScriptScheduler::ScheduledScript script1;
@@ -309,25 +309,25 @@ TEST_CASE("ScriptScheduler: Forward Backwards", "[scriptscheduler]") {
script2.backwardScript = "BackwardScript2";
scripts.push_back(script2);
}
ScriptScheduler scheduler;
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 07"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(res.size() == 2);
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript2");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript2");
openspace::SpiceManager::deinitialize();
}
@@ -355,19 +355,19 @@ TEST_CASE("ScriptScheduler: Rewind", "[scriptscheduler]") {
script2.backwardScript = "BackwardScript2";
scripts.push_back(script2);
}
ScriptScheduler scheduler;
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 07"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(res.size() == 2);
scheduler.rewind();
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -379,12 +379,12 @@ TEST_CASE("ScriptScheduler: CurrentTime", "[scriptscheduler]") {
);
using namespace openspace::scripting;
static const std::vector<double> TestValues = {
0.0, 1.0, 42.0, std::numeric_limits<double>::min(),
-std::numeric_limits<double>::max(), std::numeric_limits<double>::max()
};
for (double t : TestValues) {
ScriptScheduler scheduler;
scheduler.progressTo(t);
@@ -402,7 +402,7 @@ TEST_CASE("ScriptScheduler: All Scripts", "[scriptscheduler]") {
using namespace openspace::scripting;
using namespace std::string_literals;
std::vector<ScriptScheduler::ScheduledScript> scripts;
{
ScriptScheduler::ScheduledScript script1;
@@ -423,7 +423,7 @@ TEST_CASE("ScriptScheduler: All Scripts", "[scriptscheduler]") {
script3.backwardScript = "BackwardScript3";
scripts.push_back(script3);
}
ScriptScheduler scheduler;
scheduler.loadScripts(scripts);
@@ -458,18 +458,18 @@ TEST_CASE("ScriptScheduler: Jump Equal", "[scriptscheduler]") {
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 11:00:00"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 12:00:00"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 12:01:00"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 12:00:00"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -496,11 +496,11 @@ TEST_CASE("ScriptScheduler: Same Time", "[scriptscheduler]") {
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 12:00:00"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 12:00:00"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
openspace::SpiceManager::deinitialize();
}
@@ -527,17 +527,17 @@ TEST_CASE("ScriptScheduler: Multi Inner Jump", "[scriptscheduler]") {
scheduler.loadScripts(scripts);
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 10:00:00"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 11:00:00"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 13:00:00"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 03 12:30:00"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
openspace::SpiceManager::deinitialize();
}
@@ -571,15 +571,15 @@ TEST_CASE(
scheduler.loadScripts({ script2 });
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 02"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript2");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript2");
openspace::SpiceManager::deinitialize();
}
@@ -610,12 +610,12 @@ TEST_CASE("ScriptScheduler: Multiple Forward Ordering Multiple Load" "[scriptsch
scheduler.loadScripts({ script2 });
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 02"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(*(std::next(res.first)) == "ForwardScript2");
REQUIRE(res.size() == 2);
REQUIRE(res[0] == "ForwardScript1");
REQUIRE(res[1] == "ForwardScript2");
openspace::SpiceManager::deinitialize();
}
@@ -648,15 +648,15 @@ TEST_CASE(
scheduler.loadScripts({ script2 });
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript2");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript2");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -689,14 +689,14 @@ TEST_CASE(
scheduler.loadScripts({ script1 });
scheduler.loadScripts({ script2 });
std::pair<ScriptScheduler::ScriptIt, ScriptScheduler::ScriptIt> res =
std::vector<std::string> res =
scheduler.progressTo(openspace::Time::convertTime("2000 JAN 06"));
REQUIRE(res.first == res.second);
REQUIRE(res.empty());
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(*(res.first) == "BackwardScript2");
REQUIRE(*(std::next(res.first)) == "BackwardScript1");
REQUIRE(res.size() == 2);
REQUIRE(res[0] == "BackwardScript2");
REQUIRE(res[1] == "BackwardScript1");
openspace::SpiceManager::deinitialize();
}
@@ -726,19 +726,19 @@ TEST_CASE("ScriptScheduler: Forward Backwards Multiple Load", "[scriptscheduler]
scheduler.loadScripts({ script2 });
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 01"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript1");
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 07"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(res.size() == 2);
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "BackwardScript2");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "BackwardScript2");
openspace::SpiceManager::deinitialize();
}
@@ -768,13 +768,13 @@ TEST_CASE("ScriptScheduler: Rewind Multiple Load", "[scriptscheduler]") {
scheduler.loadScripts({ script2 });
auto res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 07"));
REQUIRE(std::distance(res.first, res.second) == 2);
REQUIRE(res.size() == 2);
scheduler.rewind();
res = scheduler.progressTo(openspace::Time::convertTime("2000 JAN 04"));
REQUIRE(std::distance(res.first, res.second) == 1);
REQUIRE(*(res.first) == "ForwardScript1");
REQUIRE(res.size() == 1);
REQUIRE(res[0] == "ForwardScript1");
openspace::SpiceManager::deinitialize();
}