diff --git a/katas/FizzBuzz/solution/baxa68486/FizzBuzz.Unit.Tests/FizzBuzz.Unit.Tests.csproj b/katas/FizzBuzz/solution/baxa68486/FizzBuzz.Unit.Tests/FizzBuzz.Unit.Tests.csproj
new file mode 100644
index 0000000..f8ae983
--- /dev/null
+++ b/katas/FizzBuzz/solution/baxa68486/FizzBuzz.Unit.Tests/FizzBuzz.Unit.Tests.csproj
@@ -0,0 +1,29 @@
+
+
+
+ net6.0
+ enable
+ enable
+
+ false
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
diff --git a/katas/FizzBuzz/solution/baxa68486/FizzBuzz.Unit.Tests/FizzBuzzTests.cs b/katas/FizzBuzz/solution/baxa68486/FizzBuzz.Unit.Tests/FizzBuzzTests.cs
new file mode 100644
index 0000000..696f905
--- /dev/null
+++ b/katas/FizzBuzz/solution/baxa68486/FizzBuzz.Unit.Tests/FizzBuzzTests.cs
@@ -0,0 +1,37 @@
+using FluentAssertions;
+using Xunit;
+
+namespace FizzBuzz.Unit.Tests
+{
+ public class FizzBuzzTests
+ {
+ private readonly RulesEngine _rulesEngine = new RulesEngine();
+
+ [Theory]
+ [InlineData(3)]
+ public void EveluateNumbers_CheckDivisionToThreeRule_ReturnsFizz(int n)
+ {
+ var expected = new List { "1", "2", "Fizz" };
+ var res = _rulesEngine.EveluateNumbers(n);
+ expected.Should().BeEquivalentTo(res);
+ }
+
+ [Theory]
+ [InlineData(5)]
+ public void EveluateNumbers_CheckDivisionToFiveRule_ReturnsBuzz(int n)
+ {
+ var expected = new List { "1", "2", "Fizz", "4", "Buzz" };
+ var res = _rulesEngine.EveluateNumbers(n);
+ expected.Should().BeEquivalentTo(res);
+ }
+
+
+ [Theory]
+ [InlineData(15)]
+ public void EveluateNumbers_CheckDivisionToThreeAndFiveRule_ResultContainsFizzBuzz(int n)
+ {
+ var res = _rulesEngine.EveluateNumbers(n);
+ res.Should().Contain("FizzBuzz");
+ }
+ }
+}
\ No newline at end of file
diff --git a/katas/FizzBuzz/solution/baxa68486/FizzBuzz/FizzBuzz.csproj b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/FizzBuzz.csproj
new file mode 100644
index 0000000..74abf5c
--- /dev/null
+++ b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/FizzBuzz.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net6.0
+ enable
+ enable
+
+
+
diff --git a/katas/FizzBuzz/solution/baxa68486/FizzBuzz/FizzBuzz.sln b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/FizzBuzz.sln
new file mode 100644
index 0000000..8be80fc
--- /dev/null
+++ b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/FizzBuzz.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.33103.201
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FizzBuzz", "FizzBuzz.csproj", "{00C63E22-4318-4176-8A4B-08CBDA95B217}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FizzBuzz.Unit.Tests", "..\FizzBuzz.Unit.Tests\FizzBuzz.Unit.Tests.csproj", "{35F85DDA-9071-4E73-BE6F-1EF5B30A29EC}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {00C63E22-4318-4176-8A4B-08CBDA95B217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {00C63E22-4318-4176-8A4B-08CBDA95B217}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {00C63E22-4318-4176-8A4B-08CBDA95B217}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {00C63E22-4318-4176-8A4B-08CBDA95B217}.Release|Any CPU.Build.0 = Release|Any CPU
+ {35F85DDA-9071-4E73-BE6F-1EF5B30A29EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {35F85DDA-9071-4E73-BE6F-1EF5B30A29EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {35F85DDA-9071-4E73-BE6F-1EF5B30A29EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {35F85DDA-9071-4E73-BE6F-1EF5B30A29EC}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {7F83EDA8-AF89-40E9-B20C-069085CA3916}
+ EndGlobalSection
+EndGlobal
diff --git a/katas/FizzBuzz/solution/baxa68486/FizzBuzz/Program.cs b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/Program.cs
new file mode 100644
index 0000000..139ec4e
--- /dev/null
+++ b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/Program.cs
@@ -0,0 +1,3 @@
+// See https://aka.ms/new-console-template for more information
+
+Console.WriteLine("Hello, World!");
diff --git a/katas/FizzBuzz/solution/baxa68486/FizzBuzz/RulesEngine.cs b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/RulesEngine.cs
new file mode 100644
index 0000000..d4efa2d
--- /dev/null
+++ b/katas/FizzBuzz/solution/baxa68486/FizzBuzz/RulesEngine.cs
@@ -0,0 +1,43 @@
+using System.Data;
+using System.Text;
+
+namespace FizzBuzz
+{
+ /*
+ It could be implemented using OOP by encapsulating rules in separate classes
+ and handling them in RulesEngine
+ */
+ public class RulesEngine
+ {
+ List, string>> _rules =
+ new List, string>>
+ {
+ new KeyValuePair, string>(x => x%3 == 0, "Fizz"),
+ new KeyValuePair, string>(x => x%5 == 0, "Buzz"),
+ };
+
+ public List EveluateNumbers(int n)
+ {
+ List ls = new List();
+ var res = new StringBuilder();
+
+ for (int i = 1; i <= n; i++)
+ {
+ foreach (var rule in _rules)
+ {
+ if (rule.Key(i))
+ {
+ res.Append(rule.Value);
+ }
+ }
+ if (res.Length == 0)
+ ls.Add(i.ToString());
+ else
+ ls.Add(res.ToString());
+
+ res.Clear();
+ }
+ return ls;
+ }
+ }
+}
diff --git a/katas/FizzBuzz/solution/baxa68486/index.html b/katas/FizzBuzz/solution/baxa68486/index.html
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/katas/FizzBuzz/solution/baxa68486/index.html
@@ -0,0 +1 @@
+
diff --git a/katas/Palindrom/Palindrom.iml b/katas/Palindrom/Palindrom.iml
new file mode 100644
index 0000000..06bff9e
--- /dev/null
+++ b/katas/Palindrom/Palindrom.iml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/katas/Palindrom/Palindrome.iml b/katas/Palindrom/Palindrome.iml
new file mode 100644
index 0000000..2041916
--- /dev/null
+++ b/katas/Palindrom/Palindrome.iml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/katas/Palindrom/out/production/Palindrome/classpath.index b/katas/Palindrom/out/production/Palindrome/classpath.index
new file mode 100644
index 0000000..28fd1ff
Binary files /dev/null and b/katas/Palindrom/out/production/Palindrome/classpath.index differ
diff --git a/katas/Palindrom/out/production/Palindrome/main/Main.class b/katas/Palindrom/out/production/Palindrome/main/Main.class
new file mode 100644
index 0000000..7acf454
Binary files /dev/null and b/katas/Palindrom/out/production/Palindrome/main/Main.class differ
diff --git a/katas/Palindrom/out/production/Palindrome/main/Palindrome.class b/katas/Palindrom/out/production/Palindrome/main/Palindrome.class
new file mode 100644
index 0000000..834afe0
Binary files /dev/null and b/katas/Palindrom/out/production/Palindrome/main/Palindrome.class differ
diff --git a/katas/Palindrom/out/production/Palindrome/test/PalindromeTest.class b/katas/Palindrom/out/production/Palindrome/test/PalindromeTest.class
new file mode 100644
index 0000000..b5e2f76
Binary files /dev/null and b/katas/Palindrom/out/production/Palindrome/test/PalindromeTest.class differ
diff --git a/katas/Palindrom/solution/baxa68486/index.html b/katas/Palindrom/solution/baxa68486/index.html
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/katas/Palindrom/solution/baxa68486/index.html
@@ -0,0 +1 @@
+
diff --git a/katas/Palindrom/solution/baxa68486/src/main/Main.java b/katas/Palindrom/solution/baxa68486/src/main/Main.java
new file mode 100644
index 0000000..94493c5
--- /dev/null
+++ b/katas/Palindrom/solution/baxa68486/src/main/Main.java
@@ -0,0 +1,9 @@
+package main;
+
+public class Main {
+ public static void main(String[] args) {
+ var res = new Palindrome().isPalindrome("amma");
+ System.out.println(res);
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/katas/Palindrom/solution/baxa68486/src/main/Palindrome.java b/katas/Palindrom/solution/baxa68486/src/main/Palindrome.java
new file mode 100644
index 0000000..7b2b3d0
--- /dev/null
+++ b/katas/Palindrom/solution/baxa68486/src/main/Palindrome.java
@@ -0,0 +1,34 @@
+package main;
+
+public class Palindrome {
+
+ public boolean isPalindrome(String s) {
+ if(s == null)
+ return false;
+ int start = 0;
+ int end = (s.length() - 1);
+ while ((start < end)) {
+
+ char first = s.charAt(start);
+ char second = s.charAt(end);
+ if(!Character.isLetterOrDigit(first)){
+ start++;
+ continue;
+ }
+
+ if(!Character.isLetterOrDigit(second)) {
+ end--;
+ continue;
+ }
+
+ if (Character.toLowerCase(first) != Character.toLowerCase(second)) {
+ return false;
+ }
+
+ start++;
+ end--;
+ }
+
+ return true;
+ }
+}
diff --git a/katas/Palindrom/solution/baxa68486/src/test/PalindromeTests.java b/katas/Palindrom/solution/baxa68486/src/test/PalindromeTests.java
new file mode 100644
index 0000000..de3fe7c
--- /dev/null
+++ b/katas/Palindrom/solution/baxa68486/src/test/PalindromeTests.java
@@ -0,0 +1,43 @@
+package test;
+
+import main.Palindrome;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import java.util.stream.Stream;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+class PalindromeTests {
+ @ParameterizedTest(name = "{index} => s=''{0}'', expected={1}")
+ @MethodSource("testData")
+ void isPalindrome(String s, boolean expected)
+ {
+ var palindrome = new Palindrome();
+ var res = palindrome.isPalindrome(s);
+ assertEquals(expected, res);
+ }
+
+
+ private static Stream testData() {
+ return Stream.of(
+ Arguments.of("amma", true),
+ Arguments.of("A man, a plan, a canal: Panama", true),
+ Arguments.of("race a car", false),
+ Arguments.of("street", false),
+ Arguments.of(" ", true),
+ Arguments.of("Tarne nie deinen Rat!", true)
+ );
+ }
+
+ @Test
+ void isPalindrome_StringIsNull_ReturnFalse()
+ {
+ var palindrome = new Palindrome();
+ String s = null;
+ var res = palindrome.isPalindrome(s);
+ assertEquals(false, res);
+ }
+}
\ No newline at end of file