mirror of https://github.com/KLayout/klayout.git
Fixed unit tests, added swap function to tl::list
This commit is contained in:
parent
4712ee0f29
commit
74b6341425
|
|
@ -28,6 +28,7 @@
|
|||
#include "tlTypeTraits.h"
|
||||
|
||||
#include <iterator>
|
||||
#include <algorithm>
|
||||
|
||||
namespace tl
|
||||
{
|
||||
|
|
@ -141,6 +142,24 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void swap (list_impl<C, tl::false_tag> &other)
|
||||
{
|
||||
std::swap (m_head.mp_next, other.m_head.mp_next);
|
||||
if (m_head.mp_next) {
|
||||
m_head.mp_next->mp_prev = &m_head;
|
||||
}
|
||||
if (other.m_head.mp_next) {
|
||||
other.m_head.mp_next->mp_prev = &other.m_head;
|
||||
}
|
||||
std::swap (m_back.mp_prev, other.m_back.mp_prev);
|
||||
if (m_back.mp_prev) {
|
||||
m_back.mp_prev->mp_next = &m_back;
|
||||
}
|
||||
if (other.m_back.mp_prev) {
|
||||
other.m_back.mp_prev->mp_next = &other.m_back;
|
||||
}
|
||||
}
|
||||
|
||||
bool empty () const
|
||||
{
|
||||
return m_head.mp_next == &m_back;
|
||||
|
|
@ -303,7 +322,7 @@ public:
|
|||
list_impl () { }
|
||||
|
||||
list_impl (const list_impl &other)
|
||||
: list_impl<C, tl::false_tag> (other)
|
||||
: list_impl<C, tl::false_tag> ()
|
||||
{
|
||||
operator= (other);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -263,9 +263,24 @@ TEST(1_Basic)
|
|||
EXPECT_EQ (l2sr (l3), "1,17");
|
||||
EXPECT_EQ (l3.size (), size_t (2));
|
||||
|
||||
EXPECT_EQ (l2sr (l2), "17");
|
||||
EXPECT_EQ (l2sr (l3), "1,17");
|
||||
l3.swap (l2);
|
||||
EXPECT_EQ (l2sr (l2), "1,17");
|
||||
EXPECT_EQ (l2sr (l3), "17");
|
||||
|
||||
l1.clear ();
|
||||
l2.swap (l1);
|
||||
EXPECT_EQ (l2sr (l1), "1,17");
|
||||
EXPECT_EQ (l2sr (l2), "");
|
||||
|
||||
l1.clear ();
|
||||
l2.clear ();
|
||||
l3.clear ();
|
||||
|
||||
l2.swap (l1);
|
||||
EXPECT_EQ (l2sr (l1), "");
|
||||
EXPECT_EQ (l2sr (l2), "");
|
||||
|
||||
EXPECT_EQ (obj_count, size_t (0));
|
||||
}
|
||||
|
||||
|
|
@ -383,6 +398,12 @@ TEST(2_BasicNoCopy)
|
|||
EXPECT_EQ (l2sr (l3), "1,17");
|
||||
EXPECT_EQ (l3.size (), size_t (2));
|
||||
|
||||
EXPECT_EQ (l2sr (l2), "17");
|
||||
EXPECT_EQ (l2sr (l3), "1,17");
|
||||
l3.swap (l2);
|
||||
EXPECT_EQ (l2sr (l2), "1,17");
|
||||
EXPECT_EQ (l2sr (l3), "17");
|
||||
|
||||
l1.clear ();
|
||||
l2.clear ();
|
||||
l3.clear ();
|
||||
|
|
|
|||
Loading…
Reference in New Issue