Exemplo n.º 1
0
TEST(PropertyTests, CollectionPropertyEncapsulatesVectorOfInts)
{
    std::vector<int> v;
    v.push_back(0);
    v.push_back(1);
    v.push_back(2);
    Property p = v;
    ASSERT_EQ(p.AsCollection().GetSize(), 3);
    Property new_int = p.AsCollection().Grow();
    new_int.AsInt().Set(3);
    ASSERT_EQ(v.size(), 4);
    ASSERT_EQ(v.back(), 3);
}
Exemplo n.º 2
0
TEST(PropertyTests, CollectionPropertyCanGrow)
{
    std::vector<int> v;
    Property p = v;
    p.AsCollection().Grow().AsInt().Set(0);
    p.AsCollection().Grow().AsInt().Set(1);
    p.AsCollection().Grow().AsInt().Set(2);
    p.AsCollection().Grow().AsInt().Set(3);
    ASSERT_EQ(v.size(), 4);
    ASSERT_EQ(v[0], 0);
    ASSERT_EQ(v[1], 1);
    ASSERT_EQ(v[2], 2);
    ASSERT_EQ(v[3], 3);
}
Exemplo n.º 3
0
TEST(PropertyTests, CollectionPropertyEncapsulatesCompositeCollections)
{
    std::vector<std::vector<int>> v;
    v.resize(2);
    v[0].resize(2);
    v[0][0] = 0;
    v[0][1] = 1;
    v[1].resize(2);
    v[1][0] = 2;
    v[1][1] = 3;
    Property p = v;
    ASSERT_EQ(p.AsCollection().Get(0).AsCollection().Get(0).AsInt().Get(), 0);
    ASSERT_EQ(p.AsCollection().Get(0).AsCollection().Get(1).AsInt().Get(), 1);
    ASSERT_EQ(p.AsCollection().Get(1).AsCollection().Get(0).AsInt().Get(), 2);
    ASSERT_EQ(p.AsCollection().Get(1).AsCollection().Get(1).AsInt().Get(), 3);
}
Exemplo n.º 4
0
TEST(PropertyTests, CollectionPropertyCanBeFiltered)
{
    std::vector<int> v;
    v.push_back(0);
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    v.push_back(4);
    Property p = v;
    p.AsCollection().Filter([&] (size_t, Property p)
    {
        return (p.AsInt().Get() & 1) != 0;
    });
    ASSERT_EQ(v.size(), 2);
    ASSERT_EQ(v[0], 1);
    ASSERT_EQ(v[1], 3);
}
Exemplo n.º 5
0
TEST(PropertyTests, CollectionPropertyCanBeEnumerated)
{
    std::vector<int> v;
    v.push_back(0);
    v.push_back(1);
    v.push_back(2);
    std::vector<int> o;
    Property p = v;
    p.AsCollection().Enumerate([&] (size_t, Property p)
    {
        return o.push_back(static_cast<int>(p.AsInt().Get())), true;
    });
    ASSERT_EQ(o.size(), 3);
    ASSERT_EQ(o[0], 0);
    ASSERT_EQ(o[1], 1);
    ASSERT_EQ(o[2], 2);
}