public void String() { const string TestString = "class Test { private string s1 = \" () test \"; }"; var startOfString = TestString.IndexOf('"'); var lengthOfStringIncludingQuotes = TestString.LastIndexOf('"') - startOfString + 1; AssertExtent( TestString, pos: startOfString, isSignificant: true, start: startOfString, length: 1 ); // Selects whitespace AssertExtent( TestString, pos: startOfString + 1, isSignificant: false, start: startOfString + 1, length: 1 ); AssertExtent( TestString, pos: startOfString + 2, isSignificant: true, start: startOfString + 2, length: 2 ); AssertExtent( TestString, pos: TestString.IndexOf(" \"", StringComparison.Ordinal), isSignificant: false, start: TestString.IndexOf(" \"", StringComparison.Ordinal), length: 2 ); AssertExtent( TestString, pos: TestString.LastIndexOf('"'), isSignificant: true, start: startOfString + lengthOfStringIncludingQuotes - 1, length: 1 ); AssertExtent( TestString, pos: TestString.LastIndexOf('"') + 1, isSignificant: true, start: TestString.LastIndexOf('"') + 1, length: 1 ); }
public void InterpolatedString1() { const string TestString = "class Test { string x = \"hello\"; string s = $\" { x } hello\"; }"; var startOfFirstString = TestString.IndexOf('"'); var endOfFirstString = TestString.IndexOf('"', startOfFirstString + 1); var startOfString = TestString.IndexOf("$\"", endOfFirstString + 1, StringComparison.Ordinal); var lengthOfStringIncludingQuotes = TestString.LastIndexOf('"') - startOfString + 1; // Selects interpolated string start token AssertExtent( TestString, pos: startOfString, isSignificant: true, start: startOfString, length: 2); // Selects whitespace AssertExtent( TestString, pos: startOfString + 2, isSignificant: false, start: startOfString + 2, length: 1); // Selects the opening curly brace AssertExtent( TestString, pos: startOfString + 3, isSignificant: true, start: startOfString + 3, length: 1); // Selects whitespace AssertExtent( TestString, pos: startOfString + 4, isSignificant: false, start: startOfString + 4, length: 1); // Selects identifier AssertExtent( TestString, pos: startOfString + 5, isSignificant: true, start: startOfString + 5, length: 1); // Selects whitespace AssertExtent( TestString, pos: startOfString + 6, isSignificant: false, start: startOfString + 6, length: 1); // Selects the closing curly brace AssertExtent( TestString, pos: startOfString + 7, isSignificant: true, start: startOfString + 7, length: 1); // Selects whitespace AssertExtent( TestString, pos: startOfString + 8, isSignificant: false, start: startOfString + 8, length: 1); // Selects hello AssertExtent( TestString, pos: startOfString + 9, isSignificant: true, start: startOfString + 9, length: 5); // Selects closing quote AssertExtent( TestString, pos: startOfString + 14, isSignificant: true, start: startOfString + 14, length: 1); }