| 94 | } |
| 95 | |
| 96 | void comparePcdLasStreaming(const std::string& pcdFilename, |
| 97 | const std::string& lasFilename) |
| 98 | { |
| 99 | std::string tempname(Support::temppath("testlas.las")); |
| 100 | |
| 101 | FileUtils::deleteFile(tempname); |
| 102 | |
| 103 | PcdReader t; |
| 104 | Options to; |
| 105 | to.add("filename", pcdFilename); |
| 106 | t.setOptions(to); |
| 107 | |
| 108 | LasWriter w; |
| 109 | Options wo; |
| 110 | wo.add("filename", tempname); |
| 111 | w.setInput(t); |
| 112 | w.setOptions(wo); |
| 113 | |
| 114 | FixedPointTable in(1000); |
| 115 | w.prepare(in); |
| 116 | w.execute(in); |
| 117 | |
| 118 | LasReader l1; |
| 119 | Options l1o; |
| 120 | l1o.add("filename", lasFilename); |
| 121 | l1.setOptions(l1o); |
| 122 | |
| 123 | LasReader l2; |
| 124 | Options l2o; |
| 125 | l2o.add("filename", tempname); |
| 126 | l2.setOptions(l2o); |
| 127 | |
| 128 | PointTable t1; |
| 129 | l1.prepare(t1); |
| 130 | PointViewSet s1 = l1.execute(t1); |
| 131 | EXPECT_EQ(s1.size(), 1U); |
| 132 | PointViewPtr v1 = *s1.begin(); |
| 133 | |
| 134 | PointTable t2; |
| 135 | l2.prepare(t2); |
| 136 | PointViewSet s2 = l2.execute(t2); |
| 137 | EXPECT_EQ(s2.size(), 1U); |
| 138 | PointViewPtr v2 = *s2.begin(); |
| 139 | |
| 140 | EXPECT_EQ(v1->size(), v2->size()); |
| 141 | |
| 142 | // Validate some point data. |
| 143 | for (PointId i = 0; i < v1->size(); ++i) |
| 144 | { |
| 145 | EXPECT_DOUBLE_EQ(v1->getFieldAs<float>(Dimension::Id::X, i), |
| 146 | v2->getFieldAs<float>(Dimension::Id::X, i)); |
| 147 | EXPECT_DOUBLE_EQ(v1->getFieldAs<float>(Dimension::Id::Y, i), |
| 148 | v2->getFieldAs<float>(Dimension::Id::Y, i)); |
| 149 | EXPECT_DOUBLE_EQ(v1->getFieldAs<float>(Dimension::Id::Z, i), |
| 150 | v2->getFieldAs<float>(Dimension::Id::Z, i)); |
| 151 | } |
| 152 | } |
| 153 |
no test coverage detected