Skip to content

Commit aef66f7

Browse files
author
Gonzalo Diaz
committed
[REFACTOR] Change {List-type property} to be read-only by removing the property setter (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca2227)
1 parent 4ac7c51 commit aef66f7

File tree

13 files changed

+298
-106
lines changed

13 files changed

+298
-106
lines changed

src/algorithm_exercises_csharp/hackerrank/warmup/SimpleArraySum.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ namespace algorithm_exercises_csharp.hackerrank.warmup;
44

55
public static class SimpleArraySum
66
{
7-
public static int simpleArraySum(int[] inputs)
7+
public static int simpleArraySum(List<int> ar)
88
{
9-
ArgumentNullException.ThrowIfNull(inputs);
9+
ArgumentNullException.ThrowIfNull(ar);
1010

1111
var total = 0;
1212

13-
foreach (int i in inputs)
13+
foreach (int i in ar)
1414
{
1515
total += i;
1616
}

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/arrays/CrushBruteForce.Test.cs

+23-7
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,28 @@ namespace algorithm_exercises_csharp_test.hackerrank.interview_preparation_kit.a
55
[TestClass]
66
public class CrushBruteForceTest
77
{
8-
public class CrushBruteForceTestCase
8+
public class CrushBruteForceTestCase(string title, List<List<int>> queries, int n, long expected)
99
{
10-
public string title { get; set; } = default!;
11-
public List<List<int>> queries { get; set; } = default!;
12-
public int n { get; set; } = default!;
13-
public long expected { get; set; } = default!;
10+
private string title = title;
11+
private List<List<int>> queries = queries;
12+
private int n = n;
13+
private long expected = expected;
14+
public string Title
15+
{
16+
get { return title; }
17+
}
18+
public List<List<int>> Queries
19+
{
20+
get { return queries; }
21+
}
22+
public int N
23+
{
24+
get { return n; }
25+
}
26+
public long Expected
27+
{
28+
get { return expected; }
29+
}
1430
}
1531

1632
private List<CrushBruteForceTestCase> testCases { get; set; } = default!;
@@ -30,8 +46,8 @@ public void testArrayManipulation()
3046

3147
foreach (CrushBruteForceTestCase test in testCases)
3248
{
33-
result = CrushBruteForce.arrayManipulation(test.n, test.queries);
34-
Assert.AreEqual(test.expected, result);
49+
result = CrushBruteForce.arrayManipulation(test.N, test.Queries);
50+
Assert.AreEqual(test.Expected, result);
3551
}
3652
}
3753
}

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/arrays/CrushOptimized.Test.cs

+23-7
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,28 @@ namespace algorithm_exercises_csharp_test.hackerrank.interview_preparation_kit.a
55
[TestClass]
66
public class CrushOptimizedTest
77
{
8-
public class CrushOptimizedTestCase
8+
public class CrushOptimizedTestCase(string title, List<List<int>> queries, int n, long expected)
99
{
10-
public string title { get; set; } = default!;
11-
public List<List<int>> queries { get; set; } = default!;
12-
public int n { get; set; } = default!;
13-
public long expected { get; set; } = default!;
10+
private string title = title;
11+
private List<List<int>> queries = queries;
12+
private int n = n;
13+
private long expected = expected;
14+
public string Title
15+
{
16+
get { return title; }
17+
}
18+
public List<List<int>> Queries
19+
{
20+
get { return queries; }
21+
}
22+
public int N
23+
{
24+
get { return n; }
25+
}
26+
public long Expected
27+
{
28+
get { return expected; }
29+
}
1430
}
1531

1632
private List<CrushOptimizedTestCase> testCases { get; set; } = default!;
@@ -30,8 +46,8 @@ public void testArrayManipulation()
3046

3147
foreach (CrushOptimizedTestCase test in testCases)
3248
{
33-
result = CrushOptimized.arrayManipulation(test.n, test.queries);
34-
Assert.AreEqual(test.expected, result);
49+
result = CrushOptimized.arrayManipulation(test.N, test.Queries);
50+
Assert.AreEqual(test.Expected, result);
3551
}
3652
}
3753
}

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/arrays/NewYearChaos.Test.cs

