Skip to content
74 changes: 0 additions & 74 deletions src/libraries/Common/tests/Tests/System/StringTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6167,7 +6167,6 @@ public static void Trim(string s, char[] trimChars, string expected)
}

Assert.Equal(expected, s.Trim(trimChars));
Assert.Equal(expected, s.Trim((ReadOnlySpan<char>)trimChars));
Assert.Equal(expected, s.AsSpan().Trim(trimChars).ToString());
}

Expand Down Expand Up @@ -6198,7 +6197,6 @@ public static void TrimEnd(string s, char[] trimChars, string expected)
}

Assert.Equal(expected, s.TrimEnd(trimChars));
Assert.Equal(expected, s.TrimEnd((ReadOnlySpan<char>)trimChars));
Assert.Equal(expected, s.AsSpan().TrimEnd(trimChars).ToString());
}

Expand Down Expand Up @@ -6229,7 +6227,6 @@ public static void TrimStart(string s, char[] trimChars, string expected)
}

Assert.Equal(expected, s.TrimStart(trimChars));
Assert.Equal(expected, s.TrimStart((ReadOnlySpan<char>)trimChars));
Assert.Equal(expected, s.AsSpan().TrimStart(trimChars).ToString());
}

Expand Down Expand Up @@ -6460,27 +6457,18 @@ public static void ZeroLengthTrimCharacters()
Assert.True(s1.SequenceEqual(s1.Trim(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimStart(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimEnd(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)trimCharsString)));

char[] chars = { 'a', 'b', 'c', 'd', 'e' };
trimCharsString = chars;
Assert.True(s1.SequenceEqual(s1.Trim(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimStart(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimEnd(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)trimCharsString)));

string emptyString = string.Empty;
char[] trimCharsArrayFromString = "abcde".ToCharArray();
Assert.True(emptyString.SequenceEqual(emptyString.Trim(trimCharsArrayFromString)));
Assert.True(emptyString.SequenceEqual(emptyString.TrimStart(trimCharsArrayFromString)));
Assert.True(emptyString.SequenceEqual(emptyString.TrimEnd(trimCharsArrayFromString)));
Assert.True(emptyString.SequenceEqual(emptyString.Trim((ReadOnlySpan<char>)trimCharsArrayFromString)));
Assert.True(emptyString.SequenceEqual(emptyString.TrimStart((ReadOnlySpan<char>)trimCharsArrayFromString)));
Assert.True(emptyString.SequenceEqual(emptyString.TrimEnd((ReadOnlySpan<char>)trimCharsArrayFromString)));

ReadOnlySpan<char> span = s1.AsSpan();
ReadOnlySpan<char> trimChars = trimCharsString.AsSpan();
Expand Down Expand Up @@ -6516,9 +6504,6 @@ public static void NoTrimCharacters()
Assert.True(s1.SequenceEqual(s1.Trim(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimStart(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimEnd(trimCharsString)));
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)trimCharsString)));
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)trimCharsString)));

ReadOnlySpan<char> span = s1.AsSpan();
Assert.True(span.SequenceEqual(span.Trim(trimChars)));
Expand All @@ -6538,9 +6523,6 @@ public static void NoTrimCharacters()
Assert.True(s2.SequenceEqual(s2.Trim(chars)));
Assert.True(s2.SequenceEqual(s2.TrimStart(chars)));
Assert.True(s2.SequenceEqual(s2.TrimEnd(chars)));
Assert.True(s2.SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
Assert.True(s2.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> span = s2.AsSpan();
Assert.True(span.SequenceEqual(span.Trim(chars)));
Expand All @@ -6553,9 +6535,6 @@ public static void NoTrimCharacters()
Assert.True(s3.SequenceEqual(s3.Trim(trimCharsFromString)));
Assert.True(s3.SequenceEqual(s3.TrimStart(trimCharsFromString)));
Assert.True(s3.SequenceEqual(s3.TrimEnd(trimCharsFromString)));
Assert.True(s3.SequenceEqual(s3.Trim((ReadOnlySpan<char>)trimCharsFromString)));
Assert.True(s3.SequenceEqual(s3.TrimStart((ReadOnlySpan<char>)trimCharsFromString)));
Assert.True(s3.SequenceEqual(s3.TrimEnd((ReadOnlySpan<char>)trimCharsFromString)));

ReadOnlySpan<char> stringSpan = s3.AsSpan();
ReadOnlySpan<char> trimCharsFromStringSpan = trimCharsFromString.AsSpan();
Expand All @@ -6580,9 +6559,6 @@ public static void OnlyTrimCharacters()
Assert.True(string.Empty.SequenceEqual(s1.Trim(chars)), "G: " + length);
Assert.True(string.Empty.SequenceEqual(s1.TrimStart(chars)), "H: " + length);
Assert.True(string.Empty.SequenceEqual(s1.TrimEnd(chars)), "I: " + length);
Assert.True(string.Empty.SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)), "G: " + length);
Assert.True(string.Empty.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)), "H: " + length);
Assert.True(string.Empty.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)), "I: " + length);

