Ejemplo n.º 1
0
Archivo: main.cpp Proyecto: bngo92/fun
int main()
{
	assert(unique1(""));
	assert(unique1("a"));
	assert(!unique1("aa"));
	assert(unique1("asdfjkl;"));
	assert(!unique1("asdfjkl;a"));
	assert(unique2(""));
	assert(unique2("a"));
	assert(!unique2("aa"));
	assert(unique2("asdfjkl;"));
	assert(!unique2("asdfjkl;a"));
	char s[][10] = {"", "abc", "abcd"};
	char r[][10] = {"", "cba", "dcba"};
	for (int i = 0; i < 3; i++) {
		reverse(s[i]);
		assert(strcmp(s[i], r[i]) == 0);
	}
	assert(is_permutation("abcd", "dcba"));
	assert(!is_permutation("abcd", "ddcba"));
}
Ejemplo n.º 2
0
TEST(fxcrt, WeakPtrCyclic) {
  PseudoDeletable thing1;
  PseudoDeletable thing2;
  {
    UniquePtr unique1(&thing1);
    UniquePtr unique2(&thing2);
    WeakPtr ptr1(std::move(unique1));
    WeakPtr ptr2(std::move(unique2));
    ptr1->SetNext(ptr2);
    ptr2->SetNext(ptr1);
  }
  // Leaks without explicit clear.
  EXPECT_EQ(0, thing1.delete_count());
  EXPECT_EQ(0, thing2.delete_count());
}
Ejemplo n.º 3
0
TEST(fxcrt, WeakPtrCyclicClear) {
  PseudoDeletable thing1;
  PseudoDeletable thing2;
  {
    UniquePtr unique1(&thing1);
    UniquePtr unique2(&thing2);
    WeakPtr ptr1(std::move(unique1));
    WeakPtr ptr2(std::move(unique2));
    ptr1->SetNext(ptr2);
    ptr2->SetNext(ptr1);
    ptr1.Clear();
    EXPECT_EQ(1, thing1.delete_count());
    EXPECT_EQ(0, thing2.delete_count());
  }
  EXPECT_EQ(1, thing1.delete_count());
  EXPECT_EQ(1, thing2.delete_count());
}
Ejemplo n.º 4
0
TEST(fxcrt, WeakPtrResetNonNull) {
  PseudoDeletable thing1;
  PseudoDeletable thing2;
  {
    UniquePtr unique1(&thing1);
    WeakPtr ptr1(std::move(unique1));
    WeakPtr ptr2 = ptr1;
    UniquePtr unique2(&thing2);
    ptr2.Reset(std::move(unique2));
    EXPECT_TRUE(ptr1);
    EXPECT_EQ(&thing1, ptr1.Get());
    EXPECT_TRUE(ptr2);
    EXPECT_EQ(&thing2, ptr2.Get());
    EXPECT_FALSE(ptr1 == ptr2);
    EXPECT_TRUE(ptr1 != ptr2);
    EXPECT_EQ(0, thing1.delete_count());
    EXPECT_EQ(0, thing2.delete_count());
  }
  EXPECT_EQ(1, thing1.delete_count());
  EXPECT_EQ(1, thing2.delete_count());
}