forked from fsprojects/fantomas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStringTests.fs
120 lines (110 loc) · 3.1 KB
/
StringTests.fs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
module Fantomas.Tests.StringTests
open NUnit.Framework
open FsUnit
open Fantomas.CodeFormatter
open Fantomas.Tests.TestHelper
[<Test>]
let ``triple-quoted strings``() =
formatSourceString false "let xmlFragment2 = \"\"\"<book author=\"Milton, John\" title=\"Paradise Lost\">\"\"\"" config
|> should equal "let xmlFragment2 = \"\"\"<book author=\"Milton, John\" title=\"Paradise Lost\">\"\"\"
"
[<Test>]
let ``string literals``() =
formatSourceString false """
let xmlFragment1 = @"<book author=""Milton, John"" title=""Paradise Lost"">"
let str1 = "abc"
""" config
|> prepend newline
|> should equal """
let xmlFragment1 = @"<book author=""Milton, John"" title=""Paradise Lost"">"
let str1 = "abc"
"""
[<Test>]
let ``multiline strings``() =
formatSourceString false """
let alu =
"GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG\
GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA\
CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT\
ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\
GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\
AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\
AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"B
""" config
|> prepend newline
|> should equal """
let alu = "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG\
GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA\
CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT\
ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA\
GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG\
AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC\
AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"B
"""
[<Test>]
let ``preserve uncommon literals``() =
formatSourceString false """
let a = 0xFFy
let c = 0b0111101us
let d = 0o0777
let e = 1.40e10f
let f = 23.4M
let g = '\n'
""" config
|> prepend newline
|> should equal """
let a = 0xFFy
let c = 0b0111101us
let d = 0o0777
let e = 1.40e10f
let f = 23.4M
let g = '\n'
"""
[<Test>]
let ``should preserve triple-quote strings``() =
formatSourceString false "
type GetList() =
let switchvox_users_voicemail_getList_response = \"\"\"
</response>\"\"\"
let switchvox_users_voicemail_getList = \"\"\"
</request>\"\"\"
member self.X = switchvox_users_voicemail_getList_response
" config
|> prepend newline
|> should equal "
type GetList() =
let switchvox_users_voicemail_getList_response = \"\"\"
</response>\"\"\"
let switchvox_users_voicemail_getList = \"\"\"
</request>\"\"\"
member self.X = switchvox_users_voicemail_getList_response
"
[<Test>]
let ``should keep triple-quote strings``() =
formatSourceString false "
[<EntryPoint>]
let main argv =
use fun1 = R.eval(R.parse(text = \"\"\"
function(i) {
x <- rnorm(1000)
y <- rnorm(1000)
m <- lm(y~x)
m$coefficients[[2]]
}
\"\"\"))
0
" config
|> prepend newline
|> should equal "
[<EntryPoint>]
let main argv =
use fun1 = R.eval (R.parse (text = \"\"\"
function(i) {
x <- rnorm(1000)
y <- rnorm(1000)
m <- lm(y~x)
m$coefficients[[2]]
}
\"\"\"))
0
"