MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / TEST_F

Function TEST_F

src/utilities/idf/Test/WorkspaceObjectOrder_GTest.cpp:16–57  ·  view source on GitHub ↗

Test in context of Workspace, since order needs objectGetter.

Source from the content-addressed store, hash-verified

14
15// Test in context of Workspace, since order needs objectGetter.
16TEST_F(IdfFixture, WorkspaceObjectOrder) {
17 Workspace workspace(IdfFixture::epIdfFile, openstudio::StrictnessLevel::Draft);
18
19 WorkspaceObjectOrder wsOrder = workspace.order();
20
21 EXPECT_TRUE(wsOrder.inOrder(workspace.objects()[0].handle()));
22
23 // save current order
24 OptionalHandleVector workspaceOrder = wsOrder.directOrder();
25 ASSERT_TRUE(workspaceOrder);
26
27 // order by enum
28 wsOrder.setOrderByIddEnum();
29 WorkspaceObjectVector objects = workspace.objects(true);
30 for (auto it = objects.begin(), itEnd = objects.end() - 1; it != itEnd; ++it) {
31 auto nxt = it;
32 ++nxt;
33 EXPECT_TRUE(it->iddObject().type() <= nxt->iddObject().type());
34 }
35
36 // restore order
37 wsOrder.setDirectOrder(*workspaceOrder);
38 HandleVector handles = workspace.handles(true);
39 // handles does not include version object, while direct order does
40 HandleVector tempOrder = *workspaceOrder;
41 auto it = std::find(tempOrder.begin(), tempOrder.end(), workspace.versionObject()->handle());
42 tempOrder.erase(it);
43 EXPECT_TRUE(tempOrder == handles);
44
45 // move objects directly
46 wsOrder.insert(handles[32], handles[12]);
47 HandleVector newOrder = workspace.handles(true);
48 EXPECT_EQ(handles.size(), newOrder.size());
49 EXPECT_TRUE(handles[32] == newOrder[12]);
50 EXPECT_TRUE(handles[12] == newOrder[13]);
51
52 wsOrder.swap(handles[80], handles[100]);
53 newOrder = workspace.handles(true);
54 EXPECT_EQ(handles.size(), newOrder.size());
55 EXPECT_TRUE(handles[80] == newOrder[100]);
56 EXPECT_TRUE(handles[100] == newOrder[80]);
57}
58
59TEST_F(IdfFixture, WorkspaceObjectOrder_ByIddObjectType) {
60 Workspace workspace(IdfFixture::epIdfFile, openstudio::StrictnessLevel::Draft);

Callers

nothing calls this directly

Calls 15

orderMethod · 0.80
directOrderMethod · 0.80
beginMethod · 0.80
iddObjectMethod · 0.80
handlesMethod · 0.80
IddObjectTypeClass · 0.50
inOrderMethod · 0.45
handleMethod · 0.45
objectsMethod · 0.45
setOrderByIddEnumMethod · 0.45
endMethod · 0.45
typeMethod · 0.45

Tested by

no test coverage detected