Jlm
Loading...
Searching...
No Matches
StructuralNodeTests.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2023 Nico Reißmann <nico.reissmann@gmail.com>
3 * See COPYING for terms of redistribution.
4 */
5
6#include <gtest/gtest.h>
7
8#include <jlm/rvsdg/graph.hpp>
11
12#include <cassert>
13
14TEST(StructuralNodeTests, TestOutputRemoval)
15{
16 using namespace jlm;
17
18 // Arrange
19 rvsdg::Graph rvsdg;
20 auto valueType = rvsdg::TestType::createValueType();
21
22 auto structuralNode = rvsdg::TestStructuralNode::create(&rvsdg.GetRootRegion(), 1);
23 auto & output0 = structuralNode->addOutputOnly(valueType);
24 auto & output1 = structuralNode->addOutputOnly(valueType);
25 auto & output2 = structuralNode->addOutputOnly(valueType);
26 auto & output3 = structuralNode->addOutputOnly(valueType);
27 auto & output4 = structuralNode->addOutputOnly(valueType);
28
29 // Act & Assert
30 EXPECT_EQ(structuralNode->noutputs(), 5u);
31 EXPECT_EQ(output0.index(), 0u);
32 EXPECT_EQ(output1.index(), 1u);
33 EXPECT_EQ(output2.index(), 2u);
34 EXPECT_EQ(output3.index(), 3u);
35 EXPECT_EQ(output4.index(), 4u);
36
37 structuralNode->removeOutputAndResults(2);
38 EXPECT_EQ(structuralNode->noutputs(), 4u);
39 EXPECT_EQ(output0.index(), 0u);
40 EXPECT_EQ(output1.index(), 1u);
41 EXPECT_EQ(output3.index(), 2u);
42 EXPECT_EQ(output4.index(), 3u);
43
44 structuralNode->removeOutputAndResults(3);
45 EXPECT_EQ(structuralNode->noutputs(), 3u);
46 EXPECT_EQ(output0.index(), 0u);
47 EXPECT_EQ(output1.index(), 1u);
48 EXPECT_EQ(output3.index(), 2u);
49}
TEST(StructuralNodeTests, TestOutputRemoval)
Region & GetRootRegion() const noexcept
Definition graph.hpp:99