Skip to content

Commit a4f5a93

Browse files
committed
Add XML comment
1 parent 7f40c74 commit a4f5a93

39 files changed

+141
-59
lines changed

Benchmarks/Benchmark.cs

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,64 +9,89 @@
99

1010

1111
namespace Benchmark {
12+
13+
/// <summary>
14+
/// Contains benchmarks for the StringExtension methods.
15+
/// </summary>
1216
[MemoryDiagnoser(false)]
1317
public class StringExtensionBenchmark {
14-
private readonly string input = "hello world!";
15-
private readonly char[] charactersToRemove = {'l', 'o'};
16-
private readonly string oldValue = "world";
17-
private readonly string newValue = "everyone";
1818

19+
private readonly string input = "hello world!";
20+
private readonly char[] charactersToRemove = { 'l', 'o' };
1921
private readonly string substring = "l";
20-
2122
private readonly string phoneNumber = "555-555-5555";
2223
private readonly string email = "john.doe@example.com";
2324

25+
/// <summary>
26+
/// Benchmark for the RemoveCharacters method.
27+
/// </summary>
2428
[Benchmark]
2529
public string RemoveCharacters() {
2630
return input.RemoveCharacters(charactersToRemove);
2731
}
2832

33+
/// <summary>
34+
/// Benchmark for the IsValidEmail method.
35+
/// </summary>
2936
[Benchmark]
3037
public bool IsValidEmail() {
3138
return email.IsValidEmail();
3239
}
3340

41+
/// <summary>
42+
/// Benchmark for the IsValidPhoneNumber method.
43+
/// </summary>
3444
[Benchmark]
3545
public bool IsValidPhoneNumber() {
36-
string phoneNumber = "555-555-5555";
3746
return phoneNumber.IsValidPhoneNumber();
3847
}
3948

49+
/// <summary>
50+
/// Benchmark for the CountSubstring method.
51+
/// </summary>
4052
[Benchmark]
4153
public int CountSubstring() {
4254
return input.CountSubstring(substring);
4355
}
4456

57+
/// <summary>
58+
/// Benchmark for the ReverseWords method.
59+
/// </summary>
4560
[Benchmark]
4661
public string ReverseWords() {
4762
return input.ReverseWords();
4863
}
4964

65+
/// <summary>
66+
/// Benchmark for the IsPalindrome method.
67+
/// </summary>
5068
[Benchmark]
5169
public bool IsPalindrome() {
52-
string palindrome = "racecar";
53-
return palindrome.IsPalindrome();
70+
return input.IsPalindrome();
5471
}
5572

73+
/// <summary>
74+
/// Benchmark for the CountLetters method.
75+
/// </summary>
5676
[Benchmark]
5777
public int CountLetters() {
5878
return input.CountLetters();
5979
}
6080

81+
/// <summary>
82+
/// Benchmark for the RemoveDuplicateCharacters method.
83+
/// </summary>
6184
[Benchmark]
6285
public string RemoveDuplicateCharacters() {
6386
return input.RemoveDuplicateCharacters();
6487
}
6588

89+
/// <summary>
90+
/// Benchmark for the ConvertToCamelCase method.
91+
/// </summary>
6692
[Benchmark]
6793
public string ConvertToCamelCase() {
68-
string text = "hello_world";
69-
return text.ToCamelCase();
94+
return input.ToCamelCase();
7095
}
7196
}
72-
}
97+
}

