| 49 | { |
| 50 | |
| 51 | void compareArrowLasStreaming(const std::string& pcdFilename, |
| 52 | const std::string& lasFilename) |
| 53 | { |
| 54 | std::string tempname(Support::temppath("testlas.las")); |
| 55 | |
| 56 | FileUtils::deleteFile(tempname); |
| 57 | |
| 58 | ArrowReader t; |
| 59 | Options to; |
| 60 | to.add("filename", pcdFilename); |
| 61 | t.setOptions(to); |
| 62 | |
| 63 | LasWriter w; |
| 64 | Options wo; |
| 65 | wo.add("filename", tempname); |
| 66 | w.setInput(t); |
| 67 | w.setOptions(wo); |
| 68 | |
| 69 | FixedPointTable in(1000); |
| 70 | w.prepare(in); |
| 71 | w.execute(in); |
| 72 | |
| 73 | LasReader l1; |
| 74 | Options l1o; |
| 75 | l1o.add("filename", lasFilename); |
| 76 | l1.setOptions(l1o); |
| 77 | |
| 78 | LasReader l2; |
| 79 | Options l2o; |
| 80 | l2o.add("filename", tempname); |
| 81 | l2.setOptions(l2o); |
| 82 | |
| 83 | PointTable t1; |
| 84 | l1.prepare(t1); |
| 85 | PointViewSet s1 = l1.execute(t1); |
| 86 | EXPECT_EQ(s1.size(), 1U); |
| 87 | PointViewPtr v1 = *s1.begin(); |
| 88 | |
| 89 | PointTable t2; |
| 90 | l2.prepare(t2); |
| 91 | PointViewSet s2 = l2.execute(t2); |
| 92 | EXPECT_EQ(s2.size(), 1U); |
| 93 | PointViewPtr v2 = *s2.begin(); |
| 94 | |
| 95 | EXPECT_EQ(v1->size(), v2->size()); |
| 96 | |
| 97 | // Validate some point data. |
| 98 | for (PointId i = 0; i < v1->size(); ++i) |
| 99 | { |
| 100 | EXPECT_DOUBLE_EQ(v1->getFieldAs<float>(Dimension::Id::X, i), |
| 101 | v2->getFieldAs<float>(Dimension::Id::X, i)); |
| 102 | EXPECT_DOUBLE_EQ(v1->getFieldAs<float>(Dimension::Id::Y, i), |
| 103 | v2->getFieldAs<float>(Dimension::Id::Y, i)); |
| 104 | EXPECT_DOUBLE_EQ(v1->getFieldAs<float>(Dimension::Id::Z, i), |
| 105 | v2->getFieldAs<float>(Dimension::Id::Z, i)); |
| 106 | } |
| 107 | } |
| 108 |
no test coverage detected