TEST(LasWriterTest, metadata_options) { Options ops; Option metadataOp("metadata", ""); Options metadataOps; metadataOps.add("format", 4); metadataOps.add("software_id", "MySoftwareId"); metadataOps.add("system_id", "FORWARD"); metadataOps.add("minor_version", "forward"); metadataOp.setOptions(metadataOps); ops.add(metadataOp); ops.add("filename", Support::temppath("wontgetwritten")); LasWriter writer; writer.setOptions(ops); PointTable table; writer.prepare(table); MetadataNode m = writer.getMetadata(); m.add("minor_version", 56); uint8_t format = (uint8_t)LasTester::headerVal<unsigned>(writer, "format"); EXPECT_EQ(format, 4u); std::string softwareId = LasTester::headerVal<std::string>(writer, "software_id"); EXPECT_EQ(softwareId, "MySoftwareId"); std::string systemId = LasTester::headerVal<std::string>(writer, "system_id"); // Since the option specifies forward and there is not associated // metadata, the value should be the default. LasHeader header; EXPECT_EQ(systemId, header.getSystemIdentifier()); // In this case, we should have metadata to override the default. uint8_t minorVersion = (uint8_t)LasTester::headerVal<unsigned>(writer, "minor_version"); EXPECT_EQ(minorVersion, 56u); }