Loading SpiceQL/src/inventoryimpl.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ namespace SpiceQL { m_required_kernels.load(lsk_json); for (auto &[mission, kernels] : json_kernels.items()) { fmt::print("mission: {}\n", mission); SPDLOG_TRACE("MISSION: {}", mission); json sclk_json = getLatestKernels(config[mission].getRecursive("sclk")); SPDLOG_TRACE("{} SCLKs: {}", mission, sclk_json.dump(4)); Loading SpiceQL/src/query.cpp +20 −2 Original line number Diff line number Diff line Loading @@ -70,6 +70,14 @@ namespace SpiceQL { } } // Comparator function for kernel paths bool fileNameComp(string a, string b) { string fna = static_cast<fs::path>(a).filename(); string fnb = static_cast<fs::path>(b).filename(); int comp = fna.compare(fnb); SPDLOG_TRACE("Comparing {} and {}: {}", fna, fnb, comp); return comp < 0; } vector<string> getLatestKernel(vector<string> kernels) { if(kernels.empty()) { Loading @@ -88,17 +96,25 @@ namespace SpiceQL { } bool foundList = false; for (int i = 0; i < files.size(); i++) { const fs::path &firstVecElem = files[i][0]; string fileName = firstVecElem.filename(); string kernelName = k.filename(); SPDLOG_TRACE("filename: {}", fileName); SPDLOG_TRACE("kernel name: {}", kernelName); int findRes = fileName.find_first_of("0123456789"); if (findRes != string::npos) { fileName = fileName.erase(findRes); } findRes = kernelName.find_first_of("0123456789"); if (findRes != string::npos) { kernelName = kernelName.erase(findRes); } SPDLOG_TRACE("Truncated filename: {}", fileName); SPDLOG_TRACE("Truncated kernel name: {}", kernelName); if (fileName == kernelName) { files[i].push_back(k); foundList = true; Loading @@ -112,7 +128,7 @@ namespace SpiceQL { vector<string> outKernels = {}; for (auto kernelList : files) { outKernels.push_back(*(max_element(kernelList.begin(), kernelList.end()))); outKernels.push_back(*(max_element(kernelList.begin(), kernelList.end(), fileNameComp))); } return outKernels; Loading @@ -120,11 +136,13 @@ namespace SpiceQL { json getLatestKernels(json kernels) { SPDLOG_TRACE("Looking for kernels to get Latest: {}", kernels.dump(2)); vector<json::json_pointer> kptrs = findKeyInJson(kernels, "kernels", true); vector<vector<string>> lastest; for (json::json_pointer &ptr : kptrs) { SPDLOG_TRACE("Getting Latest Kernels from: {}", ptr.to_string()); SPDLOG_TRACE("JSON: {}", kernels[ptr]); vector<vector<string>> kvect = json2DArrayTo2DVector(kernels[ptr]); vector<vector<string>> newLatest; Loading SpiceQL/tests/QueryTests.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,27 @@ TEST(QueryTests, UnitTestGetLatestKernel) { EXPECT_EQ(getLatestKernel(kernels)[0], "test/iak.0004.ti"); } TEST(QueryTests, UnitTestGetLatestKernelDuplicateFileNames) { vector<string> kernels = { "/base/kernels/spk/mar080.bsp", "/base/kernels/spk/mar097.bsp", "/mro/kernels/spk/mar063.bsp", "/odyssey/kernels/spk/mar063.bsp", "/tgo/kernels/spk/mar085.bsp", "/tgo/kernels/spk/mar097.bsp", "/tgo/kernels/tspk/mar085.bsp", "/tgo/kernels/tspk/mar097.bsp", "/viking1/kernels/spk/mar033.bsp", "/viking2/kernels/spk/mar033.bsp", "/base/kernels/spk/mar097.bsp" }; // which one doesn't matter, as long as we get mar097.bsp EXPECT_EQ(static_cast<fs::path>(getLatestKernel(kernels)[0]).filename(), "mar097.bsp"); } TEST(QueryTests, getKernelStringValue){ unique_ptr<Kernel> k(new Kernel("data/msgr_mdis_v010.ti")); // INS-236810_CCD_CENTER = ( 511.5, 511.5 ) Loading Loading
SpiceQL/src/inventoryimpl.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ namespace SpiceQL { m_required_kernels.load(lsk_json); for (auto &[mission, kernels] : json_kernels.items()) { fmt::print("mission: {}\n", mission); SPDLOG_TRACE("MISSION: {}", mission); json sclk_json = getLatestKernels(config[mission].getRecursive("sclk")); SPDLOG_TRACE("{} SCLKs: {}", mission, sclk_json.dump(4)); Loading
SpiceQL/src/query.cpp +20 −2 Original line number Diff line number Diff line Loading @@ -70,6 +70,14 @@ namespace SpiceQL { } } // Comparator function for kernel paths bool fileNameComp(string a, string b) { string fna = static_cast<fs::path>(a).filename(); string fnb = static_cast<fs::path>(b).filename(); int comp = fna.compare(fnb); SPDLOG_TRACE("Comparing {} and {}: {}", fna, fnb, comp); return comp < 0; } vector<string> getLatestKernel(vector<string> kernels) { if(kernels.empty()) { Loading @@ -88,17 +96,25 @@ namespace SpiceQL { } bool foundList = false; for (int i = 0; i < files.size(); i++) { const fs::path &firstVecElem = files[i][0]; string fileName = firstVecElem.filename(); string kernelName = k.filename(); SPDLOG_TRACE("filename: {}", fileName); SPDLOG_TRACE("kernel name: {}", kernelName); int findRes = fileName.find_first_of("0123456789"); if (findRes != string::npos) { fileName = fileName.erase(findRes); } findRes = kernelName.find_first_of("0123456789"); if (findRes != string::npos) { kernelName = kernelName.erase(findRes); } SPDLOG_TRACE("Truncated filename: {}", fileName); SPDLOG_TRACE("Truncated kernel name: {}", kernelName); if (fileName == kernelName) { files[i].push_back(k); foundList = true; Loading @@ -112,7 +128,7 @@ namespace SpiceQL { vector<string> outKernels = {}; for (auto kernelList : files) { outKernels.push_back(*(max_element(kernelList.begin(), kernelList.end()))); outKernels.push_back(*(max_element(kernelList.begin(), kernelList.end(), fileNameComp))); } return outKernels; Loading @@ -120,11 +136,13 @@ namespace SpiceQL { json getLatestKernels(json kernels) { SPDLOG_TRACE("Looking for kernels to get Latest: {}", kernels.dump(2)); vector<json::json_pointer> kptrs = findKeyInJson(kernels, "kernels", true); vector<vector<string>> lastest; for (json::json_pointer &ptr : kptrs) { SPDLOG_TRACE("Getting Latest Kernels from: {}", ptr.to_string()); SPDLOG_TRACE("JSON: {}", kernels[ptr]); vector<vector<string>> kvect = json2DArrayTo2DVector(kernels[ptr]); vector<vector<string>> newLatest; Loading
SpiceQL/tests/QueryTests.cpp +21 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,27 @@ TEST(QueryTests, UnitTestGetLatestKernel) { EXPECT_EQ(getLatestKernel(kernels)[0], "test/iak.0004.ti"); } TEST(QueryTests, UnitTestGetLatestKernelDuplicateFileNames) { vector<string> kernels = { "/base/kernels/spk/mar080.bsp", "/base/kernels/spk/mar097.bsp", "/mro/kernels/spk/mar063.bsp", "/odyssey/kernels/spk/mar063.bsp", "/tgo/kernels/spk/mar085.bsp", "/tgo/kernels/spk/mar097.bsp", "/tgo/kernels/tspk/mar085.bsp", "/tgo/kernels/tspk/mar097.bsp", "/viking1/kernels/spk/mar033.bsp", "/viking2/kernels/spk/mar033.bsp", "/base/kernels/spk/mar097.bsp" }; // which one doesn't matter, as long as we get mar097.bsp EXPECT_EQ(static_cast<fs::path>(getLatestKernel(kernels)[0]).filename(), "mar097.bsp"); } TEST(QueryTests, getKernelStringValue){ unique_ptr<Kernel> k(new Kernel("data/msgr_mdis_v010.ti")); // INS-236810_CCD_CENTER = ( 511.5, 511.5 ) Loading