6#include "testing/testing.h"
18Object *fake_pointer(
int value)
26 TestPersistentID(
int value0,
35 persistent_id_[0] = value0;
36 persistent_id_[1] = value1;
37 persistent_id_[2] = value2;
38 persistent_id_[3] = value3;
39 persistent_id_[4] = value4;
40 persistent_id_[5] = value5;
41 persistent_id_[6] = value6;
42 persistent_id_[7] = value7;
44 TestPersistentID(
int value0,
int value1,
int value2)
45 : TestPersistentID(value0, value1, value2, INT_MAX, INT_MAX, INT_MAX, INT_MAX, INT_MAX)
48 TestPersistentID(
int value0,
int value1) : TestPersistentID(value0, value1, INT_MAX) {}
49 explicit TestPersistentID(
int value0) : TestPersistentID(value0, INT_MAX) {}
55 TestObjectIdentifier(
Object *
object,
Object *duplicated_by,
const PersistentID &persistent_id)
56 : ObjectIdentifier(object, duplicated_by, persistent_id)
69 EXPECT_TRUE(id_root_1 == id_root_2);
70 EXPECT_TRUE(id_root_1.
hash() == id_root_2.
hash());
73 EXPECT_FALSE(id_root_1 == id_a);
76 EXPECT_TRUE(id_root_1 == id_accidental_root);
77 EXPECT_TRUE(id_root_1.
hash() == id_accidental_root.
hash());
84 EXPECT_FALSE(id_a == id_b);
87 EXPECT_TRUE(id_a == id_c);
88 EXPECT_TRUE(id_a.
hash() == id_c.
hash());
94 TestObjectIdentifier id_dupli_a(fake_pointer(1), fake_pointer(2), TestPersistentID(0));
95 TestObjectIdentifier id_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
96 TestObjectIdentifier id_same_dupli_a(fake_pointer(1), fake_pointer(2), TestPersistentID(0));
97 TestObjectIdentifier id_different_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(1));
99 EXPECT_FALSE(id_real_a == id_dupli_a);
100 EXPECT_FALSE(id_dupli_a == id_dupli_b);
102 EXPECT_FALSE(id_dupli_b == id_different_dupli_b);
103 EXPECT_FALSE(id_dupli_a == id_different_dupli_b);
105 EXPECT_TRUE(id_dupli_a == id_same_dupli_a);
106 EXPECT_TRUE(id_dupli_a.hash() == id_same_dupli_a.hash());
114 TestObjectIdentifier id_dupli_a(fake_pointer(1), fake_pointer(2), TestPersistentID(0));
115 TestObjectIdentifier id_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
123 graph.
add(id_another_root, {});
130 TestObjectIdentifier id_another_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
139 TestObjectIdentifier id_dupli_a(fake_pointer(1), fake_pointer(2), TestPersistentID(0));
140 TestObjectIdentifier id_dupli_b(fake_pointer(1), fake_pointer(3), TestPersistentID(0));
141 TestObjectIdentifier id_dupli_c(fake_pointer(1), fake_pointer(3), TestPersistentID(1));
158 ctx1.
object = fake_pointer(1);
159 ctx2.
object = fake_pointer(2);
161 graph_copy.
lookup(id_root).add_new(&ctx1);
186 PersistentID expect_instancer_id = TestPersistentID(327);
198 EXPECT_EQ(
"47", TestPersistentID(47).as_object_name_suffix());
199 EXPECT_EQ(
"327-47", TestPersistentID(47, 327).as_object_name_suffix());
200 EXPECT_EQ(
"42-327-47", TestPersistentID(47, 327, 42).as_object_name_suffix());
202 EXPECT_EQ(
"7-6-5-4-3-2-1-0", TestPersistentID(0, 1, 2, 3, 4, 5, 6, 7).as_object_name_suffix());
204 EXPECT_EQ(
"0-0-0", TestPersistentID(0, 0, 0).as_object_name_suffix());
205 EXPECT_EQ(
"0-0", TestPersistentID(0, 0).as_object_name_suffix());
206 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)
bool add(const Key &key, const Value &value)
const Value & lookup(const Key &key) const
void remove_contained(const Key &key)
void add_new(const Key &key, const Value &value)
blender::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)