Benchmarks/bin/Debug/net7.0/BenchmarkDotNet.Artifacts/results/Benchmark.StringExtensionBenchmark-report-github.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ Intel Core i7-9750H CPU 2.60GHz, 1 CPU, 12 logical and 6 physical cores
88
99
1010
```
11-
| Method | Mean | Error | StdDev | Allocated |
12-
|-------------------------- |----------:|---------:|----------:|----------:|
13-
| RemoveCharacters | 305.79 ns | 5.967 ns | 8.168 ns | 328 B |
14-
| IsValidEmail | 79.97 ns | 1.640 ns | 4.625 ns | - |
15-
| IsValidPhoneNumber | 170.67 ns | 3.396 ns | 5.083 ns | - |
16-
| CountSubstring | 64.06 ns | 0.470 ns | 0.417 ns | 40 B |
17-
| ReverseWords | 44.00 ns | 0.954 ns | 1.949 ns | 152 B |
18-
| IsPalindrome | 416.24 ns | 8.134 ns | 16.245 ns | 536 B |
19-
| CountLetters | 104.75 ns | 0.732 ns | 0.612 ns | 32 B |
20-
| RemoveDuplicateCharacters | 253.15 ns | 3.618 ns | 3.021 ns | 624 B |
21-
| ConvertToCamelCase | 45.49 ns | 0.214 ns | 0.167 ns | 48 B |
11+
| Method | Mean | Error | StdDev | Allocated |
12+
|-------------------------- |----------:|----------:|----------:|----------:|
13+
| RemoveCharacters | 368.67 ns | 7.008 ns | 17.058 ns | 328 B |
14+
| IsValidEmail | 96.72 ns | 2.697 ns | 7.868 ns | - |
15+
| IsValidPhoneNumber | 191.88 ns | 3.883 ns | 10.758 ns | - |
16+
| CountSubstring | 63.27 ns | 1.306 ns | 1.603 ns | 40 B |
17+
| ReverseWords | 46.03 ns | 0.977 ns | 1.432 ns | 152 B |
18+
| IsPalindrome | 648.51 ns | 12.651 ns | 19.319 ns | 648 B |
19+
| CountLetters | 123.07 ns | 2.478 ns | 6.396 ns | 32 B |
20+
| RemoveDuplicateCharacters | 326.46 ns | 6.632 ns | 19.555 ns | 624 B |
21+
| ConvertToCamelCase | 65.63 ns | 1.386 ns | 1.753 ns | 48 B |
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
Method;Job;AnalyzeLaunchVariance;EvaluateOverhead;MaxAbsoluteError;MaxRelativeError;MinInvokeCount;MinIterationTime;OutlierMode;Affinity;EnvironmentVariables;Jit;LargeAddressAware;Platform;PowerPlanMode;Runtime;AllowVeryLargeObjects;Concurrent;CpuGroups;Force;HeapAffinitizeMask;HeapCount;NoAffinitize;RetainVm;Server;Arguments;BuildConfiguration;Clock;EngineFactory;NuGetReferences;Toolchain;IsMutator;InvocationCount;IterationCount;IterationTime;LaunchCount;MaxIterationCount;MaxWarmupIterationCount;MemoryRandomization;MinIterationCount;MinWarmupIterationCount;RunStrategy;UnrollFactor;WarmupCount;Mean;Error;StdDev;Allocated
2-
RemoveCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;305.79 ns;5.967 ns;8.168 ns;328 B
3-
IsValidEmail;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;79.97 ns;1.640 ns;4.625 ns;0 B
4-
IsValidPhoneNumber;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;170.67 ns;3.396 ns;5.083 ns;0 B
5-
CountSubstring;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;64.06 ns;0.470 ns;0.417 ns;40 B
6-
ReverseWords;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;44.00 ns;0.954 ns;1.949 ns;152 B
7-
IsPalindrome;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;416.24 ns;8.134 ns;16.245 ns;536 B
8-
CountLetters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;104.75 ns;0.732 ns;0.612 ns;32 B
9-
RemoveDuplicateCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;253.15 ns;3.618 ns;3.021 ns;624 B
10-
ConvertToCamelCase;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;45.49 ns;0.214 ns;0.167 ns;48 B
2+
RemoveCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;368.67 ns;7.008 ns;17.058 ns;328 B
3+
IsValidEmail;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;96.72 ns;2.697 ns;7.868 ns;0 B
4+
IsValidPhoneNumber;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;191.88 ns;3.883 ns;10.758 ns;0 B
5+
CountSubstring;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;63.27 ns;1.306 ns;1.603 ns;40 B
6+
ReverseWords;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;46.03 ns;0.977 ns;1.432 ns;152 B
7+
IsPalindrome;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;648.51 ns;12.651 ns;19.319 ns;648 B
8+
CountLetters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;123.07 ns;2.478 ns;6.396 ns;32 B
9+
RemoveDuplicateCharacters;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;326.46 ns;6.632 ns;19.555 ns;624 B
10+
ConvertToCamelCase;DefaultJob;False;Default;Default;Default;Default;Default;Default;111111111111;Empty;RyuJit;Default;X64;8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c;.NET 7.0;False;True;False;True;Default;Default;False;False;False;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;Default;16;Default;65.63 ns;1.386 ns;1.753 ns;48 B

Benchmarks/bin/Debug/net7.0/BenchmarkDotNet.Artifacts/results/Benchmark.StringExtensionBenchmark-report.html

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang='en'>
33
<head>
44
<meta charset='utf-8' />
5-
<title>Benchmark.StringExtensionBenchmark-20230816-155011</title>
5+
<title>Benchmark.StringExtensionBenchmark-20230820-043153</title>
66

77
<style type="text/css">
88
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
@@ -24,15 +24,15 @@
2424
<table>
2525
<thead><tr><th> Method</th><th>Mean</th><th>Error</th><th>StdDev</th><th>Allocated</th>
2626
</tr>
27-
</thead><tbody><tr><td>RemoveCharacters</td><td>305.79 ns</td><td>5.967 ns</td><td>8.168 ns</td><td>328 B</td>
28-
</tr><tr><td>IsValidEmail</td><td>79.97 ns</td><td>1.640 ns</td><td>4.625 ns</td><td>-</td>
29-
</tr><tr><td>IsValidPhoneNumber</td><td>170.67 ns</td><td>3.396 ns</td><td>5.083 ns</td><td>-</td>
30-
</tr><tr><td>CountSubstring</td><td>64.06 ns</td><td>0.470 ns</td><td>0.417 ns</td><td>40 B</td>
31-
</tr><tr><td>ReverseWords</td><td>44.00 ns</td><td>0.954 ns</td><td>1.949 ns</td><td>152 B</td>
32-
</tr><tr><td>IsPalindrome</td><td>416.24 ns</td><td>8.134 ns</td><td>16.245 ns</td><td>536 B</td>
33-
</tr><tr><td>CountLetters</td><td>104.75 ns</td><td>0.732 ns</td><td>0.612 ns</td><td>32 B</td>
34-
</tr><tr><td>RemoveDuplicateCharacters</td><td>253.15 ns</td><td>3.618 ns</td><td>3.021 ns</td><td>624 B</td>
35-
</tr><tr><td>ConvertToCamelCase</td><td>45.49 ns</td><td>0.214 ns</td><td>0.167 ns</td><td>48 B</td>
27+
</thead><tbody><tr><td>RemoveCharacters</td><td>368.67 ns</td><td>7.008 ns</td><td>17.058 ns</td><td>328 B</td>
28+
</tr><tr><td>IsValidEmail</td><td>96.72 ns</td><td>2.697 ns</td><td>7.868 ns</td><td>-</td>
29+
</tr><tr><td>IsValidPhoneNumber</td><td>191.88 ns</td><td>3.883 ns</td><td>10.758 ns</td><td>-</td>
30+
</tr><tr><td>CountSubstring</td><td>63.27 ns</td><td>1.306 ns</td><td>1.603 ns</td><td>40 B</td>
31+
</tr><tr><td>ReverseWords</td><td>46.03 ns</td><td>0.977 ns</td><td>1.432 ns</td><td>152 B</td>
32+
</tr><tr><td>IsPalindrome</td><td>648.51 ns</td><td>12.651 ns</td><td>19.319 ns</td><td>648 B</td>
33+
</tr><tr><td>CountLetters</td><td>123.07 ns</td><td>2.478 ns</td><td>6.396 ns</td><td>32 B</td>
34+
</tr><tr><td>RemoveDuplicateCharacters</td><td>326.46 ns</td><td>6.632 ns</td><td>19.555 ns</td><td>624 B</td>
35+
</tr><tr><td>ConvertToCamelCase</td><td>65.63 ns</td><td>1.386 ns</td><td>1.753 ns</td><td>48 B</td>
3636
</tr></tbody></table>
3737
</body>
3838
</html>
0 Bytes
Binary file not shown.
-80 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
4 Bytes
Binary file not shown.
-512 Bytes
Binary file not shown.
-24 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)