/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/Core/CodeAnalysisTest/Text/SubTextTests.cs
52 строки
2 KB
Todd Grunke
Fix issue with when a CR/LF split occurs at a SubText's underlying span start (#80911)
30 окт 2025, 01:04
Не верифицирован
30 окт 2025, 01:04
62c2cf9
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using Microsoft.CodeAnalysis.Text; using Xunit; namespace Microsoft.CodeAnalysis.UnitTests.Text { public class SubTextTests { [Theory] [InlineData("abcdefghijkl")] [InlineData(["\r\r\r\r\r\r\r\r\r\r\r\r"])] [InlineData(["\n\n\n\n\n\n\n\n\n\n\n\n"])] [InlineData(["\r\n\r\n\r\n\r\n\r\n\r\n"])] [InlineData(["\n\r\n\r\n\r\n\r\n\r\n\r"])] [InlineData(["a\r\nb\r\nc\r\nd\r\n"])] [InlineData(["\ra\n\rb\n\rc\n\rd\n"])] [InlineData(["\na\r\nb\r\nc\r\nd\r"])] [InlineData(["ab\r\ncd\r\nef\r\n"])] [InlineData(["ab\r\r\ncd\r\r\nef"])] [InlineData(["ab\n\n\rcd\n\n\ref"])] [InlineData(["ab\u0085cdef\u2028ijkl\u2029op"])] [InlineData(["\u0085\u2028\u2029\u0085\u2028\u2029\u0085\u2028\u2029\u0085\u2028\u2029"])] public void SubTextTestAllPossibleSubstrings(string contents) { var fullStringText = SourceText.From(contents); for (var start = 0; start < contents.Length; start++) { for (var end = start + 1; end <= contents.Length; end++) { var stringText = SourceText.From(contents[start..end]); var subText = new SubText(fullStringText, new TextSpan(start, length: end - start)); Assert.Equal(stringText.Length, subText.Length); for (var i = 0; i < stringText.Length; i++) { Assert.Equal(stringText.Lines.IndexOf(i), subText.Lines.IndexOf(i)); } Assert.Equal(stringText.Lines.Count, subText.Lines.Count); for (var i = 0; i < stringText.Lines.Count; i++) { Assert.Equal(stringText.Lines[i].ToString(), subText.Lines[i].ToString()); Assert.Equal(stringText.Lines[i].EndIncludingLineBreak, subText.Lines[i].EndIncludingLineBreak); } } } } } }