ReadOnlySpan<char> span = s1.AsSpan();
Assert.True(ReadOnlySpan<char>.Empty.SequenceEqual(span.Trim(chars)), "G: " + length);
Expand All @@ -6595,9 +6571,6 @@ public static void OnlyTrimCharacters()
Assert.True(string.Empty.SequenceEqual(s2.Trim(trimCharsString)), "J");
Assert.True(string.Empty.SequenceEqual(s2.TrimStart(trimCharsString)), "K");
Assert.True(string.Empty.SequenceEqual(s2.TrimEnd(trimCharsString)), "L");
Assert.True(string.Empty.SequenceEqual(s2.Trim((ReadOnlySpan<char>)trimCharsString)), "J");
Assert.True(string.Empty.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)trimCharsString)), "K");
Assert.True(string.Empty.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)trimCharsString)), "L");

ReadOnlySpan<char> stringSpan = s2.AsSpan();
ReadOnlySpan<char> trimChars = trimCharsString.AsSpan();
Expand All @@ -6622,9 +6595,6 @@ public static void TrimCharactersAtStart()
Assert.True(s1.Substring(1).SequenceEqual(s1.Trim(chars)), "A: " + length);
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart(chars)), "B: " + length);
Assert.True(s1.SequenceEqual(s1.TrimEnd(chars)), "C: " + length);
Assert.True(s1.Substring(1).SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)), "A: " + length);
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)), "B: " + length);
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)), "C: " + length);

ReadOnlySpan<char> span = s1.AsSpan();
Assert.True(span.Slice(1).SequenceEqual(span.Trim(chars)), "A: " + length);
Expand All @@ -6637,9 +6607,6 @@ public static void TrimCharactersAtStart()
Assert.True(s2.Substring(3).SequenceEqual(s2.Trim(trimCharsString)), "D");
Assert.True(s2.Substring(3).SequenceEqual(s2.TrimStart(trimCharsString)), "E");
Assert.True(s2.SequenceEqual(s2.TrimEnd(trimCharsString)), "F");
Assert.True(s2.Substring(3).SequenceEqual(s2.Trim((ReadOnlySpan<char>)trimCharsString)), "D");
Assert.True(s2.Substring(3).SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)trimCharsString)), "E");
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)trimCharsString)), "F");

