@@ -92,6 +92,30 @@ final class ParserTests: XCTestCase {
9292 assertComponent ( components, 0 , input, . text)
9393 }
9494
95+ func testParseDoubleDollarOnly_LeadingLineBreak( ) {
96+ let equation = " \n f(x)=5x+2 "
97+ let input = " $$ \( equation) $$ "
98+ let components = Parser . parse ( input)
99+ XCTAssertEqual ( components. count, 1 )
100+ assertComponent ( components, 0 , equation, . texEquation)
101+ }
102+
103+ func testParseDoubleDollarOnly_TrailingLineBreak( ) {
104+ let equation = " f(x)=5x+2 \n "
105+ let input = " $$ \( equation) $$ "
106+ let components = Parser . parse ( input)
107+ XCTAssertEqual ( components. count, 1 )
108+ assertComponent ( components, 0 , equation, . texEquation)
109+ }
110+
111+ func testParseDoubleDollarOnly_Whitespace( ) {
112+ let equation = " \n f(x)=5x+2 \n "
113+ let input = " $$ \( equation) $$ "
114+ let components = Parser . parse ( input)
115+ XCTAssertEqual ( components. count, 1 )
116+ assertComponent ( components, 0 , equation, . texEquation)
117+ }
118+
95119 func testParseBracketsOnly( ) {
96120 let input = " \\ [ \\ TeX \\ ] "
97121 let components = Parser . parse ( input)
@@ -122,11 +146,28 @@ final class ParserTests: XCTestCase {
122146 assertComponent ( components, 0 , input, . text)
123147 }
124148
125- func testParseBracketsOnly_LineBreak( ) {
126- let input = " Hello, \\ [ \\ TeX \n \\ \\ ]! "
149+ func testParseBracketsOnly_LeadingLineBreak( ) {
150+ let equation = " \n \\ TeX "
151+ let input = " Hello, \\ [ \( equation) \\ ]! "
127152 let components = Parser . parse ( input)
128- XCTAssertEqual ( components. count, 1 )
129- assertComponent ( components, 0 , input, . text)
153+ XCTAssertEqual ( components. count, 3 )
154+ assertComponent ( components, 1 , equation, . blockEquation)
155+ }
156+
157+ func testParseBracketsOnly_TrailingLineBreak( ) {
158+ let equation = " \\ TeX \n "
159+ let input = " Hello, \\ [ \( equation) \\ ]! "
160+ let components = Parser . parse ( input)
161+ XCTAssertEqual ( components. count, 3 )
162+ assertComponent ( components, 1 , equation, . blockEquation)
163+ }
164+
165+ func testParseBracketsOnly_Whitespace( ) {
166+ let equation = " \n \\ TeX \n "
167+ let input = " Hello, \\ [ \( equation) \\ ]! "
168+ let components = Parser . parse ( input)
169+ XCTAssertEqual ( components. count, 3 )
170+ assertComponent ( components, 1 , equation, . blockEquation)
130171 }
131172
132173 func testParseBeginEndOnly( ) {
@@ -159,11 +200,28 @@ final class ParserTests: XCTestCase {
159200 assertComponent ( components, 0 , input, . text)
160201 }
161202
162- func testParseBeginEndOnly_LineBreak( ) {
163- let input = " Hello, \\ begin{equation} \\ TeX \n \\ \\ end{equation}! "
203+ func testParseBeginEndOnly_LeadingLineBreak( ) {
204+ let equation = " \n \\ TeX "
205+ let input = " Hello, \\ begin{equation} \( equation) \\ end{equation}! "
164206 let components = Parser . parse ( input)
165- XCTAssertEqual ( components. count, 1 )
166- assertComponent ( components, 0 , input, . text)
207+ XCTAssertEqual ( components. count, 3 )
208+ assertComponent ( components, 1 , equation, . namedEquation)
209+ }
210+
211+ func testParseBeginEndOnly_TrailingLineBreak( ) {
212+ let equation = " \\ TeX \n "
213+ let input = " Hello, \\ begin{equation} \( equation) \\ end{equation}! "
214+ let components = Parser . parse ( input)
215+ XCTAssertEqual ( components. count, 3 )
216+ assertComponent ( components, 1 , equation, . namedEquation)
217+ }
218+
219+ func testParseBeginEndOnly_Whitespace( ) {
220+ let equation = " \n \\ TeX \n "
221+ let input = " Hello, \\ begin{equation} \( equation) \\ end{equation}! "
222+ let components = Parser . parse ( input)
223+ XCTAssertEqual ( components. count, 3 )
224+ assertComponent ( components, 1 , equation, . namedEquation)
167225 }
168226
169227 func testParseBeginEndStarOnly( ) {
@@ -196,11 +254,28 @@ final class ParserTests: XCTestCase {
196254 assertComponent ( components, 0 , input, . text)
197255 }
198256
199- func testParseBeginEndStarOnly_LineBreak( ) {
200- let input = " Hello, \\ begin{equation*} \\ TeX \n \\ \\ end{equation*}! "
257+ func testParseBeginEndStarOnly_LeadingLineBreak( ) {
258+ let equation = " \n \\ TeX "
259+ let input = " Hello, \\ begin{equation*} \( equation) \\ end{equation*}! "
201260 let components = Parser . parse ( input)
202- XCTAssertEqual ( components. count, 1 )
203- assertComponent ( components, 0 , input, . text)
261+ XCTAssertEqual ( components. count, 3 )
262+ assertComponent ( components, 1 , equation, . namedNoNumberEquation)
263+ }
264+
265+ func testParseBeginEndStarOnly_TrailingLineBreak( ) {
266+ let equation = " \\ TeX \n "
267+ let input = " Hello, \\ begin{equation*} \( equation) \\ end{equation*}! "
268+ let components = Parser . parse ( input)
269+ XCTAssertEqual ( components. count, 3 )
270+ assertComponent ( components, 1 , equation, . namedNoNumberEquation)
271+ }
272+
273+ func testParseBeginEndStarOnly_Whitespace( ) {
274+ let equation = " \n \\ TeX \n "
275+ let input = " Hello, \\ begin{equation*} \( equation) \\ end{equation*}! "
276+ let components = Parser . parse ( input)
277+ XCTAssertEqual ( components. count, 3 )
278+ assertComponent ( components, 1 , equation, . namedNoNumberEquation)
204279 }
205280
206281}
0 commit comments