Unit Tests - list.t
- Added listIntersect and a Boolean listDiff implementation in main.h. - Added a set of unit tests for the above.
This commit is contained in:
31
src/main.h
31
src/main.h
@@ -124,6 +124,19 @@ std::string colorizeDebug (const std::string&);
|
||||
int handleImport (std::string&);
|
||||
|
||||
// list template
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
template <class T> bool listDiff (const T& left, const T& right)
|
||||
{
|
||||
if (left.size () != right.size ())
|
||||
return true;
|
||||
|
||||
for (unsigned int i = 0; i < left.size (); ++i)
|
||||
if (left[i] != right[i])
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
template <class T> void listDiff (
|
||||
const T& left, const T& right, T& leftOnly, T& rightOnly)
|
||||
@@ -164,5 +177,23 @@ template <class T> void listDiff (
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
template <class T> void listIntersect (const T& left, const T& right, T& join)
|
||||
{
|
||||
join.clear ();
|
||||
|
||||
for (unsigned int l = 0; l < left.size (); ++l)
|
||||
{
|
||||
for (unsigned int r = 0; r < right.size (); ++r)
|
||||
{
|
||||
if (left[l] == right[r])
|
||||
{
|
||||
join.push_back (left[l]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user