ReadOnlySpan<char> stringSpan = s2.AsSpan();
ReadOnlySpan<char> trimChars = trimCharsString.AsSpan();
Expand All @@ -6665,9 +6632,6 @@ public static void TrimCharactersAtEnd()
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.Trim(chars)));
Assert.True(s1.SequenceEqual(s1.TrimStart(chars)));
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd(chars)));
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)));
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> span = new ReadOnlySpan<char>(a);
Assert.True(span.Slice(0, length - 1).SequenceEqual(span.Trim(chars)));
Expand Down Expand Up @@ -6705,9 +6669,6 @@ public static void TrimCharactersAtStartAndEnd()
Assert.True(s1.Substring(1, length - 2).SequenceEqual(s1.Trim(chars)));
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart(chars)));
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd(chars)));
Assert.True(s1.Substring(1, length - 2).SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)));
Assert.True(s1.Substring(1).SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(s1.Substring(0, length - 1).SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> span = s1.AsSpan();
Assert.True(span.Slice(1, length - 2).SequenceEqual(span.Trim(chars)));
Expand All @@ -6719,9 +6680,6 @@ public static void TrimCharactersAtStartAndEnd()
Assert.True(s2.Substring(5, 5).SequenceEqual(s2.Trim(chars)));
Assert.True(s2.Substring(5).SequenceEqual(s2.TrimStart(chars)));
Assert.True(s2.Substring(0, 10).SequenceEqual(s2.TrimEnd(chars)));
Assert.True(s2.Substring(5, 5).SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
Assert.True(s2.Substring(5).SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(s2.Substring(0, 10).SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> stringSpan = s2.AsSpan();
ReadOnlySpan<char> trimChars = chars.AsSpan();
Expand All @@ -6747,9 +6705,6 @@ public static void TrimCharactersInMiddle()
Assert.True(s1.SequenceEqual(s1.Trim(chars)));
Assert.True(s1.SequenceEqual(s1.TrimStart(chars)));
Assert.True(s1.SequenceEqual(s1.TrimEnd(chars)));
Assert.True(s1.SequenceEqual(s1.Trim((ReadOnlySpan<char>)chars)));
Assert.True(s1.SequenceEqual(s1.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(s1.SequenceEqual(s1.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> span = s1.AsSpan();
Assert.True(span.SequenceEqual(span.Trim(chars)));
Expand All @@ -6761,9 +6716,6 @@ public static void TrimCharactersInMiddle()
Assert.True(s2.SequenceEqual(s2.Trim(chars)));
Assert.True(s2.SequenceEqual(s2.TrimStart(chars)));
Assert.True(s2.SequenceEqual(s2.TrimEnd(chars)));
Assert.True(s2.SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
Assert.True(s2.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> stringSpan = s2.AsSpan();
ReadOnlySpan<char> trimChars = chars.AsSpan();
Expand Down Expand Up @@ -6799,19 +6751,6 @@ public static void TrimCharactersMultipleTimes()
Assert.True(trimStartResultString.SequenceEqual(trimStartResultString.TrimStart(chars)));
Assert.True(trimEndResultString.SequenceEqual(trimEndResultString.TrimEnd(chars)));

s1 = new string(a);
trimResultString = s1.Trim((ReadOnlySpan<char>)chars);
trimStartResultString = s1.TrimStart((ReadOnlySpan<char>)chars);
trimEndResultString = s1.TrimEnd((ReadOnlySpan<char>)chars);
Assert.True(s1.Substring(1, length - 2).SequenceEqual(trimResultString));
Assert.True(s1.Substring(1).SequenceEqual(trimStartResultString));
Assert.True(s1.Substring(0, length - 1).SequenceEqual(trimEndResultString));

// 2nd attempt should do nothing
Assert.True(trimResultString.SequenceEqual(trimResultString.Trim((ReadOnlySpan<char>)chars)));
Assert.True(trimStartResultString.SequenceEqual(trimStartResultString.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(trimEndResultString.SequenceEqual(trimEndResultString.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> span = s1.AsSpan();
ReadOnlySpan<char> trimResult = span.Trim(chars);
ReadOnlySpan<char> trimStartResult = span.TrimStart(chars);
Expand Down Expand Up @@ -6840,18 +6779,10 @@ public static void TrimCharactersMultipleTimes()
Assert.True(trimEndStringResultString.SequenceEqual(trimEndStringResultString.TrimEnd(chars)));

s2 = "ccedafffffbdaa";
trimStringResultString = s2.Trim((ReadOnlySpan<char>)chars);
trimStartStringResultString = s2.TrimStart((ReadOnlySpan<char>)chars);
trimEndStringResultString = s2.TrimEnd((ReadOnlySpan<char>)chars);
Assert.True(s2.Substring(5, 5).SequenceEqual(trimStringResultString));
Assert.True(s2.Substring(5).SequenceEqual(trimStartStringResultString));
Assert.True(s2.Substring(0, 10).SequenceEqual(trimEndStringResultString));

// 2nd attempt should do nothing
Assert.True(trimStringResultString.SequenceEqual(trimStringResultString.Trim((ReadOnlySpan<char>)chars)));
Assert.True(trimStartStringResultString.SequenceEqual(trimStartStringResultString.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(trimEndStringResultString.SequenceEqual(trimEndStringResultString.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> stringSpan = s2.AsSpan();
ReadOnlySpan<char> trimChars = chars.AsSpan();

Expand Down Expand Up @@ -6897,11 +6828,6 @@ public static void MakeSureNoTrimCharactersChecksGoOutOfRange()
Assert.True(s2.SequenceEqual(s2.TrimStart(chars)));
Assert.True(s2.SequenceEqual(s2.TrimEnd(chars)));

s2 = testString.Substring(1, testString.Length - 2);
Assert.True(s2.SequenceEqual(s2.Trim((ReadOnlySpan<char>)chars)));
Assert.True(s2.SequenceEqual(s2.TrimStart((ReadOnlySpan<char>)chars)));
Assert.True(s2.SequenceEqual(s2.TrimEnd((ReadOnlySpan<char>)chars)));

ReadOnlySpan<char> stringSpan = s2.AsSpan();
ReadOnlySpan<char> trimChars = chars.AsSpan();
Assert.True(stringSpan.SequenceEqual(stringSpan.Trim(trimChars)));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,16 @@
<DiagnosticId>CP0002</DiagnosticId>
<Target>F:System.Resources.ResourceSet.Reader</Target>
</Suppression>
</Suppressions>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:System.String.Trim(System.ReadOnlySpan{System.Char})</Target>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:System.String.TrimEnd(System.ReadOnlySpan{System.Char})</Target>
</Suppression>
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:System.String.TrimStart(System.ReadOnlySpan{System.Char})</Target>
</Suppression>
</Suppressions>
3 changes: 0 additions & 3 deletions src/libraries/System.Runtime/ref/System.Runtime.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5779,15 +5779,12 @@ public void CopyTo(System.Span<char> destination) { }
public string Trim() { throw null; }
public string Trim(char trimChar) { throw null; }
public string Trim(params char[]? trimChars) { throw null; }
public string Trim(params System.ReadOnlySpan<char> trimChars) { throw null; }
public string TrimEnd() { throw null; }
public string TrimEnd(char trimChar) { throw null; }
public string TrimEnd(params char[]? trimChars) { throw null; }
public string TrimEnd(params System.ReadOnlySpan<char> trimChars) { throw null; }
public string TrimStart() { throw null; }
public string TrimStart(char trimChar) { throw null; }
public string TrimStart(params char[]? trimChars) { throw null; }
public string TrimStart(params System.ReadOnlySpan<char> trimChars) { throw null; }
public bool TryCopyTo(System.Span<char> destination) { throw null; }
}
public abstract partial class StringComparer : System.Collections.Generic.IComparer<string?>, System.Collections.Generic.IEqualityComparer<string?>, System.Collections.IComparer, System.Collections.IEqualityComparer
Expand Down
Loading