+22-7
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,26 @@ namespace algorithm_exercises_csharp_test.hackerrank.interview_preparation_kit.a
55
[TestClass]
66
public class NewYearChaosTest
77
{
8-
public class NewYearChaosTestCase
8+
public class NewYearChaosTestCase(string title, int[] input, string expected)
99
{
10-
public string title { get; set; } = default!;
11-
public List<int> input { get; set; } = default!;
12-
public string expected { get; set; } = default!;
10+
private readonly string title = title;
11+
private readonly List<int> input = [.. input];
12+
private readonly string expected = expected;
13+
14+
public string Title
15+
{
16+
get { return title; }
17+
}
18+
19+
public List<int> Input
20+
{
21+
get { return input; }
22+
}
23+
24+
public string Expected
25+
{
26+
get { return expected; }
27+
}
1328
}
1429

1530
private List<NewYearChaosTestCase> testCases { get; set; } = default!;
@@ -29,10 +44,10 @@ public void testMinimumBribesText()
2944

3045
foreach (NewYearChaosTestCase test in testCases)
3146
{
32-
result = NewYearChaos.minimumBribesText(test.input);
33-
NewYearChaos.minimumBribes(test.input);
47+
result = NewYearChaos.minimumBribesText(test.Input);
48+
NewYearChaos.minimumBribes(test.Input);
3449

35-
Assert.AreEqual(test.expected, result);
50+
Assert.AreEqual(test.Expected, result);
3651
}
3752
}
3853
}

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/arrays/TwoDArray.Test.cs

+19-6
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,24 @@ namespace algorithm_exercises_csharp_test.hackerrank.interview_preparation_kit.a
55
[TestClass]
66
public class TwoDArrayTest
77
{
8-
public class TwoDArrayTestCase
8+
public class TwoDArrayTestCase(string title, List<List<int>> input, long expected)
99
{
10-
public string title { get; set; } = default!;
11-
public List<List<int>> input { get; set; } = default!;
12-
public long expected { get; set; } = default!;
10+
private string title = title;
11+
private List<List<int>> input = input;
12+
private long expected = expected;
13+
14+
public string Title
15+
{
16+
get { return title; }
17+
}
18+
public List<List<int>> Input
19+
{
20+
get { return input; }
21+
}
22+
public long Expected
23+
{
24+
get { return expected; }
25+
}
1326
}
1427

1528
private List<TwoDArrayTestCase> testCases { get; set; } = default!;
@@ -29,8 +42,8 @@ public void testHourglassSum()
2942

3043
foreach (TwoDArrayTestCase test in testCases)
3144
{
32-
result = TwoDArray.hourglassSum(test.input);
33-
Assert.AreEqual(test.expected, result);
45+
result = TwoDArray.hourglassSum(test.Input);
46+
Assert.AreEqual(test.Expected, result);
3447
}
3548
}
3649

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTriplets.Test.cs

+29-9
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,32 @@ namespace algorithm_exercises_csharp_test.hackerrank.interview_preparation_kit.d
55
[TestClass]
66
public class CountTripletsTest
77
{
8-
public class CountTripletsTestCase
8+
public class CountTripletsTestCase(string title, long[] input, int r, long expected)
99
{
10-
public string title { get; set; } = default!;
11-
public List<long> input { get; set; } = default!;
12-
public int r { get; set; } = default!;
13-
public long expected { get; set; } = default!;
10+
private readonly string title = title;
11+
private readonly List<long> input = [.. input];
12+
private readonly int r = r;
13+
private readonly long expected = expected;
14+
15+
public string Title
16+
{
17+
get { return title; }
18+
}
19+
20+
public List<long> Input
21+
{
22+
get { return input; }
23+
}
24+
25+
public int R
26+
{
27+
get { return r; }
28+
}
29+
30+
public long Expected
31+
{
32+
get { return expected; }
33+
}
1434
}
1535

1636
private List<CountTripletsTestCase> testCases { get; set; } = default!;
@@ -35,14 +55,14 @@ public void testCountTriplets()
3555

3656
foreach (CountTripletsTestCase test in testCases)
3757
{
38-
result = CountTriplets.countTriplets(test.input, test.r);
39-
Assert.AreEqual(test.expected, result);
58+
result = CountTriplets.countTriplets(test.Input, test.R);
59+
Assert.AreEqual(test.Expected, result);
4060
}
4161

4262
foreach (CountTripletsTestCase test in bigTestCases)
4363
{
44-
result = CountTriplets.countTriplets(test.input, test.r);
45-
Assert.AreEqual(test.expected, result);
64+
result = CountTriplets.countTriplets(test.Input, test.R);
65+
Assert.AreEqual(test.Expected, result);
4666
}
4767
}
4868
}

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsBruteForce.Test.cs

