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