TEST_F(TesteLista, RetiraObj) {
	Objeto obj0(20);
	Objeto obj1(10);
	Objeto obj2(40);
	lobj.adiciona(obj0);
	lobj.adiciona(obj1);
	lobj.adiciona(obj2);
	ASSERT_EQ(lobj.retira(), obj2);

}
TEST_F(TesteLista, retiraDoInicioDuplo) {
	Objeto obj0(20);
	Objeto obj1(10);
	Objeto obj2(40);
	lobj.adicionaDuplo(obj0);
	lobj.adicionaDuplo(obj1);
	lobj.adicionaDuplo(obj2);
	lobj.retiraDoInicioDuplo();
	ASSERT_EQ(lobj.retiraDoInicioDuplo(), obj1);
}
TEST_F(TesteFila, UltimaPosicaoElementoComplexo){
	Objeto obj0(10);
	Objeto obj1(5);
	Objeto obj2(2);

	filaobj.inclui(obj0);
	filaobj.inclui(obj1);
	filaobj.inclui(obj2);
	ASSERT_EQ(2, fila.getUltimo());
}
Esempio n. 4
0
TEST(ObjectTest, test_circular_with_object_weak) {

    LifeCycleMock mock;
    EXPECT_CALL(mock, constructed()).Times(2);
    EXPECT_CALL(mock, destructed()).Times(2);

    TestObject::Ptr obj0(TestObject::New(&mock));
    TestObject::Ptr obj1(TestObject::New(&mock));

    obj0->set_other(obj1);
    obj1->set_other(obj0);
}
TEST_F(TesteLista, retiraEspecificoDuplo) {
	Objeto obj0(0);
	Objeto obj1(1);
	Objeto obj2(2);
	Objeto obj3(3);
	Objeto obj4(4);

	lobj.adicionaDuplo(obj0);
	lobj.adicionaDuplo(obj1);
	lobj.adicionaDuplo(obj2);
	lobj.adicionaDuplo(obj3);
	lobj.adicionaDuplo(obj4);
	ASSERT_EQ(lobj.retiraEspecificoDuplo(obj3), 3);
}
TEST_F(TesteLista, MaiorObjDuplo) {
	Objeto obj0(20);
	Objeto obj1(10);
	ASSERT_TRUE(lobj.maior(obj0, obj1));
}
TEST_F(TesteLista, IgualObjDuplo) {
	Objeto obj0(10);
	Objeto obj1(10);
	ASSERT_TRUE(lobj.igual(obj0, obj1));
}
TEST_F(TesteLista, MenorObj) {
	Objeto obj0(10);
	Objeto obj1(20);
	ASSERT_TRUE(lobj.menor(obj0, obj1));
}
Esempio n. 9
0
static void test_autostarray(skiatest::Reporter* reporter) {
    RefClass obj0(0);
    RefClass obj1(1);
    REPORTER_ASSERT(reporter, obj0.unique());
    REPORTER_ASSERT(reporter, obj1.unique());

    {
        SkAutoSTArray<2, SkAutoTUnref<RefClass> > tmp;
        REPORTER_ASSERT(reporter, 0 == tmp.count());

        tmp.reset(0);   // test out reset(0) when already at 0
        tmp.reset(4);   // this should force a new allocation
        REPORTER_ASSERT(reporter, 4 == tmp.count());
        tmp[0].reset(SkRef(&obj0));
        tmp[1].reset(SkRef(&obj1));
        REPORTER_ASSERT(reporter, !obj0.unique());
        REPORTER_ASSERT(reporter, !obj1.unique());

        // test out reset with data in the array (and a new allocation)
        tmp.reset(0);
        REPORTER_ASSERT(reporter, 0 == tmp.count());
        REPORTER_ASSERT(reporter, obj0.unique());
        REPORTER_ASSERT(reporter, obj1.unique());

        tmp.reset(2);   // this should use the preexisting allocation
        REPORTER_ASSERT(reporter, 2 == tmp.count());
        tmp[0].reset(SkRef(&obj0));
        tmp[1].reset(SkRef(&obj1));
    }

    // test out destructor with data in the array (and using existing allocation)
    REPORTER_ASSERT(reporter, obj0.unique());
    REPORTER_ASSERT(reporter, obj1.unique());

    {
        // test out allocating ctor (this should allocate new memory)
        SkAutoSTArray<2, SkAutoTUnref<RefClass> > tmp(4);
        REPORTER_ASSERT(reporter, 4 == tmp.count());

        tmp[0].reset(SkRef(&obj0));
        tmp[1].reset(SkRef(&obj1));
        REPORTER_ASSERT(reporter, !obj0.unique());
        REPORTER_ASSERT(reporter, !obj1.unique());

        // Test out resut with data in the array and malloced storage
        tmp.reset(0);
        REPORTER_ASSERT(reporter, obj0.unique());
        REPORTER_ASSERT(reporter, obj1.unique());

        tmp.reset(2);   // this should use the preexisting storage
        tmp[0].reset(SkRef(&obj0));
        tmp[1].reset(SkRef(&obj1));
        REPORTER_ASSERT(reporter, !obj0.unique());
        REPORTER_ASSERT(reporter, !obj1.unique());

        tmp.reset(4);   // this should force a new malloc
        REPORTER_ASSERT(reporter, obj0.unique());
        REPORTER_ASSERT(reporter, obj1.unique());

        tmp[0].reset(SkRef(&obj0));
        tmp[1].reset(SkRef(&obj1));
        REPORTER_ASSERT(reporter, !obj0.unique());
        REPORTER_ASSERT(reporter, !obj1.unique());
    }

    REPORTER_ASSERT(reporter, obj0.unique());
    REPORTER_ASSERT(reporter, obj1.unique());
}
Esempio n. 10
0
TEST(ObjectTest, test_object_ptr_validation_as_container_hash_key) {

    LifeCycleMock mock;
    EXPECT_CALL(mock, constructed()).Times(1);
    EXPECT_CALL(mock, destructed()).Times(1);

    TestObject::Ptr obj0(TestObject::New(&mock));
    TestObject::Ptr obj1(obj0);
    TestObject::Ptr obj2(obj1);

    TestObject * obj = obj0.get();

    {
        std::set<TestObject::Ptr> set;
        set.insert(obj0);
        EXPECT_NE(set.end(), set.find(obj0));
        EXPECT_NE(set.end(), set.find(obj1));
        EXPECT_NE(set.end(), set.find(obj2));
        EXPECT_NE(set.end(), set.find(obj));
    }

    {
        std::unordered_set<TestObject::Ptr> uset;
        uset.insert(obj0);
        EXPECT_NE(uset.end(), uset.find(obj0));
        EXPECT_NE(uset.end(), uset.find(obj1));
        EXPECT_NE(uset.end(), uset.find(obj2));
        EXPECT_NE(uset.end(), uset.find(obj));
    }

    {
        std::map<TestObject::Ptr, int> map;
        map[obj0] = 0;
        EXPECT_EQ(0, map[obj0]);
        EXPECT_EQ(0, map[obj1]);
        EXPECT_EQ(0, map[obj2]);
        EXPECT_EQ(0, map[obj]);
        map[obj1] = 1;
        EXPECT_EQ(1, map[obj0]);
        EXPECT_EQ(1, map[obj1]);
        EXPECT_EQ(1, map[obj2]);
        EXPECT_EQ(1, map[obj]);
        map[obj2] = 2;
        EXPECT_EQ(2, map[obj0]);
        EXPECT_EQ(2, map[obj1]);
        EXPECT_EQ(2, map[obj2]);
        EXPECT_EQ(2, map[obj]);
        map[obj] = 3;
        EXPECT_EQ(3, map[obj0]);
        EXPECT_EQ(3, map[obj1]);
        EXPECT_EQ(3, map[obj2]);
        EXPECT_EQ(3, map[obj]);
    }

    {
        std::unordered_map<TestObject::Ptr, int> umap;
        umap[obj0] = 0;
        EXPECT_EQ(0, umap[obj0]);
        EXPECT_EQ(0, umap[obj1]);
        EXPECT_EQ(0, umap[obj2]);
        EXPECT_EQ(0, umap[obj]);
        umap[obj1] = 1;
        EXPECT_EQ(1, umap[obj0]);
        EXPECT_EQ(1, umap[obj1]);
        EXPECT_EQ(1, umap[obj2]);
        EXPECT_EQ(1, umap[obj]);
        umap[obj2] = 2;
        EXPECT_EQ(2, umap[obj0]);
        EXPECT_EQ(2, umap[obj1]);
        EXPECT_EQ(2, umap[obj2]);
        EXPECT_EQ(2, umap[obj]);
        umap[obj] = 3;
        EXPECT_EQ(3, umap[obj0]);
        EXPECT_EQ(3, umap[obj1]);
        EXPECT_EQ(3, umap[obj2]);
        EXPECT_EQ(3, umap[obj]);
    }
}