@@ -311,6 +311,32 @@ TEST_CASE("URI: Test REST components, invalid", "[uri]") {
311311 }
312312}
313313
314+ TEST_CASE (" URI: Test is_timestamped_name" , " [uri][is_timestamped_name]" ) {
315+ std::vector<std::pair<std::string, bool >> test_uris = {
316+ {" __1764100213547_1764100213550_035477e475b011ac8c2f01a13532ccad.vac" ,
317+ true },
318+ {" __1764100213547_1764100213550_035477e475b011ac8c2f01a13532ccad" , true },
319+ {" __1_1_035477e475b011ac8c2f01a13532ccad" , true },
320+ {" __1_1_035477e475b011ac8c2f01a13532ccad_22" , true },
321+ {" __1_1_035477e475b011ac8c2f01a13532ccad_22.vac" , true },
322+ {" __1_1_035477e475b011ac8c2f01a13532ccad_22.tmp" , false },
323+ {" __1_1_035477e475b011ac8c2f01a13532ccad.tmp" , false },
324+ {" __1_1_035477e475b011ac8c2f01a13532cca" , false },
325+ {" ___1_035477e475b011ac8c2f01a13532cca" , false },
326+ {" _1_1_035477e475b011ac8c2f01a13532ccad" , false },
327+ {" __1_1_035477e475b011ac8c2f01a13532ccad." , false },
328+ {" __1_1_035477e475b011a_c8c2f01a13532ccad." , false },
329+ {" " , false },
330+ {" ______" , false },
331+ {" __1_2_3" , false },
332+ };
333+ for (const auto & test : test_uris) {
334+ URI uri (test.first );
335+ CHECK (uri.is_timestamped_name () == test.second );
336+ INFO (test.first );
337+ }
338+ }
339+
314340TEST_CASE (" URI: Test get_fragment_name" , " [uri][get_fragment_name]" ) {
315341 std::vector<std::pair<URI, std::optional<URI>>> cases = {
316342 {URI (" a randomish string" ), std::nullopt },
0 commit comments