+27-7
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,32 @@ namespace algorithm_exercises_csharp_test.hackerrank.interview_preparation_kit.d
55
[TestClass]
66
public class CountTripletsBruteForceTest
77
{
8-
public class CountTripletsBruteForceTestCase
8+
public class CountTripletsBruteForceTestCase(string title, long[] input, int r, long expected)
99
{
10-
public string title { get; set; } = default!;
11-
public List<long> input { get; set; } = default!;
12-
public int r { get; set; } = default!;
13-
public int expected { get; set; } = default!;
10+
private readonly string title = title;
11+
private readonly List<long> input = [.. input];
12+
private readonly int r = r;
13+
private readonly long expected = expected;
14+
15+
public string Title
16+
{
17+
get { return title; }
18+
}
19+
20+
public List<long> Input
21+
{
22+
get { return input; }
23+
}
24+
25+
public int R
26+
{
27+
get { return r; }
28+
}
29+
30+
public long Expected
31+
{
32+
get { return expected; }
33+
}
1434
}
1535

1636
private List<CountTripletsBruteForceTestCase> testCases { get; set; } = default!;
@@ -30,8 +50,8 @@ public void testCountTriplets()
3050

3151
foreach (CountTripletsBruteForceTestCase test in testCases)
3252
{
33-
result = CountTripletsBruteForce.countTriplets(test.input, test.r);
34-
Assert.AreEqual(test.expected, result);
53+
result = CountTripletsBruteForce.countTriplets(test.Input, test.R);
54+
Assert.AreEqual(test.Expected, result);
3555
}
3656
}
3757
}

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueries.Test.cs

+27-14
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,24 @@ namespace algorithm_exercises_csharp_test.hackerrank.interview_preparation_kit.d
55
[TestClass]
66
public class FrequencyQueriesTest
77
{
8-
public class FrequencyQueriesTestCase
8+
public class FrequencyQueriesTestCase(string title, List<List<int>> input, List<int> expected)
99
{
10-
public string title { get; set; } = default!;
11-
public List<List<int>> input { get; set; } = default!;
12-
public List<int> expected { get; set; } = default!;
10+
private string title = title;
11+
private List<List<int>> input = input;
12+
private List<int> expected = expected;
13+
14+
public string Title
15+
{
16+
get { return title; }
17+
}
18+
public List<List<int>> Input
19+
{
20+
get { return input; }
21+
}
22+
public List<int> Expected
23+
{
24+
get { return expected; }
25+
}
1326
}
1427

1528
List<FrequencyQueriesTestCase> testCases { get; set; } = default!;
@@ -44,11 +57,11 @@ public void testFrequencyQueries()
4457

4558
foreach (FrequencyQueriesTestCase test in testCases)
4659
{
47-
solutionFound = FrequencyQueries.freqQuery(test.input);
60+
solutionFound = FrequencyQueries.freqQuery(test.Input);
4861
CollectionAssert.AreEqual(
49-
test.expected,
62+
test.Expected,
5063
solutionFound,
51-
$"FrequencyQueries.freqQuery({test.input}) answer must be: {test.expected}"
64+
$"FrequencyQueries.freqQuery({test.Input}) answer must be: {test.Expected}"
5265
);
5366
}
5467
}
@@ -60,11 +73,11 @@ public void testFrequencyQueriesBigCases()
6073

6174
foreach (FrequencyQueriesTestCase test in testCase6)
6275
{
63-
solutionFound = FrequencyQueries.freqQuery(test.input);
76+
solutionFound = FrequencyQueries.freqQuery(test.Input);
6477
CollectionAssert.AreEqual(
65-
test.expected,
78+
test.Expected,
6679
solutionFound,
67-
$"FrequencyQueries.freqQuery({test.input}) answer must be: {test.expected}"
80+
$"FrequencyQueries.freqQuery({test.Input}) answer must be: {test.Expected}"
6881
);
6982
}
7083
}
@@ -76,11 +89,11 @@ public void testFrequencyQueriesBorderCases()
7689

7790
foreach (FrequencyQueriesTestCase test in testCaseBorderCases)
7891
{
79-
solutionFound = FrequencyQueries.freqQuery(test.input);
92+
solutionFound = FrequencyQueries.freqQuery(test.Input);
8093
CollectionAssert.AreEqual(
81-
test.expected,
94+
test.Expected,
8295
solutionFound,
83-
$"FrequencyQueries.freqQuery({test.input}) answer must be: {test.expected}"
96+
$"FrequencyQueries.freqQuery({test.Input}) answer must be: {test.Expected}"
8497
);
8598
}
8699
}
@@ -90,7 +103,7 @@ public void testFrequencyQueriesBorderCaseException()
90103
{
91104
foreach (FrequencyQueriesTestCase test in testCaseBorderCaseException)
92105
{
93-
Assert.ThrowsExactly<InvalidOperationException>(() => _ = FrequencyQueries.freqQuery(test.input));
106+
Assert.ThrowsExactly<InvalidOperationException>(() => _ = FrequencyQueries.freqQuery(test.Input));
94107
}
95108
}
96109
}

0 commit comments

Comments
 (0)