Implements derangements and tests.
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
#include "Derangements.h"
|
||||
#include <ostream>
|
||||
#include <sstream>
|
||||
|
||||
namespace SBF {
|
||||
using std::ostream;
|
||||
|
||||
bool operator==(const DerangementType& left, const DerangementType& right) {
|
||||
return left.description == right.description &&
|
||||
left.id == right.id &&
|
||||
left.label == right.label &&
|
||||
left.textColor == right.textColor;
|
||||
}
|
||||
|
||||
bool operator!=(const DerangementType& left, const DerangementType& right) {
|
||||
return !(left == right);
|
||||
}
|
||||
|
||||
ostream& operator<<(ostream& os, const DerangementType& derangement) {
|
||||
//Derangement: {id: 1, label: \"kDerangementAmnesiaLabel\", description: \"kDerangementAmnesiaDescription\", textColor: kDerangementAmnesiaTextColor}
|
||||
os << "Derangement: {id: " << derangement.id
|
||||
<< ", label: \"" << derangement.label
|
||||
<< "\", description: \"" << derangement.description
|
||||
<< "\", textColor: " << (int)derangement.textColor << "}";
|
||||
return os;
|
||||
}
|
||||
|
||||
DerangementType GetDerangement(int derangementId) {
|
||||
if (derangementId >0 && derangementId <= kDerangementsCount) {
|
||||
return kDerangements[derangementId];
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
void FillDerangements(std::vector<DerangementType>& derangements) {
|
||||
derangements.clear();
|
||||
for (int id = 1; id <= kDerangementsCount; id++) {
|
||||
derangements.push_back(GetDerangement(id));
|
||||
}
|
||||
}
|
||||
} // End namespace SBF
|
||||
|
||||
Reference in New Issue
Block a user