You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.1 KiB
34 lines
1.1 KiB
using Bit.Core.Utilities; |
|
using Xunit; |
|
|
|
#nullable enable |
|
|
|
namespace Bit.Core.Test.Utilities; |
|
|
|
public class SpanExtensionsTests |
|
{ |
|
[Theory] |
|
[InlineData(".", "", "")] |
|
[InlineData("T.T", "T", "T")] |
|
[InlineData("T.", "T", "")] |
|
[InlineData(".T", "", "T")] |
|
[InlineData("T.T.T", "T", "T.T")] |
|
public void TrySplitBy_CanSplit_Success(string fullString, string firstPart, string secondPart) |
|
{ |
|
var success = fullString.AsSpan().TrySplitBy('.', out var firstPartSpan, out var secondPartSpan); |
|
Assert.True(success); |
|
Assert.Equal(firstPart, firstPartSpan.ToString()); |
|
Assert.Equal(secondPart, secondPartSpan.ToString()); |
|
} |
|
|
|
[Theory] |
|
[InlineData("Test", '.')] |
|
[InlineData("Other test", 'S')] |
|
public void TrySplitBy_CanNotSplit_Success(string fullString, char splitChar) |
|
{ |
|
var success = fullString.AsSpan().TrySplitBy(splitChar, out var splitChunk, out var rest); |
|
Assert.False(success); |
|
Assert.True(splitChunk.IsEmpty); |
|
Assert.Equal(fullString, rest.ToString()); |
|
} |
|
}
|
|
|