From: Sergei Barannikov/Engineer/AI Tools Lab /SRR/Samsung Electronics Date: Thu, 17 Oct 2019 15:22:00 +0000 (+0300) Subject: [nnc] Fix ModelAnalyzer.linearization test (#8291) X-Git-Tag: submit/tizen/20191205.083104~714 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d701f917997154574c4410cf94c0568aa7f6bcde;p=platform%2Fcore%2Fml%2Fnnfw.git [nnc] Fix ModelAnalyzer.linearization test (#8291) The test relied on specific order of graph traversal. Signed-off-by: Sergei Barannikov --- diff --git a/compiler/nnc/unittests/soft_backend/ModelAnalyzer.cpp b/compiler/nnc/unittests/soft_backend/ModelAnalyzer.cpp index 9718a1e..0413011 100644 --- a/compiler/nnc/unittests/soft_backend/ModelAnalyzer.cpp +++ b/compiler/nnc/unittests/soft_backend/ModelAnalyzer.cpp @@ -57,7 +57,7 @@ TEST(ModelAnalyzer, linearization) Operation *head2 = g.create(input->getOutput(0)); Operation *tail1 = g.create(head1->getOutput(0)); Operation *tail2 = g.create(head2->getOutput(0)); - std::vector concat_inputs{tail1->getOutput(0), tail2->getOutput(0)}; + vector concat_inputs{tail1->getOutput(0), tail2->getOutput(0)}; Operation *join = g.create(concat_inputs, 0); input->getOutput(0)->setName("input"); head1->getOutput(0)->setName("head1"); @@ -71,11 +71,12 @@ TEST(ModelAnalyzer, linearization) ma.analyze(&g); const auto &seq = ma.getInferenceSequence(); ASSERT_EQ(seq.size(), 6u); - auto it = seq.begin(); - ASSERT_EQ(getCall(*(it++))->mirOp, input); - ASSERT_EQ(getCall(*(it++))->mirOp, head1); - ASSERT_EQ(getCall(*(it++))->mirOp, tail1); - ASSERT_EQ(getCall(*(it++))->mirOp, head2); - ASSERT_EQ(getCall(*(it++))->mirOp, tail2); - ASSERT_EQ(getCall(*(it++))->mirOp, join); + + vector op_seq(seq.size()); + transform(seq.cbegin(), seq.cend(), op_seq.begin(), + [](const unique_ptr &action) { return getCall(action)->mirOp; }); + + vector valid_seq1{input, head1, tail1, head2, tail2, join}; + vector valid_seq2{input, head2, tail2, head1, tail1, join}; + ASSERT_TRUE(op_seq == valid_seq1 || op_seq == valid_seq2); }