Skip to content

Commit f48f7bc

Browse files
committed
merge tests into valid and invalid input only
1 parent 241030e commit f48f7bc

1 file changed

Lines changed: 36 additions & 38 deletions

File tree

src/uu/date/src/date.rs

Lines changed: 36 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,71 +1249,69 @@ mod tests {
12491249
}
12501250

12511251
#[test]
1252-
fn test_parse_positional_12_digits() {
1252+
fn test_parse_positional_valid_inputs() {
1253+
// 12 digits: full date with 4-digit year
12531254
let result = parse_positional_set_datetime("010112002025", true).unwrap();
12541255
assert_eq!(result.year(), 2025);
12551256
assert_eq!(result.month(), 1);
12561257
assert_eq!(result.day(), 1);
12571258
assert_eq!(result.hour(), 12);
12581259
assert_eq!(result.minute(), 0);
12591260
assert_eq!(result.second(), 0);
1260-
}
12611261

1262-
#[test]
1263-
fn test_parse_positional_8_digits() {
1262+
// 8 digits: year defaults to current year
12641263
let result = parse_positional_set_datetime("01011200", true).unwrap();
12651264
let current_year = Timestamp::now().to_zoned(TimeZone::UTC).year();
12661265
assert_eq!(result.year(), current_year);
12671266
assert_eq!(result.month(), 1);
12681267
assert_eq!(result.day(), 1);
12691268
assert_eq!(result.hour(), 12);
12701269
assert_eq!(result.minute(), 0);
1271-
}
1272-
1273-
#[test]
1274-
fn test_parse_positional_10_digits_century_rule() {
1275-
// 25 -> 2025
1276-
let result = parse_positional_set_datetime("0101120025", true).unwrap();
1277-
assert_eq!(result.year(), 2025);
1278-
1279-
// 68 -> 2068 (boundary)
1280-
let result = parse_positional_set_datetime("0101120068", true).unwrap();
1281-
assert_eq!(result.year(), 2068);
12821270

1283-
// 69 -> 1969 (boundary)
1284-
let result = parse_positional_set_datetime("0101120069", true).unwrap();
1285-
assert_eq!(result.year(), 1969);
1286-
1287-
// 99 -> 1999
1288-
let result = parse_positional_set_datetime("0101120099", true).unwrap();
1289-
assert_eq!(result.year(), 1999);
1290-
}
1271+
// 10 digits: 2-digit year century rule (00-68 -> 20xx, 69-99 -> 19xx)
1272+
assert_eq!(
1273+
parse_positional_set_datetime("0101120025", true)
1274+
.unwrap()
1275+
.year(),
1276+
2025
1277+
);
1278+
assert_eq!(
1279+
parse_positional_set_datetime("0101120068", true)
1280+
.unwrap()
1281+
.year(),
1282+
2068
1283+
);
1284+
assert_eq!(
1285+
parse_positional_set_datetime("0101120069", true)
1286+
.unwrap()
1287+
.year(),
1288+
1969
1289+
);
1290+
assert_eq!(
1291+
parse_positional_set_datetime("0101120099", true)
1292+
.unwrap()
1293+
.year(),
1294+
1999
1295+
);
12911296

1292-
#[test]
1293-
fn test_parse_positional_with_seconds() {
1294-
// 12 digits + seconds
1297+
// Optional .ss seconds suffix on each length variant
12951298
let result = parse_positional_set_datetime("010112002025.45", true).unwrap();
12961299
assert_eq!(result.year(), 2025);
1297-
assert_eq!(result.hour(), 12);
12981300
assert_eq!(result.second(), 45);
1299-
1300-
// 10 digits + seconds
13011301
let result = parse_positional_set_datetime("0101120025.30", true).unwrap();
13021302
assert_eq!(result.year(), 2025);
13031303
assert_eq!(result.second(), 30);
1304-
1305-
// 8 digits + seconds
13061304
let result = parse_positional_set_datetime("01011200.59", true).unwrap();
13071305
assert_eq!(result.hour(), 12);
13081306
assert_eq!(result.second(), 59);
1307+
assert_eq!(
1308+
parse_positional_set_datetime("010112002025.00", true)
1309+
.unwrap()
1310+
.second(),
1311+
0
1312+
);
13091313

1310-
// Seconds boundary: .00
1311-
let result = parse_positional_set_datetime("010112002025.00", true).unwrap();
1312-
assert_eq!(result.second(), 0);
1313-
}
1314-
1315-
#[test]
1316-
fn test_parse_positional_local_timezone() {
1314+
// Local timezone (utc = false)
13171315
let result = parse_positional_set_datetime("010112002025", false).unwrap();
13181316
assert_eq!(result.year(), 2025);
13191317
assert_eq!(result.month(), 1);

0 commit comments

Comments
 (0)