blob: d510e580691235cb21644c511a61efb2754e0727 [file] [log] [blame]
Parker Schuh6691f192017-01-14 17:01:02 -08001#include "aos/vision/blob/codec.h"
2
3#include <algorithm>
Austin Schuh60e77942022-05-16 17:48:24 -07004
Parker Schuh6691f192017-01-14 17:01:02 -08005#include "gtest/gtest.h"
6
7namespace aos {
8namespace vision {
9
10TEST(CodecTest, WriteRead) {
11 BlobList blobl;
12 {
13 std::vector<std::vector<ImageRange>> ranges;
14 ranges.emplace_back(std::vector<ImageRange>{{10, 11}});
15 ranges.emplace_back(std::vector<ImageRange>{{15, 17}});
16 ranges.emplace_back(std::vector<ImageRange>{{19, 30}});
17 blobl.emplace_back(RangeImage(10, std::move(ranges)));
18 }
19
20 {
21 std::vector<std::vector<ImageRange>> ranges;
22 ranges.emplace_back(std::vector<ImageRange>{{18, 19}});
23 ranges.emplace_back(std::vector<ImageRange>{{12, 13}});
24 ranges.emplace_back(std::vector<ImageRange>{{12, 17}});
25 blobl.emplace_back(RangeImage(13, std::move(ranges)));
26 }
27
28 std::string out;
29 SerializeBlobTo(blobl, &out);
30 BlobList blobl2;
31 size_t real_len = ParseBlobList(&blobl2, out.data()) - out.data();
32 EXPECT_EQ(ShortDebugPrint(blobl), ShortDebugPrint(blobl2));
33
34 EXPECT_EQ(real_len, CalculateSize(blobl));
35}
36
37} // namespace vision
38} // namespace aos