Skip to content

Commit 315a04e

Browse files
committed
Add new tests for * and %% specifiers and update existing tests
1 parent b968b5d commit 315a04e

File tree

1 file changed

+56
-29
lines changed

1 file changed

+56
-29
lines changed

tests/service/EditorTests.fs

Lines changed: 56 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -385,30 +385,54 @@ let _ = List.map (sprintf @"%A
385385
let _ = (10, 12) ||> sprintf "%A
386386
%O"
387387
let _ = sprintf "\n%-8.1e+567" 1.0
388-
let _ = sprintf @"%O\n%-5s" "1" "2" """
388+
let _ = sprintf @"%O\n%-5s" "1" "2"
389+
let _ = sprintf "%%"
390+
let _ = sprintf " %*%" 2
391+
let _ = sprintf " %.*%" 2
392+
let _ = sprintf " %*.1%" 2
393+
let _ = sprintf " %*s" 10 "hello"
394+
let _ = sprintf " %*.*%" 2 3
395+
let _ = sprintf " %*.*f" 2 3 4.5
396+
let _ = sprintf " %.*f" 3 4.5
397+
let _ = sprintf " %*.1f" 3 4.5
398+
let _ = sprintf " %6.*f" 3 4.5
399+
let _ = sprintf " %6.*%" 3
400+
"""
389401

390402
let file = "/home/user/Test.fsx"
391403
let untyped, typeCheckResults = parseAndTypeCheckFileInProject(file, input)
392404

393405
typeCheckResults.Errors |> shouldEqual [||]
394406
typeCheckResults.GetFormatSpecifierLocations()
395-
|> Array.map (fun range -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn)
396-
|> shouldEqual [|(2, 45, 2, 46);
397-
(3, 23, 3, 24);
398-
(4, 38, 4, 39);
399-
(5, 29, 5, 30);
400-
(6, 17, 6, 19);
401-
(7, 17, 7, 21);
402-
(8, 17, 8, 22);
403-
(9, 18, 9, 21);
404-
(10, 18, 10, 20);
405-
(12, 12, 12, 14);
406-
(15, 12, 15, 14);
407-
(16, 28, 16, 29);
408-
(18, 30, 18, 31);
409-
(19, 30, 19, 31);
410-
(20, 19, 20, 24);
411-
(21, 18, 21, 19); (21, 22, 21, 25)|]
407+
|> Array.map (fun (range,numArgs) -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn, numArgs)
408+
|> shouldEqual [|(2, 45, 2, 46, 1);
409+
(3, 23, 3, 24, 1);
410+
(4, 38, 4, 39, 1);
411+
(5, 29, 5, 30, 1);
412+
(6, 17, 6, 19, 2);
413+
(7, 17, 7, 21, 1);
414+
(8, 17, 8, 22, 1);
415+
(9, 18, 9, 21, 1);
416+
(10, 18, 10, 20, 1);
417+
(12, 12, 12, 14, 1);
418+
(15, 12, 15, 14, 1);
419+
(16, 28, 16, 29, 1);
420+
(18, 30, 18, 31, 1);
421+
(19, 30, 19, 31, 1);
422+
(20, 19, 20, 24, 1);
423+
(21, 18, 21, 19, 1);
424+
(21, 22, 21, 25, 1);
425+
(22, 17, 22, 18, 0);
426+
(23, 18, 23, 20, 1);
427+
(24, 19, 24, 22, 1);
428+
(25, 20, 25, 24, 1);
429+
(26, 21, 26, 23, 2);
430+
(27, 22, 27, 26, 2);
431+
(28, 23, 28, 27, 3);
432+
(29, 24, 29, 27, 2);
433+
(30, 25, 30, 29, 2);
434+
(31, 26, 31, 30, 2);
435+
(32, 27, 32, 31, 1)|]
412436

413437
[<Test>]
414438
let ``Printf specifiers for triple-quote strings`` () =
@@ -427,11 +451,12 @@ let _ = List.iter(printfn \"\"\"%-A
427451

428452
typeCheckResults.Errors |> shouldEqual [||]
429453
typeCheckResults.GetFormatSpecifierLocations()
430-
|> Array.map (fun range -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn)
431-
|> shouldEqual [|(2, 19, 2, 21);
432-
(4, 12, 4, 14);
433-
(6, 29, 6, 31);
434-
(7, 29, 7, 30); (7, 33, 7, 34)|]
454+
|> Array.map (fun (range, numArgs) -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn, numArgs)
455+
|> shouldEqual [|(2, 19, 2, 21, 1);
456+
(4, 12, 4, 14, 1);
457+
(6, 29, 6, 31, 1);
458+
(7, 29, 7, 30, 1);
459+
(7, 33, 7, 34, 1)|]
435460

436461
[<Test>]
437462
let ``Printf specifiers for user-defined functions`` () =
@@ -447,24 +472,26 @@ let _ = debug "[LanguageService] Type checking fails for '%s' with content=%A an
447472

448473
typeCheckResults.Errors |> shouldEqual [||]
449474
typeCheckResults.GetFormatSpecifierLocations()
450-
|> Array.map (fun range -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn)
451-
|> shouldEqual [|(3, 24, 3, 25);
452-
(3, 29, 3, 30);
453-
(4, 58, 4, 59); (4, 75, 4, 76); (4, 82, 4, 83); (4, 108, 4, 109)|]
475+
|> Array.map (fun (range, numArgs) -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn, numArgs)
476+
|> shouldEqual [|(3, 24, 3, 25, 1);
477+
(3, 29, 3, 30, 1);
478+
(4, 58, 4, 59, 1);
479+
(4, 75, 4, 76, 1);
480+
(4, 82, 4, 83, 1);
481+
(4, 108, 4, 109, 1)|]
454482

455483
[<Test>]
456484
let ``should not report format specifiers for illformed format strings`` () =
457485
let input =
458486
"""
459487
let _ = sprintf "%.7f %7.1A %7.f %--8.1f"
460-
let _ = sprintf "%%A"
461488
let _ = sprintf "ABCDE"
462489
"""
463490

464491
let file = "/home/user/Test.fsx"
465492
let untyped, typeCheckResults = parseAndTypeCheckFileInProject(file, input)
466493
typeCheckResults.GetFormatSpecifierLocations()
467-
|> Array.map (fun range -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn)
494+
|> Array.map (fun (range, numArgs) -> range.StartLine, range.StartColumn, range.EndLine, range.EndColumn, numArgs)
468495
|> shouldEqual [||]
469496

470497
[<Test>]

0 commit comments

Comments
 (0)