MCPcopy Create free account
hub / github.com/Samsung/ONE / TEST

Function TEST

compiler/circle-mpqsolver/src/pattern/PatternResolver.test.cpp:136–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134} // namespace
135
136TEST(LayerNormPatternResolverTest, resolve_pattern)
137{
138 auto m = luci::make_module();
139 LayerNormTestGraph g;
140 g.init();
141 g.transfer_to(m.get());
142
143 std::map<luci::CircleNode *, LayerParam> params;
144 mpqsolver::pattern::Q8LayerNormWithQ16VarianceResolver resolver;
145 EXPECT_NO_THROW({ params = resolver.resolve(m.get()); });
146
147 std::set<luci::CircleNode *> q16_nodes = {g.sub_squared, g.mean_as_variance, g.add_eps, g.rsqrt};
148 std::set<luci::CircleNode *> q8_nodes = {g.mean_of_ifm, g.sub, g.mul};
149
150 // params of all valid layers are set
151 EXPECT_EQ(params.size(), q16_nodes.size() + q8_nodes.size());
152
153 for (auto param : params)
154 {
155 // params of all layers are set as prescribed
156 if (q16_nodes.find(param.first) != q16_nodes.end())
157 {
158 EXPECT_STREQ(param.second.dtype.c_str(), "int16");
159 }
160 else if (q8_nodes.find(param.first) != q8_nodes.end())
161 {
162 EXPECT_STREQ(param.second.dtype.c_str(), "uint8");
163 }
164 }
165}
166
167TEST(LayerNormPatternResolverTest, resolve_pattern_NEG)
168{

Callers

nothing calls this directly

Calls 9

make_moduleFunction · 0.85
initMethod · 0.45
transfer_toMethod · 0.45
getMethod · 0.45
resolveMethod · 0.45
sizeMethod · 0.45
findMethod · 0.45
endMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected