21 #include "testing/testing.h"
33 Object *fake_pointer(
int value)
39 class TestPersistentID :
public PersistentID {
41 TestPersistentID(
int value0,
50 persistent_id_[0] = value0;
51 persistent_id_[1] = value1;
52 persistent_id_[2] = value2;
53 persistent_id_[3] = value3;
54 persistent_id_[4] = value4;
55 persistent_id_[5] = value5;
56 persistent_id_[6] = value6;
57 persistent_id_[7] = value7;
59 TestPersistentID(
int value0,
int value1,
int value2)
60 : TestPersistentID(value0, value1, value2, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX)
63 TestPersistentID(
int value0,
int value1) : TestPersistentID(value0, value1, INT_MAX)
66 explicit TestPersistentID(
int value0) : TestPersistentID(value0, INT_MAX)
72 class TestObjectIdentifier :
public ObjectIdentifier {
74 TestObjectIdentifier(
Object *
object,
Object *duplicated_by,
const PersistentID &persistent_id)
75 : ObjectIdentifier(object, duplicated_by, persistent_id)
89 EXPECT_TRUE(id_root_1 == id_root_2);
90 EXPECT_FALSE(id_root_1 < id_root_2);
91 EXPECT_FALSE(id_root_2 < id_root_1);
94 EXPECT_FALSE(id_root_1 == id_a);
95 EXPECT_TRUE(id_root_1 < id_a);
96 EXPECT_FALSE(id_a < id_root_1);
99 EXPECT_TRUE(id_root_1 == id_accidental_root);
100 EXPECT_FALSE(id_root_1 < id_accidental_root);
101 EXPECT_FALSE(id_accidental_root < id_root_1);
108 EXPECT_FALSE(id_a == id_b);
109 EXPECT_TRUE(id_a < id_b);
115 TestObjectIdentifier id_dupli_a(fake_pointer(1), fake_pointer(2), TestPersistentID(0));
116 TestObjectIdentifier id_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
117 TestObjectIdentifier id_different_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(1));
119 EXPECT_FALSE(id_real_a == id_dupli_a);
120 EXPECT_FALSE(id_dupli_a == id_dupli_b);
121 EXPECT_TRUE(id_real_a < id_dupli_a);
122 EXPECT_TRUE(id_real_a < id_dupli_b);
123 EXPECT_TRUE(id_dupli_a < id_dupli_b);
124 EXPECT_TRUE(id_dupli_a < id_different_dupli_b);
126 EXPECT_FALSE(id_dupli_b == id_different_dupli_b);
127 EXPECT_FALSE(id_dupli_a == id_different_dupli_b);
128 EXPECT_TRUE(id_dupli_b < id_different_dupli_b);
129 EXPECT_FALSE(id_different_dupli_b < id_dupli_b);
137 TestObjectIdentifier id_dupli_a(fake_pointer(1), fake_pointer(2), TestPersistentID(0));
138 TestObjectIdentifier id_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
146 graph[id_another_root];
150 graph.erase(id_another_root);
153 TestObjectIdentifier id_another_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
154 graph.erase(id_another_dupli_b);
162 TestObjectIdentifier id_dupli_a(fake_pointer(1), fake_pointer(2), TestPersistentID(0));
163 TestObjectIdentifier id_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
164 TestObjectIdentifier id_dupli_c(fake_pointer(1), fake_pointer(3), TestPersistentID(1));
181 ctx1.
object = fake_pointer(1);
182 ctx2.
object = fake_pointer(2);
184 graph_copy[id_root].insert(&ctx1);
188 graph_copy.erase(id_dupli_c);
210 PersistentID expect_instancer_id = TestPersistentID(327);
216 EXPECT_LT(child_id, expect_instancer_id);
217 EXPECT_LT(expect_instancer_id, empty_id);
223 EXPECT_EQ(
"47", TestPersistentID(47).as_object_name_suffix());
224 EXPECT_EQ(
"327-47", TestPersistentID(47, 327).as_object_name_suffix());
225 EXPECT_EQ(
"42-327-47", TestPersistentID(47, 327, 42).as_object_name_suffix());
227 EXPECT_EQ(
"7-6-5-4-3-2-1-0", TestPersistentID(0, 1, 2, 3, 4, 5, 6, 7).as_object_name_suffix());
229 EXPECT_EQ(
"0-0-0", TestPersistentID(0, 0, 0).as_object_name_suffix());
230 EXPECT_EQ(
"0-0", TestPersistentID(0, 0).as_object_name_suffix());
231 EXPECT_EQ(
"-3--2--1", TestPersistentID(-1, -2, -3).as_object_name_suffix());
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
#define POINTER_FROM_INT(i)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
std::map< ObjectIdentifier, ExportChildren > ExportGraph
static ObjectIdentifier for_graph_root()
static ObjectIdentifier for_real_object(Object *object)
PersistentID instancer_pid() const
bool is_from_same_instancer_as(const PersistentID &other) const
TEST_F(AbstractHierarchyIteratorTest, ExportHierarchyTest)