From 5af46bc1386886b9ea36e80a08ffccd027e5c4ac Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 15 May 2024 16:51:46 -0400 Subject: [PATCH 1/6] [CONFIG] .NET C# code style rules added. Editorconfig --- .editorconfig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.editorconfig b/.editorconfig index 49e65e1..8225c31 100644 --- a/.editorconfig +++ b/.editorconfig @@ -34,3 +34,15 @@ insert_final_newline = true # Use tabs for indentation (Makefiles require tabs) indent_style = tab indent_size = 2 + +############################### +# .NET C# Coding Conventions # +############################### + +[*.cs] +#IDE1006 +dotnet_naming_style.camel_case.capitalization = camel_case +dotnet_naming_symbols.private_symbols.applicable_accessibilities = private +dotnet_naming_rule.camel_case_for_private.severity = warning +dotnet_naming_rule.camel_case_for_private.symbols = private_symbols +dotnet_naming_rule.camel_case_for_private.style = camel_case From cb24a3580049ae46262426bbf33f1571d9f1c582 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 15 May 2024 17:05:04 -0400 Subject: [PATCH 2/6] [CONFIG] .NET C# code style rules added. Makefile --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 86b8836..6ba704e 100644 --- a/Makefile +++ b/Makefile @@ -74,6 +74,10 @@ lint: test/static test/styling mdlint test/static: dependencies test/styling: dependencies + ${PACKAGE_TOOL} format --verify-no-changes --verbosity ${VERBOSITY_LEVEL} + +format: + ${PACKAGE_TOOL} format --verbosity ${VERBOSITY_LEVEL} build: env dependencies ${PACKAGE_TOOL} build --verbosity ${VERBOSITY_LEVEL} From 7e2defe2fd0b7163c260f3c94499c501e71c8a41 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 15 May 2024 17:09:50 -0400 Subject: [PATCH 3/6] [CONFIG] .NET C# code style rules added. VSCode --- .vscode/settings.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 870dafe..6120401 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,7 @@ "sonarlint.connectedMode.project": { "connectionId": "sir-gon", "projectKey": "sir-gon_algorithm-exercises-csharp" - } + }, + "editor.defaultFormatter": "ms-dotnettools.csdevkit", + "editor.formatOnSave": true } From 23fc3b70d139f02af40e14e662df624d0eac5b16 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 15 May 2024 17:13:07 -0400 Subject: [PATCH 4/6] [CONFIG] .NET C# code style lint/test added in Github Actions. --- .github/workflows/dotnet.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 2329d08..df17512 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -31,5 +31,7 @@ jobs: run: dotnet restore - name: Build run: dotnet build --no-restore + - name: Lint (codestyle) + run: dotnet format --verify-no-changes --verbosity normal - name: Test run: dotnet test --no-build --verbosity normal From 971111615266bec766a55b7348f3672eeb263e8c Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 15 May 2024 18:27:32 -0400 Subject: [PATCH 5/6] [REFACTOR] code style fixing --- .../hackerrank/projecteuler/Euler001.Test.cs | 14 +++++---- .../hackerrank/projecteuler/Euler002.Test.cs | 12 ++++---- .../hackerrank/projecteuler/Euler003.Test.cs | 12 ++++---- algorithm-exercises-csharp/src/Hello.cs | 5 ++-- .../src/hackerrank/projecteuler/Euler001.cs | 7 +++-- .../src/hackerrank/projecteuler/Euler002.cs | 21 ++++++++------ .../src/hackerrank/projecteuler/Euler003.cs | 29 ++++++++++++------- 7 files changed, 59 insertions(+), 41 deletions(-) diff --git a/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler001.Test.cs b/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler001.Test.cs index ab99670..8c8d77e 100644 --- a/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler001.Test.cs +++ b/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler001.Test.cs @@ -3,15 +3,16 @@ namespace algorithm_exercises_csharp.hackerrank.prohecteuler; [TestClass] public class Euler001Test { - public class Euler001TestCase { + public class Euler001TestCase + { public int a; public int b; public int n; public int answer; } // dotnet_style_readonly_field = true private static readonly Euler001TestCase[] tests = [ - new() { a = 3, b = 5, n = 10, answer = 23}, - new() { a = 3, b = 5, n = 100, answer = 2318}, - new() { a = 3, b = 5, n = 1000, answer = 233168}, + new() { a = 3, b = 5, n = 10, answer = 23 }, + new() { a = 3, b = 5, n = 100, answer = 2318 }, + new() { a = 3, b = 5, n = 1000, answer = 233168 }, ]; @@ -20,9 +21,10 @@ public void Euler001ProblemTest() { int result; - foreach (Euler001TestCase test in tests) { + foreach (Euler001TestCase test in tests) + { result = Euler001Problem.Euler001(test.a, test.b, test.n); - Assert.AreEqual(test.answer, result); + Assert.AreEqual(test.answer, result); } } } diff --git a/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler002.Test.cs b/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler002.Test.cs index 572cd81..7e2f0dd 100644 --- a/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler002.Test.cs +++ b/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler002.Test.cs @@ -3,14 +3,15 @@ namespace algorithm_exercises_csharp.hackerrank.prohecteuler; [TestClass] public class Euler002Test { - public class Euler002TestCase { + public class Euler002TestCase + { public int n; public int answer; } // dotnet_style_readonly_field = true private static readonly Euler002TestCase[] tests = [ - new() { n = 10, answer = 10}, - new() { n = 100, answer = 44} + new() { n = 10, answer = 10 }, + new() { n = 100, answer = 44 } ]; [TestMethod] @@ -18,9 +19,10 @@ public void Euler002ProblemTest() { int result; - foreach (Euler002TestCase test in tests) { + foreach (Euler002TestCase test in tests) + { result = Euler002Problem.Euler002(test.n); - Assert.AreEqual(test.answer, result); + Assert.AreEqual(test.answer, result); } } } diff --git a/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler003.Test.cs b/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler003.Test.cs index ce5a5f2..371ed2e 100644 --- a/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler003.Test.cs +++ b/algorithm-exercises-csharp-test/src/hackerrank/projecteuler/Euler003.Test.cs @@ -8,15 +8,16 @@ namespace algorithm_exercises_csharp.hackerrank.prohecteuler; [TestClass] public class Euler003Test { - public class Euler003TestCase { + public class Euler003TestCase + { public int n; public int? answer; } // dotnet_style_readonly_field = true private static readonly Euler003TestCase[] tests = [ - new() { n = 1, answer = null}, - new() { n = 10, answer = 5}, - new() { n = 17, answer = 17} + new() { n = 1, answer = null }, + new() { n = 10, answer = 5 }, + new() { n = 17, answer = 17 } ]; [TestMethod] @@ -24,7 +25,8 @@ public void Euler003ProblemTest() { int? result; - foreach (Euler003TestCase test in tests) { + foreach (Euler003TestCase test in tests) + { result = Euler003Problem.Euler003(test.n); Assert.AreEqual(test.answer, result); } diff --git a/algorithm-exercises-csharp/src/Hello.cs b/algorithm-exercises-csharp/src/Hello.cs index 71fd8ca..bd49008 100644 --- a/algorithm-exercises-csharp/src/Hello.cs +++ b/algorithm-exercises-csharp/src/Hello.cs @@ -7,14 +7,15 @@ public class HelloWorld const string message = "Hello World!"; [ExcludeFromCodeCoverage] - protected HelloWorld() {} + protected HelloWorld() { } public static string Hello() { return HelloWorld.message; } - public static HelloWorld Create() { + public static HelloWorld Create() + { return new HelloWorld(); } } diff --git a/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler001.cs b/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler001.cs index e22f194..58c5266 100644 --- a/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler001.cs +++ b/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler001.cs @@ -7,9 +7,10 @@ namespace algorithm_exercises_csharp.hackerrank.prohecteuler; public class Euler001Problem { [ExcludeFromCodeCoverage] - protected Euler001Problem() {} + protected Euler001Problem() { } - public static int SuOfArithmeticProgression(int n, int d) { + public static int SuOfArithmeticProgression(int n, int d) + { int new_n = n / d; return new_n * (1 + new_n) * d / 2; @@ -19,7 +20,7 @@ public static int GCD(int u, int v) { if (v != 0) { - return GCD(v, u % v); + return GCD(v, u % v); } return u; } diff --git a/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler002.cs b/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler002.cs index fa5a966..b70b7a4 100644 --- a/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler002.cs +++ b/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler002.cs @@ -7,22 +7,25 @@ namespace algorithm_exercises_csharp.hackerrank.prohecteuler; public class Euler002Problem { [ExcludeFromCodeCoverage] - protected Euler002Problem() {} + protected Euler002Problem() { } - public static int FiboEvenSum(int n) { + public static int FiboEvenSum(int n) + { int total = 0; int fibo; int fibo1 = 1; int fibo2 = 1; - while (fibo1 + fibo2 < n) { - fibo = fibo1 + fibo2; - fibo1 = fibo2; - fibo2 = fibo; + while (fibo1 + fibo2 < n) + { + fibo = fibo1 + fibo2; + fibo1 = fibo2; + fibo2 = fibo; - if(fibo % 2 == 0) { - total += fibo; - } + if (fibo % 2 == 0) + { + total += fibo; + } } return total; diff --git a/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler003.cs b/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler003.cs index 884a2e2..a46a74a 100644 --- a/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler003.cs +++ b/algorithm-exercises-csharp/src/hackerrank/projecteuler/Euler003.cs @@ -7,10 +7,12 @@ namespace algorithm_exercises_csharp.hackerrank.prohecteuler; public class Euler003Problem { [ExcludeFromCodeCoverage] - protected Euler003Problem() {} + protected Euler003Problem() { } - public static int? PrimeFactor(int n) { - if (n < 2) { + public static int? PrimeFactor(int n) + { + if (n < 2) + { return null; } @@ -18,16 +20,21 @@ protected Euler003Problem() {} int? max_prime_factor = null; int i = 2; - while (i <= Math.Sqrt(divisor)) { - if (0 == divisor % i) { - divisor = divisor / i; - max_prime_factor = divisor; - } else { - i += 1; - } + while (i <= Math.Sqrt(divisor)) + { + if (0 == divisor % i) + { + divisor = divisor / i; + max_prime_factor = divisor; + } + else + { + i += 1; + } } - if (max_prime_factor is null) { + if (max_prime_factor is null) + { return n; } From 93d5af442ab3ef1c40c80b38813d5ebf4b331932 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Wed, 15 May 2024 19:01:32 -0400 Subject: [PATCH 6/6] [CONFIG] Markdown Lint runtime updated in Github Actions. --- .github/workflows/markdown-lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml index c018ea6..342dd72 100644 --- a/.github/workflows/markdown-lint.yml +++ b/.github/workflows/markdown-lint.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node-version: [20.x] + node-version: [22.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: