2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // See LICENSE file in the project root for full license information.
6 #include <boost/test/unit_test.hpp>
9 #include "Observable.hpp"
11 BOOST_AUTO_TEST_SUITE(Observable)
13 BOOST_AUTO_TEST_CASE(AddedLayerObservableTest)
17 // Create a graph observable
18 armnn::AddedLayerObservable layerObservable(graph);
21 auto output = graph.AddLayer<armnn::OutputLayer>(0, "output");
22 auto input = graph.InsertNewLayer<armnn::InputLayer>(output->GetInputSlot(0), 0, "input");
24 // Check the observable has observed the changes
25 std::list<armnn::Layer*> testLayers({ output, input });
27 BOOST_CHECK_EQUAL_COLLECTIONS(layerObservable.begin(), layerObservable.end(),
28 testLayers.begin(), testLayers.end());
31 BOOST_AUTO_TEST_CASE(ClearAddedLayerObservableTest)
35 // Create a graph observable
36 armnn::AddedLayerObservable addedLayerObservable(graph);
39 auto output = graph.AddLayer<armnn::OutputLayer>(0, "output");
40 graph.InsertNewLayer<armnn::InputLayer>(output->GetInputSlot(0), 0, "input");
42 addedLayerObservable.Clear();
44 // Check the observable has observed the changes
45 std::list<armnn::Layer*> emptyList({});
47 BOOST_CHECK_EQUAL_COLLECTIONS(addedLayerObservable.begin(), addedLayerObservable.end(),
48 emptyList.begin(), emptyList.end());
51 BOOST_AUTO_TEST_CASE(ErasedLayerNamesObservableTest)
55 // Create a graph observable
56 armnn::ErasedLayerNamesObservable erasedLayerNamesObservable(graph);
59 auto output = graph.AddLayer<armnn::OutputLayer>(0, "output");
60 graph.InsertNewLayer<armnn::InputLayer>(output->GetInputSlot(0), 0, "input");
62 graph.EraseLayer(output);
64 // Check the observable has observed the changes
65 std::list<std::string> testList({"output"});
67 BOOST_CHECK_EQUAL_COLLECTIONS(erasedLayerNamesObservable.begin(), erasedLayerNamesObservable.end(),
68 testList.begin(), testList.end());
71 BOOST_AUTO_TEST_CASE(ClearErasedLayerNamesObservableTest)
75 // Create a graph observable
76 armnn::ErasedLayerNamesObservable erasedLayerNamesObservable(graph);
79 auto output = graph.AddLayer<armnn::OutputLayer>(0, "output");
80 graph.InsertNewLayer<armnn::InputLayer>(output->GetInputSlot(0), 0, "input");
82 graph.EraseLayer(output);
84 erasedLayerNamesObservable.Clear();
86 // Check the observable has observed the changes
87 std::list<std::string> emptyList({});
89 BOOST_CHECK_EQUAL_COLLECTIONS(erasedLayerNamesObservable.begin(), erasedLayerNamesObservable.end(),
90 emptyList.begin(), emptyList.end());
93 BOOST_AUTO_TEST_SUITE_END()