diff --git a/.circleci/config.yml b/.circleci/config.yml index 2254b6f..c71fd15 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -23,12 +23,14 @@ jobs: name: Build command: | + export CODE_USER="thethoughtcode" export PROJECT_NAME="code-challenges-java" export SONAR_TOKEN="${ENV_SONAR_TOKEN_CODE_CHALLENGES_JAVA}" export COVERAGE_FILE="jacoco-report/target/site/jacoco-aggregate/jacoco.xml" export CODACY_PROJECT_NAME="$PROJECT_NAME" + export CODACY_USERNAME="$CODE_USER" - export SONAR_ARGS=" -Dsonar.projectKey=sampada-dubey_${PROJECT_NAME}" + export SONAR_ARGS=" -Dsonar.projectKey=${CODE_USER}_${PROJECT_NAME}" export SONAR_ARGS="$SONAR_ARGS -Dsonar.organization=$ENV_SONAR_ORGANIZATION" export SONAR_ARGS="$SONAR_ARGS -Dsonar.host.url=https://sonarcloud.io" export SONAR_ARGS="$SONAR_ARGS -Dsonar.coverage.jacoco.xmlReportPaths=$COVERAGE_FILE" diff --git a/.gitignore b/.gitignore index f5a28c3..000ac24 100644 --- a/.gitignore +++ b/.gitignore @@ -68,8 +68,13 @@ hs_err_pid* **/.project **/.settings **/.classpath -**/target +**/target/* +**/cov.xml # VS code .vscode +# Project specific +common/target/** +codingbat/target/** + diff --git a/LICENSE b/LICENSE index 449a9de..66da379 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022 Sampada Dubey +Copyright (c) 2022 Thought Code Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 0e7fbf5..facfb6c 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# code-challenges-java \ No newline at end of file +# code-challenges-java diff --git a/codingbat/pom.xml b/codingbat/pom.xml index a5527e5..b3506e9 100644 --- a/codingbat/pom.xml +++ b/codingbat/pom.xml @@ -4,7 +4,7 @@ 4.0.0 - io.sampadadubey.java + io.thoughtcode.java parent 1.0 .. @@ -16,7 +16,7 @@ - io.sampadadubey.java + io.thoughtcode.java common ${project.version} diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Or35.java b/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Or35.java deleted file mode 100644 index c770e07..0000000 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Or35.java +++ /dev/null @@ -1,11 +0,0 @@ -package io.sampadadubey.java.codingbat.warmup1; - -import static io.sampadadubey.java.common.NumberConstants.FIVE; -import static io.sampadadubey.java.common.NumberConstants.THREE; - -public class Or35 { - - public final boolean or35(final int number) { - return number % THREE == 0 || number % FIVE == 0; - } -} diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/BackAround.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/BackAround.java similarity index 76% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/BackAround.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/BackAround.java index 326ada8..85dacdd 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/BackAround.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/BackAround.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.ONE; +import static io.thoughtcode.java.common.NumberConstants.ONE; public class BackAround { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Close10.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Close10.java similarity index 78% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Close10.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Close10.java index 1b66e42..7cc0b5e 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Close10.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Close10.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TEN; +import static io.thoughtcode.java.common.NumberConstants.TEN; public class Close10 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/DelDel.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/DelDel.java similarity index 76% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/DelDel.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/DelDel.java index 7b3936e..7bd9824 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/DelDel.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/DelDel.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.FOUR; +import static io.thoughtcode.java.common.NumberConstants.FOUR; public class DelDel { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Diff21.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Diff21.java similarity index 74% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Diff21.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Diff21.java index 23f0c1a..95c78aa 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Diff21.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Diff21.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.NumberConstants.TWO; public class Diff21 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EndUp.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/EndUp.java similarity index 77% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EndUp.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/EndUp.java index 44105d9..b1f587b 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EndUp.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/EndUp.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.NumberConstants.THREE; import static java.util.Locale.ROOT; public class EndUp { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EveryNth.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/EveryNth.java similarity index 92% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EveryNth.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/EveryNth.java index a3c277c..5ad1eb4 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EveryNth.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/EveryNth.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class EveryNth { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front22.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Front22.java similarity index 75% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front22.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Front22.java index 69b4597..5cd7e81 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front22.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Front22.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.NumberConstants.TWO; public class Front22 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front3.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Front3.java similarity index 71% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front3.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Front3.java index e2d4d21..7ea2f65 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front3.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Front3.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.NumberConstants.THREE; public class Front3 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/FrontBack.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/FrontBack.java similarity index 76% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/FrontBack.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/FrontBack.java index 554664e..89ffbfb 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/FrontBack.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/FrontBack.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.ONE; +import static io.thoughtcode.java.common.NumberConstants.ONE; public class FrontBack { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/HasTeen.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/HasTeen.java similarity index 61% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/HasTeen.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/HasTeen.java index cac253a..a1a068b 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/HasTeen.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/HasTeen.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TEEN_END; -import static io.sampadadubey.java.common.NumberConstants.TEEN_START; +import static io.thoughtcode.java.common.NumberConstants.TEEN_END; +import static io.thoughtcode.java.common.NumberConstants.TEEN_START; public class HasTeen { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IcyHot.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/IcyHot.java similarity index 60% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IcyHot.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/IcyHot.java index 5036724..1d9b500 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IcyHot.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/IcyHot.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.HUNDRED; -import static io.sampadadubey.java.common.NumberConstants.ZERO; +import static io.thoughtcode.java.common.NumberConstants.HUNDRED; +import static io.thoughtcode.java.common.NumberConstants.ZERO; public class IcyHot { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In1020.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/In1020.java similarity index 64% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In1020.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/In1020.java index 7be1322..17387e4 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In1020.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/In1020.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TEN; -import static io.sampadadubey.java.common.NumberConstants.TWENTY; +import static io.thoughtcode.java.common.NumberConstants.TEN; +import static io.thoughtcode.java.common.NumberConstants.TWENTY; public class In1020 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In3050.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/In3050.java similarity index 86% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In3050.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/In3050.java index de1aecc..e09b5d8 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In3050.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/In3050.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import io.sampadadubey.java.common.NumberConstants; +import io.thoughtcode.java.common.NumberConstants; public class In3050 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IntMax.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/IntMax.java similarity index 84% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IntMax.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/IntMax.java index 21fd888..cd86752 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IntMax.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/IntMax.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class IntMax { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LastDigit.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/LastDigit.java similarity index 70% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LastDigit.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/LastDigit.java index 96dd4ba..eed98b9 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LastDigit.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/LastDigit.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TEN; +import static io.thoughtcode.java.common.NumberConstants.TEN; public class LastDigit { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LoneTeen.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/LoneTeen.java similarity index 58% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LoneTeen.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/LoneTeen.java index a5f8ae8..86317f1 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LoneTeen.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/LoneTeen.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TEEN_END; -import static io.sampadadubey.java.common.NumberConstants.TEEN_START; +import static io.thoughtcode.java.common.NumberConstants.TEEN_END; +import static io.thoughtcode.java.common.NumberConstants.TEEN_START; public class LoneTeen { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Makes10.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Makes10.java similarity index 61% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Makes10.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Makes10.java index d6d3499..adc9fa7 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Makes10.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Makes10.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TEN; +import static io.thoughtcode.java.common.NumberConstants.TEN; public class Makes10 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Max1020.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Max1020.java similarity index 71% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Max1020.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Max1020.java index 4217ac5..bd791d3 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Max1020.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Max1020.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.TEN; -import static io.sampadadubey.java.common.NumberConstants.TWENTY; +import static io.thoughtcode.java.common.NumberConstants.TEN; +import static io.thoughtcode.java.common.NumberConstants.TWENTY; public class Max1020 { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MissingChar.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MissingChar.java similarity index 80% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MissingChar.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MissingChar.java index e4a2301..f12e0ba 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MissingChar.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MissingChar.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class MissingChar { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MixStart.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MixStart.java similarity index 55% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MixStart.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MixStart.java index e0780e7..be833ee 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MixStart.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MixStart.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.ONE; -import static io.sampadadubey.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.NumberConstants.ONE; +import static io.thoughtcode.java.common.NumberConstants.THREE; public class MixStart { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTrouble.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MonkeyTrouble.java similarity index 79% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTrouble.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MonkeyTrouble.java index 3a2b01e..d6c65ea 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTrouble.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/MonkeyTrouble.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class MonkeyTrouble { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NearHundred.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/NearHundred.java similarity index 56% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NearHundred.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/NearHundred.java index 6fe3d1e..96d84c9 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NearHundred.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/NearHundred.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.HUNDRED; -import static io.sampadadubey.java.common.NumberConstants.TEN; +import static io.thoughtcode.java.common.NumberConstants.HUNDRED; +import static io.thoughtcode.java.common.NumberConstants.TEN; public class NearHundred { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NotString.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/NotString.java similarity index 84% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NotString.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/NotString.java index 8167f5b..9ff9e8b 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NotString.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/NotString.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class NotString { diff --git a/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Or35.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Or35.java new file mode 100644 index 0000000..651a6a4 --- /dev/null +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/Or35.java @@ -0,0 +1,11 @@ +package io.thoughtcode.java.codingbat.warmup1; + +import static io.thoughtcode.java.common.NumberConstants.FIVE; +import static io.thoughtcode.java.common.NumberConstants.THREE; + +public class Or35 { + + public final boolean or35(final int number) { + return number % THREE == 0 || number % FIVE == 0; + } +} diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/ParrotTrouble.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/ParrotTrouble.java similarity index 60% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/ParrotTrouble.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/ParrotTrouble.java index 2d79b3c..2b4e5b4 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/ParrotTrouble.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/ParrotTrouble.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.SEVEN; -import static io.sampadadubey.java.common.NumberConstants.TWENTY; +import static io.thoughtcode.java.common.NumberConstants.SEVEN; +import static io.thoughtcode.java.common.NumberConstants.TWENTY; public class ParrotTrouble { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/PosNeg.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/PosNeg.java similarity index 88% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/PosNeg.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/PosNeg.java index e1d85d7..35db349 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/PosNeg.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/PosNeg.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class PosNeg { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SleepIn.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/SleepIn.java similarity index 76% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SleepIn.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/SleepIn.java index b3df88d..fddc8de 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SleepIn.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/SleepIn.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class SleepIn { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartHi.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StartHi.java similarity index 71% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartHi.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StartHi.java index b509e83..58bf654 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartHi.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StartHi.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class StartHi { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartOz.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StartOz.java similarity index 70% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartOz.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StartOz.java index 9079056..940a341 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartOz.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StartOz.java @@ -1,8 +1,8 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.ONE; -import static io.sampadadubey.java.common.NumberConstants.TWO; -import static io.sampadadubey.java.common.NumberConstants.ZERO; +import static io.thoughtcode.java.common.NumberConstants.ONE; +import static io.thoughtcode.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.NumberConstants.ZERO; public class StartOz { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StringE.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StringE.java similarity index 66% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StringE.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StringE.java index 9a5484e..8527a02 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StringE.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/StringE.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; -import static io.sampadadubey.java.common.NumberConstants.ONE; -import static io.sampadadubey.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.NumberConstants.ONE; +import static io.thoughtcode.java.common.NumberConstants.THREE; public class StringE { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SumDouble.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/SumDouble.java similarity index 85% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SumDouble.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/SumDouble.java index ba770ee..d0cc40b 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SumDouble.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup1/SumDouble.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; public class SumDouble { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/AltPairs.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/AltPairs.java similarity index 84% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/AltPairs.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/AltPairs.java index b431461..08fa57b 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/AltPairs.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/AltPairs.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.TWO; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array123.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Array123.java similarity index 74% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array123.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Array123.java index 0927fd0..a56325d 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array123.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Array123.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import java.util.Arrays; import java.util.Optional; @@ -11,7 +11,7 @@ public boolean array123(final int[] input) { final StringBuilder inputStr = new StringBuilder(); - Arrays.stream(nums).forEach(num -> inputStr.append(num)); + Arrays.stream(nums).forEach(inputStr::append); return inputStr.toString().contains("123"); } diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array667.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Array667.java similarity index 85% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array667.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Array667.java index d9ce00f..48f6259 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array667.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Array667.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import java.util.Arrays; import java.util.Optional; @@ -15,7 +15,7 @@ public int array667(final int[] input) { final StringBuilder numString = new StringBuilder(); - Arrays.stream(nums).forEach(num -> numString.append(num)); + Arrays.stream(nums).forEach(numString::append); final Matcher matcher = PATTERN.matcher(numString); diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/ArrayCount9.java similarity index 72% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/ArrayCount9.java index f13770b..57d64e1 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/ArrayCount9.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.NINE; +import static io.thoughtcode.java.common.NumberConstants.NINE; import java.util.Arrays; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/ArrayFront9.java similarity index 74% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/ArrayFront9.java index b40bd60..ba5c5a3 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/ArrayFront9.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.FOUR; -import static io.sampadadubey.java.common.NumberConstants.NINE; +import static io.thoughtcode.java.common.NumberConstants.FOUR; +import static io.thoughtcode.java.common.NumberConstants.NINE; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/CountXX.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/CountXX.java similarity index 78% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/CountXX.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/CountXX.java index e4c5599..9b3fd8e 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/CountXX.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/CountXX.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; import java.util.regex.Matcher; @@ -10,7 +10,7 @@ public final class CountXX { static final Pattern PATTERN = Pattern.compile("([x]){2}"); - public int countXX(final String str) { + public int countXxValues(final String str) { int count = 0; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/DoubleX.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/DoubleX.java similarity index 82% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/DoubleX.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/DoubleX.java index f5848a6..fb49ee3 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/DoubleX.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/DoubleX.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/FrontTimes.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/FrontTimes.java similarity index 75% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/FrontTimes.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/FrontTimes.java index 4625ca2..cf3b7dd 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/FrontTimes.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/FrontTimes.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.THREE; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Has271.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Has271.java similarity index 77% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Has271.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Has271.java index 67ac59a..2f632f8 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Has271.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Has271.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.FIVE; -import static io.sampadadubey.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.NumberConstants.FIVE; +import static io.thoughtcode.java.common.NumberConstants.TWO; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Last2.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Last2.java similarity index 79% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Last2.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Last2.java index 394e41c..d658d47 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Last2.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/Last2.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.TWO; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/NoTriples.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/NoTriples.java similarity index 85% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/NoTriples.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/NoTriples.java index 1a4d30b..1d2cf63 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/NoTriples.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/NoTriples.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.NumberConstants.THREE; public final class NoTriples { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringBits.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringBits.java similarity index 78% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringBits.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringBits.java index 1c22bcd..8901de8 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringBits.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringBits.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringMatch.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringMatch.java similarity index 86% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringMatch.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringMatch.java index 99d5a6f..6675d9d 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringMatch.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringMatch.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringSplosion.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringSplosion.java similarity index 78% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringSplosion.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringSplosion.java index 45109de..6d5195d 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringSplosion.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringSplosion.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringTimes.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringTimes.java similarity index 86% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringTimes.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringTimes.java index dca7343..d923f95 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringTimes.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringTimes.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; public final class StringTimes { diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringX.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringX.java similarity index 82% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringX.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringX.java index 5bd53cb..830c16f 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringX.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringX.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.THREE; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; import java.util.stream.IntStream; diff --git a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringYak.java b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringYak.java similarity index 55% rename from codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringYak.java rename to codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringYak.java index e6dc142..d150892 100644 --- a/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringYak.java +++ b/codingbat/src/main/java/io/thoughtcode/java/codingbat/warmup2/StringYak.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.NumberConstants.THREE; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import java.util.Optional; @@ -14,7 +14,7 @@ public String stringYak(final String str) { String output = input; if (input.length() >= THREE) { - output = str.replaceAll("y[a-zA-Z0-9]{1}k", ""); + output = input.replaceAll("y[a-zA-Z0-9]k", ""); } return output; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/BackAroundTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/BackAroundTest.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/BackAroundTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/BackAroundTest.java index 2889530..3971ab9 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/BackAroundTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/BackAroundTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Close10Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Close10Test.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Close10Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Close10Test.java index d4c49bb..4888868 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Close10Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Close10Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/DelDelTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/DelDelTest.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/DelDelTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/DelDelTest.java index 8f97380..9fa9e0d 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/DelDelTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/DelDelTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Diff21Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Diff21Test.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Diff21Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Diff21Test.java index c05326f..b67f8db 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Diff21Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Diff21Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EndUpTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/EndUpTest.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EndUpTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/EndUpTest.java index f3327cd..6f69572 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EndUpTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/EndUpTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EveryNthTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/EveryNthTest.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EveryNthTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/EveryNthTest.java index 86479d0..b9ce0b9 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EveryNthTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/EveryNthTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front22Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Front22Test.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front22Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Front22Test.java index 9a2cab9..c2539ee 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front22Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Front22Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front3Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Front3Test.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front3Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Front3Test.java index b174802..70246d6 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front3Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Front3Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/FrontBackTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/FrontBackTest.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/FrontBackTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/FrontBackTest.java index 65bd0fc..ec451da 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/FrontBackTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/FrontBackTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/HasTeenTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/HasTeenTest.java similarity index 99% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/HasTeenTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/HasTeenTest.java index 0cf048a..683cc17 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/HasTeenTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/HasTeenTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IcyHotTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/IcyHotTest.java similarity index 99% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IcyHotTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/IcyHotTest.java index abcb0e0..242902f 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IcyHotTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/IcyHotTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In1020Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/In1020Test.java similarity index 98% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In1020Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/In1020Test.java index 073a554..0394fff 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In1020Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/In1020Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In3050Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/In3050Test.java similarity index 99% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In3050Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/In3050Test.java index c2ff2a5..505eacf 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In3050Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/In3050Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IntMaxTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/IntMaxTest.java similarity index 98% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IntMaxTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/IntMaxTest.java index 7c9157e..6b9c6f1 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IntMaxTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/IntMaxTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LastDigitTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/LastDigitTest.java similarity index 94% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LastDigitTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/LastDigitTest.java index e9d3ef4..60091ac 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LastDigitTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/LastDigitTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LoneTeenTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/LoneTeenTest.java similarity index 99% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LoneTeenTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/LoneTeenTest.java index f5350f6..055f379 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LoneTeenTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/LoneTeenTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Makes10Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Makes10Test.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Makes10Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Makes10Test.java index 4c2191d..90c767c 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Makes10Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Makes10Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Max1020Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Max1020Test.java similarity index 99% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Max1020Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Max1020Test.java index 63e8a2e..25ba46b 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Max1020Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Max1020Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MissingCharTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MissingCharTest.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MissingCharTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MissingCharTest.java index a4140a9..f816c64 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MissingCharTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MissingCharTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MixStartTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MixStartTest.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MixStartTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MixStartTest.java index 675bc07..48a6ff4 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MixStartTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MixStartTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTroubleTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MonkeyTroubleTest.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTroubleTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MonkeyTroubleTest.java index 7c6814b..4c9b566 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTroubleTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/MonkeyTroubleTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NearHundredTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/NearHundredTest.java similarity index 98% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NearHundredTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/NearHundredTest.java index 061abc3..cb83936 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NearHundredTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/NearHundredTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NotStringTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/NotStringTest.java similarity index 94% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NotStringTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/NotStringTest.java index c50ec04..47b30f0 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NotStringTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/NotStringTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Or35Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Or35Test.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Or35Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Or35Test.java index 186d89a..5f4dc42 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Or35Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/Or35Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/ParrotTroubleTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/ParrotTroubleTest.java similarity index 98% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/ParrotTroubleTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/ParrotTroubleTest.java index 2774b82..2e81918 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/ParrotTroubleTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/ParrotTroubleTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/PosNegTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/PosNegTest.java similarity index 98% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/PosNegTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/PosNegTest.java index 6c348c8..db94dc1 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/PosNegTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/PosNegTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SleepInTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/SleepInTest.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SleepInTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/SleepInTest.java index 81a8ab5..e0c9c15 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SleepInTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/SleepInTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartHiTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StartHiTest.java similarity index 94% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartHiTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StartHiTest.java index 95c9be2..5102bcf 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartHiTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StartHiTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartOzTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StartOzTest.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartOzTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StartOzTest.java index e1f68ed..2a91d68 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartOzTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StartOzTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StringETest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StringETest.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StringETest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StringETest.java index c2c0181..4b1523e 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StringETest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/StringETest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SumDoubleTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/SumDoubleTest.java similarity index 95% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SumDoubleTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/SumDoubleTest.java index c942e95..2aa7176 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SumDoubleTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup1/SumDoubleTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup1; +package io.thoughtcode.java.codingbat.warmup1; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/AltPairsTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/AltPairsTest.java similarity index 94% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/AltPairsTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/AltPairsTest.java index c24b486..70d44bc 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/AltPairsTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/AltPairsTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array123Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Array123Test.java similarity index 98% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array123Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Array123Test.java index 455104b..dfce5e1 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array123Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Array123Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array667Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Array667Test.java similarity index 99% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array667Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Array667Test.java index ba08db5..f610ffb 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array667Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Array667Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/ArrayCount9Test.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/ArrayCount9Test.java index d4fea21..2270f9b 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/ArrayCount9Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/ArrayFront9Test.java similarity index 99% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/ArrayFront9Test.java index 85d1a55..4beeb19 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/ArrayFront9Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/CountXxTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/CountXxTest.java similarity index 77% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/CountXxTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/CountXxTest.java index 97b3958..4c5537f 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/CountXxTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/CountXxTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; @@ -22,7 +22,7 @@ void shouldReturnZeroWhenStringIsNull() { final int expected = 0; - final int actual = fixture.countXX(str); + final int actual = fixture.countXxValues(str); assertThat(actual).isEqualTo(expected); } @@ -34,7 +34,7 @@ void shouldReturnZeroWhenStringIsEmpty() { final int expected = 0; - final int actual = fixture.countXX(str); + final int actual = fixture.countXxValues(str); assertThat(actual).isEqualTo(expected); } @@ -46,7 +46,7 @@ void shouldReturnZeroWhenStringIsNotEmptyAndNoOccurrence() { final int expected = 0; - final int actual = fixture.countXX(str); + final int actual = fixture.countXxValues(str); assertThat(actual).isEqualTo(expected); } @@ -58,7 +58,7 @@ void shouldReturnCountOneWhenStringIsNotEmptyAndSingleOccurrence() { final int expected = 1; - final int actual = fixture.countXX(str); + final int actual = fixture.countXxValues(str); assertThat(actual).isEqualTo(expected); } @@ -70,7 +70,7 @@ void shouldReturnCountOneWhenStringIsNotEmptyAndMultipleOccurrenceNonOverlapping final int expected = 2; - final int actual = fixture.countXX(str); + final int actual = fixture.countXxValues(str); assertThat(actual).isEqualTo(expected); } @@ -82,7 +82,7 @@ void shouldReturnCountOneWhenStringIsNotEmptyAndMultipleOccurrenceOverlapping() final int expected = 3; - final int actual = fixture.countXX(str); + final int actual = fixture.countXxValues(str); assertThat(actual).isEqualTo(expected); } diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/DoubleXTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/DoubleXTest.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/DoubleXTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/DoubleXTest.java index 8a8ca12..d8e2ec0 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/DoubleXTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/DoubleXTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/FrontTimesTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/FrontTimesTest.java similarity index 94% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/FrontTimesTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/FrontTimesTest.java index ba7b53a..f3d9da1 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/FrontTimesTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/FrontTimesTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Has271Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Has271Test.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Has271Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Has271Test.java index f224015..cb13344 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Has271Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Has271Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Last2Test.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Last2Test.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Last2Test.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Last2Test.java index fb1f7be..ecddbed 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Last2Test.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/Last2Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/NoTriplesTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/NoTriplesTest.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/NoTriplesTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/NoTriplesTest.java index 53a7aac..778832a 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/NoTriplesTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/NoTriplesTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; import static org.assertj.core.api.Assertions.assertThat; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringBitsTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringBitsTest.java similarity index 92% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringBitsTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringBitsTest.java index 04cc880..d98abff 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringBitsTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringBitsTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringMatchTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringMatchTest.java similarity index 94% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringMatchTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringMatchTest.java index 24ce6ed..f222633 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringMatchTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringMatchTest.java @@ -1,12 +1,12 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import io.sampadadubey.java.common.NumberConstants; +import io.thoughtcode.java.common.NumberConstants; class StringMatchTest { diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringSplosionTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringSplosionTest.java similarity index 92% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringSplosionTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringSplosionTest.java index d834812..43505dc 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringSplosionTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringSplosionTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringTimesTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringTimesTest.java similarity index 92% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringTimesTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringTimesTest.java index 0e89c13..3b8abac 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringTimesTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringTimesTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringXTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringXTest.java similarity index 97% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringXTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringXTest.java index dff8abb..b467569 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringXTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringXTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringYakTest.java b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringYakTest.java similarity index 96% rename from codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringYakTest.java rename to codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringYakTest.java index 70abeeb..ba4d53a 100644 --- a/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringYakTest.java +++ b/codingbat/src/test/java/io/thoughtcode/java/codingbat/warmup2/StringYakTest.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.codingbat.warmup2; +package io.thoughtcode.java.codingbat.warmup2; -import static io.sampadadubey.java.common.StringConstants.EMPTY; +import static io.thoughtcode.java.common.StringConstants.EMPTY; import static org.assertj.core.api.Assertions.assertThat; import org.junit.jupiter.api.BeforeEach; diff --git a/codingbat/target/jacoco.exec b/codingbat/target/jacoco.exec deleted file mode 100644 index 7285976..0000000 Binary files a/codingbat/target/jacoco.exec and /dev/null differ diff --git a/codingbat/target/maven-archiver/pom.properties b/codingbat/target/maven-archiver/pom.properties deleted file mode 100644 index e75a412..0000000 --- a/codingbat/target/maven-archiver/pom.properties +++ /dev/null @@ -1,3 +0,0 @@ -artifactId=codingbat -groupId=io.sampadadubey.java -version=1.0 diff --git a/codingbat/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/codingbat/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 24641d8..0000000 --- a/codingbat/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,48 +0,0 @@ -io/sampadadubey/java/codingbat/warmup2/StringTimes.class -io/sampadadubey/java/codingbat/warmup1/LastDigit.class -io/sampadadubey/java/codingbat/warmup1/Front3.class -io/sampadadubey/java/codingbat/warmup2/CountXX.class -io/sampadadubey/java/codingbat/warmup1/PosNeg.class -io/sampadadubey/java/codingbat/warmup1/Or35.class -io/sampadadubey/java/codingbat/warmup2/DoubleX.class -io/sampadadubey/java/codingbat/warmup2/StringYak.class -io/sampadadubey/java/codingbat/warmup1/HasTeen.class -io/sampadadubey/java/codingbat/warmup1/Max1020.class -io/sampadadubey/java/codingbat/warmup1/MixStart.class -io/sampadadubey/java/codingbat/warmup1/StringE.class -io/sampadadubey/java/codingbat/warmup1/In1020.class -io/sampadadubey/java/codingbat/warmup2/FrontTimes.class -io/sampadadubey/java/codingbat/warmup2/StringMatch.class -io/sampadadubey/java/codingbat/warmup1/Close10.class -io/sampadadubey/java/codingbat/warmup1/Front22.class -io/sampadadubey/java/codingbat/warmup1/EndUp.class -io/sampadadubey/java/codingbat/warmup2/StringBits.class -io/sampadadubey/java/codingbat/warmup1/MissingChar.class -io/sampadadubey/java/codingbat/warmup2/NoTriples.class -io/sampadadubey/java/codingbat/warmup1/IcyHot.class -io/sampadadubey/java/codingbat/warmup1/NotString.class -io/sampadadubey/java/codingbat/warmup1/SleepIn.class -io/sampadadubey/java/codingbat/warmup1/ParrotTrouble.class -io/sampadadubey/java/codingbat/warmup1/DelDel.class -io/sampadadubey/java/codingbat/warmup1/FrontBack.class -io/sampadadubey/java/codingbat/warmup2/Array667.class -io/sampadadubey/java/codingbat/warmup1/StartHi.class -io/sampadadubey/java/codingbat/warmup1/SumDouble.class -io/sampadadubey/java/codingbat/warmup1/In3050.class -io/sampadadubey/java/codingbat/warmup1/StartOz.class -io/sampadadubey/java/codingbat/warmup1/IntMax.class -io/sampadadubey/java/codingbat/warmup1/MonkeyTrouble.class -io/sampadadubey/java/codingbat/warmup2/StringSplosion.class -io/sampadadubey/java/codingbat/warmup2/Has271.class -io/sampadadubey/java/codingbat/warmup2/StringX.class -io/sampadadubey/java/codingbat/warmup2/AltPairs.class -io/sampadadubey/java/codingbat/warmup2/ArrayCount9.class -io/sampadadubey/java/codingbat/warmup2/Last2.class -io/sampadadubey/java/codingbat/warmup1/BackAround.class -io/sampadadubey/java/codingbat/warmup1/NearHundred.class -io/sampadadubey/java/codingbat/warmup1/Makes10.class -io/sampadadubey/java/codingbat/warmup1/LoneTeen.class -io/sampadadubey/java/codingbat/warmup2/Array123.class -io/sampadadubey/java/codingbat/warmup2/ArrayFront9.class -io/sampadadubey/java/codingbat/warmup1/Diff21.class -io/sampadadubey/java/codingbat/warmup1/EveryNth.class diff --git a/codingbat/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/codingbat/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index eddcf6f..0000000 --- a/codingbat/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,48 +0,0 @@ -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringMatch.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringYak.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Max1020.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/DoubleX.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/NoTriples.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/FrontTimes.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IntMax.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringSplosion.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NearHundred.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Last2.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartOz.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StartHi.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Makes10.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EndUp.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringX.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/NotString.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SleepIn.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/CountXX.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/PosNeg.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/StringE.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/BackAround.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/IcyHot.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Or35.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Diff21.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LastDigit.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front3.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTrouble.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array667.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/ParrotTrouble.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/HasTeen.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MixStart.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringBits.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In1020.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/In3050.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/LoneTeen.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/AltPairs.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/StringTimes.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Front22.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/DelDel.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/SumDouble.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/EveryNth.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Array123.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/MissingChar.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup2/Has271.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/Close10.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/main/java/io/sampadadubey/java/codingbat/warmup1/FrontBack.java diff --git a/codingbat/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/codingbat/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst deleted file mode 100644 index 119aa60..0000000 --- a/codingbat/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ /dev/null @@ -1,48 +0,0 @@ -io/sampadadubey/java/codingbat/warmup1/EveryNthTest.class -io/sampadadubey/java/codingbat/warmup1/SumDoubleTest.class -io/sampadadubey/java/codingbat/warmup1/MixStartTest.class -io/sampadadubey/java/codingbat/warmup2/DoubleXTest.class -io/sampadadubey/java/codingbat/warmup1/DelDelTest.class -io/sampadadubey/java/codingbat/warmup2/StringMatchTest.class -io/sampadadubey/java/codingbat/warmup2/StringYakTest.class -io/sampadadubey/java/codingbat/warmup1/Or35Test.class -io/sampadadubey/java/codingbat/warmup1/PosNegTest.class -io/sampadadubey/java/codingbat/warmup2/Last2Test.class -io/sampadadubey/java/codingbat/warmup1/StartOzTest.class -io/sampadadubey/java/codingbat/warmup1/In1020Test.class -io/sampadadubey/java/codingbat/warmup1/StartHiTest.class -io/sampadadubey/java/codingbat/warmup2/AltPairsTest.class -io/sampadadubey/java/codingbat/warmup1/Makes10Test.class -io/sampadadubey/java/codingbat/warmup2/Has271Test.class -io/sampadadubey/java/codingbat/warmup2/StringBitsTest.class -io/sampadadubey/java/codingbat/warmup1/IcyHotTest.class -io/sampadadubey/java/codingbat/warmup2/Array123Test.class -io/sampadadubey/java/codingbat/warmup2/FrontTimesTest.class -io/sampadadubey/java/codingbat/warmup2/ArrayCount9Test.class -io/sampadadubey/java/codingbat/warmup1/Close10Test.class -io/sampadadubey/java/codingbat/warmup2/ArrayFront9Test.class -io/sampadadubey/java/codingbat/warmup1/FrontBackTest.class -io/sampadadubey/java/codingbat/warmup2/CountXxTest.class -io/sampadadubey/java/codingbat/warmup2/NoTriplesTest.class -io/sampadadubey/java/codingbat/warmup1/ParrotTroubleTest.class -io/sampadadubey/java/codingbat/warmup1/In3050Test.class -io/sampadadubey/java/codingbat/warmup1/HasTeenTest.class -io/sampadadubey/java/codingbat/warmup1/MonkeyTroubleTest.class -io/sampadadubey/java/codingbat/warmup1/NotStringTest.class -io/sampadadubey/java/codingbat/warmup1/LastDigitTest.class -io/sampadadubey/java/codingbat/warmup1/BackAroundTest.class -io/sampadadubey/java/codingbat/warmup1/MissingCharTest.class -io/sampadadubey/java/codingbat/warmup2/Array667Test.class -io/sampadadubey/java/codingbat/warmup1/Front22Test.class -io/sampadadubey/java/codingbat/warmup1/LoneTeenTest.class -io/sampadadubey/java/codingbat/warmup1/NearHundredTest.class -io/sampadadubey/java/codingbat/warmup1/SleepInTest.class -io/sampadadubey/java/codingbat/warmup1/IntMaxTest.class -io/sampadadubey/java/codingbat/warmup1/EndUpTest.class -io/sampadadubey/java/codingbat/warmup1/StringETest.class -io/sampadadubey/java/codingbat/warmup1/Front3Test.class -io/sampadadubey/java/codingbat/warmup2/StringTimesTest.class -io/sampadadubey/java/codingbat/warmup1/Max1020Test.class -io/sampadadubey/java/codingbat/warmup2/StringXTest.class -io/sampadadubey/java/codingbat/warmup1/Diff21Test.class -io/sampadadubey/java/codingbat/warmup2/StringSplosionTest.class diff --git a/codingbat/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/codingbat/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst deleted file mode 100644 index f31bf9c..0000000 --- a/codingbat/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ /dev/null @@ -1,48 +0,0 @@ -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/ParrotTroubleTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/DelDelTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Makes10Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/NoTriplesTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In1020Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Close10Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Diff21Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SleepInTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MonkeyTroubleTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringYakTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/BackAroundTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Max1020Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringTimesTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/AltPairsTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MissingCharTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EveryNthTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LastDigitTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartOzTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/CountXxTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StartHiTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayFront9Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Has271Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringSplosionTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/EndUpTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front3Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/SumDoubleTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IntMaxTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/MixStartTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/IcyHotTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/PosNegTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringXTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/HasTeenTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Or35Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/In3050Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array667Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/ArrayCount9Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/StringETest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Last2Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/FrontTimesTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/DoubleXTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringBitsTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NearHundredTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/Array123Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/Front22Test.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/FrontBackTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/NotStringTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup1/LoneTeenTest.java -/home/codejournal/sampada-dubey/git/mastering-java/codingbat/src/test/java/io/sampadadubey/java/codingbat/warmup2/StringMatchTest.java diff --git a/codingbat/target/site/jacoco/jacoco.xml b/codingbat/target/site/jacoco/jacoco.xml deleted file mode 100644 index 5a445c1..0000000 --- a/codingbat/target/site/jacoco/jacoco.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.BackAroundTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.BackAroundTest.xml deleted file mode 100644 index 492553e..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.BackAroundTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Close10Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Close10Test.xml deleted file mode 100644 index 1fe1970..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Close10Test.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.DelDelTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.DelDelTest.xml deleted file mode 100644 index cf38657..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.DelDelTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Diff21Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Diff21Test.xml deleted file mode 100644 index 6fc1d2f..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Diff21Test.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.EndUpTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.EndUpTest.xml deleted file mode 100644 index 38ce8e8..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.EndUpTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.EveryNthTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.EveryNthTest.xml deleted file mode 100644 index 1c19592..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.EveryNthTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Front22Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Front22Test.xml deleted file mode 100644 index 9f7cfd6..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Front22Test.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Front3Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Front3Test.xml deleted file mode 100644 index 22b253b..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Front3Test.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.FrontBackTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.FrontBackTest.xml deleted file mode 100644 index 67b0e67..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.FrontBackTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.HasTeenTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.HasTeenTest.xml deleted file mode 100644 index 4f17ef2..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.HasTeenTest.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.IcyHotTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.IcyHotTest.xml deleted file mode 100644 index f1a00f3..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.IcyHotTest.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.In1020Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.In1020Test.xml deleted file mode 100644 index b35f526..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.In1020Test.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.In3050Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.In3050Test.xml deleted file mode 100644 index a95b2aa..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.In3050Test.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.IntMaxTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.IntMaxTest.xml deleted file mode 100644 index a0607dc..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.IntMaxTest.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.LastDigitTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.LastDigitTest.xml deleted file mode 100644 index dae6ead..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.LastDigitTest.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.LoneTeenTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.LoneTeenTest.xml deleted file mode 100644 index 92b5bb6..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.LoneTeenTest.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Makes10Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Makes10Test.xml deleted file mode 100644 index 12cd13d..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Makes10Test.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Max1020Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Max1020Test.xml deleted file mode 100644 index 3d7ed93..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Max1020Test.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MissingCharTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MissingCharTest.xml deleted file mode 100644 index a94e2b8..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MissingCharTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MixStartTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MixStartTest.xml deleted file mode 100644 index 2e05d4f..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MixStartTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest.xml deleted file mode 100644 index bb8e16b..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.NearHundredTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.NearHundredTest.xml deleted file mode 100644 index 3fa91e0..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.NearHundredTest.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.NotStringTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.NotStringTest.xml deleted file mode 100644 index 8ce3bde..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.NotStringTest.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Or35Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Or35Test.xml deleted file mode 100644 index 4d9be49..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.Or35Test.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest.xml deleted file mode 100644 index 5d0dfd4..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.PosNegTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.PosNegTest.xml deleted file mode 100644 index 591e750..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.PosNegTest.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.SleepInTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.SleepInTest.xml deleted file mode 100644 index 7b53b41..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.SleepInTest.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StartHiTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StartHiTest.xml deleted file mode 100644 index 55d9643..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StartHiTest.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StartOzTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StartOzTest.xml deleted file mode 100644 index 8f5e007..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StartOzTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StringETest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StringETest.xml deleted file mode 100644 index c93b20f..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.StringETest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.SumDoubleTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.SumDoubleTest.xml deleted file mode 100644 index d85c796..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup1.SumDoubleTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.AltPairsTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.AltPairsTest.xml deleted file mode 100644 index b7cdf28..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.AltPairsTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Array123Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Array123Test.xml deleted file mode 100644 index 37d8ba4..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Array123Test.xml +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Array667Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Array667Test.xml deleted file mode 100644 index 43c743a..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Array667Test.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test.xml deleted file mode 100644 index 03db271..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test.xml deleted file mode 100644 index 1c8b6ac..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.CountXxTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.CountXxTest.xml deleted file mode 100644 index 49c02be..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.CountXxTest.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.DoubleXTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.DoubleXTest.xml deleted file mode 100644 index 96fb0d4..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.DoubleXTest.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.FrontTimesTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.FrontTimesTest.xml deleted file mode 100644 index ba483ab..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.FrontTimesTest.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Has271Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Has271Test.xml deleted file mode 100644 index c2333e8..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Has271Test.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Last2Test.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Last2Test.xml deleted file mode 100644 index 2509f1d..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.Last2Test.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.NoTriplesTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.NoTriplesTest.xml deleted file mode 100644 index 708567c..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.NoTriplesTest.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringBitsTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringBitsTest.xml deleted file mode 100644 index bdbe2ef..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringBitsTest.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringMatchTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringMatchTest.xml deleted file mode 100644 index a9b26b9..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringMatchTest.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringSplosionTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringSplosionTest.xml deleted file mode 100644 index 9d59842..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringSplosionTest.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringTimesTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringTimesTest.xml deleted file mode 100644 index 3534753..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringTimesTest.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringXTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringXTest.xml deleted file mode 100644 index e304b1b..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringXTest.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringYakTest.xml b/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringYakTest.xml deleted file mode 100644 index dfe8623..0000000 --- a/codingbat/target/surefire-reports/TEST-io.sampadadubey.java.codingbat.warmup2.StringYakTest.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.BackAroundTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.BackAroundTest.txt deleted file mode 100644 index 7c1210d..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.BackAroundTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.BackAroundTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 s - in io.sampadadubey.java.codingbat.warmup1.BackAroundTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Close10Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Close10Test.txt deleted file mode 100644 index ac63d8e..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Close10Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.Close10Test -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.Close10Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.DelDelTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.DelDelTest.txt deleted file mode 100644 index 8e60215..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.DelDelTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.DelDelTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s - in io.sampadadubey.java.codingbat.warmup1.DelDelTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Diff21Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Diff21Test.txt deleted file mode 100644 index 1e4846c..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Diff21Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.Diff21Test -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.Diff21Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.EndUpTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.EndUpTest.txt deleted file mode 100644 index f5c548d..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.EndUpTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.EndUpTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 s - in io.sampadadubey.java.codingbat.warmup1.EndUpTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.EveryNthTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.EveryNthTest.txt deleted file mode 100644 index 3a0207b..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.EveryNthTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.EveryNthTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.EveryNthTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Front22Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Front22Test.txt deleted file mode 100644 index ec3904c..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Front22Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.Front22Test -------------------------------------------------------------------------------- -Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup1.Front22Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Front3Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Front3Test.txt deleted file mode 100644 index cf72753..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Front3Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.Front3Test -------------------------------------------------------------------------------- -Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 s - in io.sampadadubey.java.codingbat.warmup1.Front3Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.FrontBackTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.FrontBackTest.txt deleted file mode 100644 index 91a2d04..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.FrontBackTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.FrontBackTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s - in io.sampadadubey.java.codingbat.warmup1.FrontBackTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.HasTeenTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.HasTeenTest.txt deleted file mode 100644 index a5dddbb..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.HasTeenTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.HasTeenTest -------------------------------------------------------------------------------- -Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 s - in io.sampadadubey.java.codingbat.warmup1.HasTeenTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.IcyHotTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.IcyHotTest.txt deleted file mode 100644 index eb549b3..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.IcyHotTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.IcyHotTest -------------------------------------------------------------------------------- -Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.02 s - in io.sampadadubey.java.codingbat.warmup1.IcyHotTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.In1020Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.In1020Test.txt deleted file mode 100644 index 5adee01..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.In1020Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.In1020Test -------------------------------------------------------------------------------- -Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 s - in io.sampadadubey.java.codingbat.warmup1.In1020Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.In3050Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.In3050Test.txt deleted file mode 100644 index e12148f..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.In3050Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.In3050Test -------------------------------------------------------------------------------- -Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s - in io.sampadadubey.java.codingbat.warmup1.In3050Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.IntMaxTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.IntMaxTest.txt deleted file mode 100644 index b02b27b..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.IntMaxTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.IntMaxTest -------------------------------------------------------------------------------- -Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup1.IntMaxTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.LastDigitTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.LastDigitTest.txt deleted file mode 100644 index 1bc24e0..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.LastDigitTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.LastDigitTest -------------------------------------------------------------------------------- -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.LastDigitTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.LoneTeenTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.LoneTeenTest.txt deleted file mode 100644 index 4b06691..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.LoneTeenTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.LoneTeenTest -------------------------------------------------------------------------------- -Tests run: 25, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.022 s - in io.sampadadubey.java.codingbat.warmup1.LoneTeenTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Makes10Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Makes10Test.txt deleted file mode 100644 index 8ab355f..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Makes10Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.Makes10Test -------------------------------------------------------------------------------- -Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.Makes10Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Max1020Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Max1020Test.txt deleted file mode 100644 index 8ad361b..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Max1020Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.Max1020Test -------------------------------------------------------------------------------- -Tests run: 25, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.022 s - in io.sampadadubey.java.codingbat.warmup1.Max1020Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MissingCharTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MissingCharTest.txt deleted file mode 100644 index 4ccaa2b..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MissingCharTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.MissingCharTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in io.sampadadubey.java.codingbat.warmup1.MissingCharTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MixStartTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MixStartTest.txt deleted file mode 100644 index 92fe5fd..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MixStartTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.MixStartTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.MixStartTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest.txt deleted file mode 100644 index 9a03d35..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest -------------------------------------------------------------------------------- -Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.MonkeyTroubleTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.NearHundredTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.NearHundredTest.txt deleted file mode 100644 index d3a95c4..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.NearHundredTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.NearHundredTest -------------------------------------------------------------------------------- -Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 s - in io.sampadadubey.java.codingbat.warmup1.NearHundredTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.NotStringTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.NotStringTest.txt deleted file mode 100644 index e35a995..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.NotStringTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.NotStringTest -------------------------------------------------------------------------------- -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 s - in io.sampadadubey.java.codingbat.warmup1.NotStringTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Or35Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Or35Test.txt deleted file mode 100644 index f6db936..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.Or35Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.Or35Test -------------------------------------------------------------------------------- -Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s - in io.sampadadubey.java.codingbat.warmup1.Or35Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest.txt deleted file mode 100644 index 09775ec..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest -------------------------------------------------------------------------------- -Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup1.ParrotTroubleTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.PosNegTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.PosNegTest.txt deleted file mode 100644 index 87bbfc8..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.PosNegTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.PosNegTest -------------------------------------------------------------------------------- -Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup1.PosNegTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.SleepInTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.SleepInTest.txt deleted file mode 100644 index c274759..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.SleepInTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.SleepInTest -------------------------------------------------------------------------------- -Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.SleepInTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StartHiTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StartHiTest.txt deleted file mode 100644 index fe84cc7..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StartHiTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.StartHiTest -------------------------------------------------------------------------------- -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 s - in io.sampadadubey.java.codingbat.warmup1.StartHiTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StartOzTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StartOzTest.txt deleted file mode 100644 index 6b3bfdc..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StartOzTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.StartOzTest -------------------------------------------------------------------------------- -Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s - in io.sampadadubey.java.codingbat.warmup1.StartOzTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StringETest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StringETest.txt deleted file mode 100644 index ffe1cd0..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.StringETest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.StringETest -------------------------------------------------------------------------------- -Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup1.StringETest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.SumDoubleTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.SumDoubleTest.txt deleted file mode 100644 index e1b5477..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup1.SumDoubleTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup1.SumDoubleTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in io.sampadadubey.java.codingbat.warmup1.SumDoubleTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.AltPairsTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.AltPairsTest.txt deleted file mode 100644 index fec90ec..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.AltPairsTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.AltPairsTest -------------------------------------------------------------------------------- -Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 s - in io.sampadadubey.java.codingbat.warmup2.AltPairsTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Array123Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Array123Test.txt deleted file mode 100644 index 6d9fa18..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Array123Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.Array123Test -------------------------------------------------------------------------------- -Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.021 s - in io.sampadadubey.java.codingbat.warmup2.Array123Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Array667Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Array667Test.txt deleted file mode 100644 index 8a25e7c..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Array667Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.Array667Test -------------------------------------------------------------------------------- -Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.028 s - in io.sampadadubey.java.codingbat.warmup2.Array667Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test.txt deleted file mode 100644 index 4968231..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test -------------------------------------------------------------------------------- -Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s - in io.sampadadubey.java.codingbat.warmup2.ArrayCount9Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test.txt deleted file mode 100644 index e65b6eb..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test -------------------------------------------------------------------------------- -Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s - in io.sampadadubey.java.codingbat.warmup2.ArrayFront9Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.CountXxTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.CountXxTest.txt deleted file mode 100644 index 3380033..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.CountXxTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.CountXxTest -------------------------------------------------------------------------------- -Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s - in io.sampadadubey.java.codingbat.warmup2.CountXxTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.DoubleXTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.DoubleXTest.txt deleted file mode 100644 index 88ca24d..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.DoubleXTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.DoubleXTest -------------------------------------------------------------------------------- -Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s - in io.sampadadubey.java.codingbat.warmup2.DoubleXTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.FrontTimesTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.FrontTimesTest.txt deleted file mode 100644 index 88374a3..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.FrontTimesTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.FrontTimesTest -------------------------------------------------------------------------------- -Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.007 s - in io.sampadadubey.java.codingbat.warmup2.FrontTimesTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Has271Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Has271Test.txt deleted file mode 100644 index fce86a6..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Has271Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.Has271Test -------------------------------------------------------------------------------- -Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 s - in io.sampadadubey.java.codingbat.warmup2.Has271Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Last2Test.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Last2Test.txt deleted file mode 100644 index 6ed9101..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.Last2Test.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.Last2Test -------------------------------------------------------------------------------- -Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 s - in io.sampadadubey.java.codingbat.warmup2.Last2Test diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.NoTriplesTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.NoTriplesTest.txt deleted file mode 100644 index 9881994..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.NoTriplesTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.NoTriplesTest -------------------------------------------------------------------------------- -Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 s - in io.sampadadubey.java.codingbat.warmup2.NoTriplesTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringBitsTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringBitsTest.txt deleted file mode 100644 index fcfb67b..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringBitsTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.StringBitsTest -------------------------------------------------------------------------------- -Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s - in io.sampadadubey.java.codingbat.warmup2.StringBitsTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringMatchTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringMatchTest.txt deleted file mode 100644 index 378883f..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringMatchTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.StringMatchTest -------------------------------------------------------------------------------- -Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup2.StringMatchTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringSplosionTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringSplosionTest.txt deleted file mode 100644 index 23cba03..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringSplosionTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.StringSplosionTest -------------------------------------------------------------------------------- -Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup2.StringSplosionTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringTimesTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringTimesTest.txt deleted file mode 100644 index 4619018..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringTimesTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.StringTimesTest -------------------------------------------------------------------------------- -Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s - in io.sampadadubey.java.codingbat.warmup2.StringTimesTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringXTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringXTest.txt deleted file mode 100644 index e254b4d..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringXTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.StringXTest -------------------------------------------------------------------------------- -Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.017 s - in io.sampadadubey.java.codingbat.warmup2.StringXTest diff --git a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringYakTest.txt b/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringYakTest.txt deleted file mode 100644 index d58c616..0000000 --- a/codingbat/target/surefire-reports/io.sampadadubey.java.codingbat.warmup2.StringYakTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.codingbat.warmup2.StringYakTest -------------------------------------------------------------------------------- -Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.155 s - in io.sampadadubey.java.codingbat.warmup2.StringYakTest diff --git a/common/pom.xml b/common/pom.xml index 8c08d57..3f95814 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -4,7 +4,7 @@ 4.0.0 - io.sampadadubey.java + io.thoughtcode.java parent 1.0 .. diff --git a/common/src/main/java/io/sampadadubey/java/common/NumberConstants.java b/common/src/main/java/io/thoughtcode/java/common/NumberConstants.java similarity index 95% rename from common/src/main/java/io/sampadadubey/java/common/NumberConstants.java rename to common/src/main/java/io/thoughtcode/java/common/NumberConstants.java index 9bd841e..8d75734 100644 --- a/common/src/main/java/io/sampadadubey/java/common/NumberConstants.java +++ b/common/src/main/java/io/thoughtcode/java/common/NumberConstants.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.common; +package io.thoughtcode.java.common; public final class NumberConstants { diff --git a/common/src/main/java/io/sampadadubey/java/common/StringConstants.java b/common/src/main/java/io/thoughtcode/java/common/StringConstants.java similarity index 76% rename from common/src/main/java/io/sampadadubey/java/common/StringConstants.java rename to common/src/main/java/io/thoughtcode/java/common/StringConstants.java index 2951e3b..3648bde 100644 --- a/common/src/main/java/io/sampadadubey/java/common/StringConstants.java +++ b/common/src/main/java/io/thoughtcode/java/common/StringConstants.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.common; +package io.thoughtcode.java.common; public final class StringConstants { diff --git a/common/src/test/java/io/sampadadubey/java/common/NumberConstantsTest.java b/common/src/test/java/io/thoughtcode/java/common/NumberConstantsTest.java similarity index 94% rename from common/src/test/java/io/sampadadubey/java/common/NumberConstantsTest.java rename to common/src/test/java/io/thoughtcode/java/common/NumberConstantsTest.java index ccdeca1..6f4ac4e 100644 --- a/common/src/test/java/io/sampadadubey/java/common/NumberConstantsTest.java +++ b/common/src/test/java/io/thoughtcode/java/common/NumberConstantsTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.common; +package io.thoughtcode.java.common; import static org.assertj.core.api.Assertions.assertThat; @@ -35,7 +35,7 @@ void defaultCase() { values.put(NumberConstants.HUNDRED, "100"); for (final Entry entry : values.entrySet()) { - assertThat(entry.getKey().intValue() == Integer.parseInt(entry.getValue())); + assertThat(entry.getKey().intValue() == Integer.parseInt(entry.getValue())).isTrue(); } } } diff --git a/common/src/test/java/io/sampadadubey/java/common/StringConstantsTest.java b/common/src/test/java/io/thoughtcode/java/common/StringConstantsTest.java similarity index 93% rename from common/src/test/java/io/sampadadubey/java/common/StringConstantsTest.java rename to common/src/test/java/io/thoughtcode/java/common/StringConstantsTest.java index deb4984..2281a64 100644 --- a/common/src/test/java/io/sampadadubey/java/common/StringConstantsTest.java +++ b/common/src/test/java/io/thoughtcode/java/common/StringConstantsTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.common; +package io.thoughtcode.java.common; import static org.assertj.core.api.Assertions.assertThat; diff --git a/common/target/jacoco.exec b/common/target/jacoco.exec deleted file mode 100644 index 59dcd40..0000000 Binary files a/common/target/jacoco.exec and /dev/null differ diff --git a/common/target/maven-archiver/pom.properties b/common/target/maven-archiver/pom.properties deleted file mode 100644 index 9b17ddb..0000000 --- a/common/target/maven-archiver/pom.properties +++ /dev/null @@ -1,3 +0,0 @@ -artifactId=common -groupId=io.sampadadubey.java -version=1.0 diff --git a/common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 78b3ff8..0000000 --- a/common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,2 +0,0 @@ -io/sampadadubey/java/common/NumberConstants.class -io/sampadadubey/java/common/StringConstants.class diff --git a/common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index b4841ba..0000000 --- a/common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,2 +0,0 @@ -/home/codejournal/sampada-dubey/git/mastering-java/common/src/main/java/io/sampadadubey/java/common/StringConstants.java -/home/codejournal/sampada-dubey/git/mastering-java/common/src/main/java/io/sampadadubey/java/common/NumberConstants.java diff --git a/common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst deleted file mode 100644 index 3b748cc..0000000 --- a/common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst +++ /dev/null @@ -1,2 +0,0 @@ -io/sampadadubey/java/common/StringConstantsTest.class -io/sampadadubey/java/common/NumberConstantsTest.class diff --git a/common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst deleted file mode 100644 index 707c33f..0000000 --- a/common/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ /dev/null @@ -1,2 +0,0 @@ -/home/codejournal/sampada-dubey/git/mastering-java/common/src/test/java/io/sampadadubey/java/common/NumberConstantsTest.java -/home/codejournal/sampada-dubey/git/mastering-java/common/src/test/java/io/sampadadubey/java/common/StringConstantsTest.java diff --git a/common/target/site/jacoco/jacoco.xml b/common/target/site/jacoco/jacoco.xml deleted file mode 100644 index 53b6bb6..0000000 --- a/common/target/site/jacoco/jacoco.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/common/target/surefire-reports/TEST-io.sampadadubey.java.common.NumberConstantsTest.xml b/common/target/surefire-reports/TEST-io.sampadadubey.java.common.NumberConstantsTest.xml deleted file mode 100644 index 0e41517..0000000 --- a/common/target/surefire-reports/TEST-io.sampadadubey.java.common.NumberConstantsTest.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/common/target/surefire-reports/TEST-io.sampadadubey.java.common.StringConstantsTest.xml b/common/target/surefire-reports/TEST-io.sampadadubey.java.common.StringConstantsTest.xml deleted file mode 100644 index 879adff..0000000 --- a/common/target/surefire-reports/TEST-io.sampadadubey.java.common.StringConstantsTest.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/common/target/surefire-reports/io.sampadadubey.java.common.NumberConstantsTest.txt b/common/target/surefire-reports/io.sampadadubey.java.common.NumberConstantsTest.txt deleted file mode 100644 index 824e6cf..0000000 --- a/common/target/surefire-reports/io.sampadadubey.java.common.NumberConstantsTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.common.NumberConstantsTest -------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 s - in io.sampadadubey.java.common.NumberConstantsTest diff --git a/common/target/surefire-reports/io.sampadadubey.java.common.StringConstantsTest.txt b/common/target/surefire-reports/io.sampadadubey.java.common.StringConstantsTest.txt deleted file mode 100644 index f0935f7..0000000 --- a/common/target/surefire-reports/io.sampadadubey.java.common.StringConstantsTest.txt +++ /dev/null @@ -1,4 +0,0 @@ -------------------------------------------------------------------------------- -Test set: io.sampadadubey.java.common.StringConstantsTest -------------------------------------------------------------------------------- -Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.128 s - in io.sampadadubey.java.common.StringConstantsTest diff --git a/exercism/pom.xml b/exercism/pom.xml new file mode 100644 index 0000000..cbad84a --- /dev/null +++ b/exercism/pom.xml @@ -0,0 +1,24 @@ + + + + 4.0.0 + + + io.thoughtcode.java + parent + 1.0 + .. + + + exercism + exercism + jar + + + + io.thoughtcode.java + common + ${project.version} + + + diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Acronym.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Acronym.java new file mode 100644 index 0000000..91de2a5 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Acronym.java @@ -0,0 +1,29 @@ +package io.thoughtcode.java.exercism; + +import java.util.Locale; + +public class Acronym { + + private final String phrase; + + Acronym(final String phrase) { + this.phrase = phrase; + } + + String get() { + + final String[] parts = getCleanedPhrase().split(" "); + + final StringBuilder acronym = new StringBuilder(); + + for (final String part : parts) { + acronym.append(part.charAt(0)); + } + + return acronym.toString().toUpperCase(Locale.getDefault()); + } + + private String getCleanedPhrase() { + return phrase.replaceAll("[^A-Za-z]*\\s+[^A-Za-z]*", " ").replaceAll("-", " "); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Anagram.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Anagram.java new file mode 100644 index 0000000..4852301 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Anagram.java @@ -0,0 +1,56 @@ +package io.thoughtcode.java.exercism; + +import static java.util.stream.Collectors.toList; + +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +class Anagram { + + private final String word; + + Anagram(final String word) { + this.word = word; + } + + List match(final List possibles) { + return possibles.stream().filter(this::match).collect(toList()); + } + + private boolean match(final String matchAgainst) { + + final int wordLength = word.length(); + + boolean match = false; + + if (!word.equalsIgnoreCase(matchAgainst) && wordLength == matchAgainst.length()) { + + final String caseInsensitiveWord = word.toLowerCase(Locale.getDefault()); + final String caseInsensitiveMatchAgainst = matchAgainst.toLowerCase(Locale.getDefault()); + + final Map wordCharacters = new HashMap<>(wordLength); + final Map matchCharacters = new HashMap<>(wordLength); + + for (int index = 0; index < wordLength; index++) { + + final Character wordCharacter = caseInsensitiveWord.charAt(index); + final Character matchCharacter = caseInsensitiveMatchAgainst.charAt(index); + + final int wordCharacterCount = wordCharacters.getOrDefault(wordCharacter, 0); + final int matchCharacterCount = matchCharacters.getOrDefault(matchCharacter, 0); + + wordCharacters.put(wordCharacter, wordCharacterCount + 1); + matchCharacters.put(matchCharacter, matchCharacterCount + 1); + } + + match = wordCharacters.keySet() + .stream() + .noneMatch(it -> !matchCharacters.containsKey(it) + || wordCharacters.get(it).equals(matchCharacters.get(it)) != true); + } + + return match; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/AnnalynsInfiltration.java b/exercism/src/main/java/io/thoughtcode/java/exercism/AnnalynsInfiltration.java new file mode 100644 index 0000000..c9e8db7 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/AnnalynsInfiltration.java @@ -0,0 +1,31 @@ +package io.thoughtcode.java.exercism; + +public class AnnalynsInfiltration { + + boolean canFastAttack(final boolean knightIsAwake) { + return !knightIsAwake; + } + + boolean canSpy(final boolean knightIsAwake, final boolean archerIsAwake, + final boolean prisonerIsAwake) { + return knightIsAwake || archerIsAwake || prisonerIsAwake; + } + + boolean canSignalPrisoner(final boolean archerIsAwake, final boolean prisonerIsAwake) { + return !archerIsAwake && prisonerIsAwake; + } + + boolean canFreePrisoner(final boolean knightIsAwake, final boolean archerIsAwake, + final boolean prisonerIsAwake, final boolean petDogIsPresent) { + + boolean result; + + if (petDogIsPresent) { + result = !archerIsAwake; + } else { + result = prisonerIsAwake && !knightIsAwake && !archerIsAwake; + } + + return result; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/ArmstrongNumbers.java b/exercism/src/main/java/io/thoughtcode/java/exercism/ArmstrongNumbers.java new file mode 100644 index 0000000..646ac59 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/ArmstrongNumbers.java @@ -0,0 +1,24 @@ +package io.thoughtcode.java.exercism; + +public class ArmstrongNumbers { + + boolean isArmstrongNumber(final int numberToCheck) { + + final int numberOfDigits = String.valueOf(numberToCheck).length(); + + int number = numberToCheck; + + int numberCalculated = 0; + + while (number != 0) { + + final int currentDigit = number % 10; + + numberCalculated = numberCalculated + (int) Math.pow(currentDigit, numberOfDigits); + + number = number / 10; + } + + return numberToCheck == numberCalculated; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/BirdWatcher.java b/exercism/src/main/java/io/thoughtcode/java/exercism/BirdWatcher.java new file mode 100644 index 0000000..c0119ed --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/BirdWatcher.java @@ -0,0 +1,95 @@ +package io.thoughtcode.java.exercism; + +class BirdWatcher { + + static final int DAYS_IN_WEEK = 7; + + static final int BUSY_DAY_MIN_COUNT = 5; + + private final int[] birdsPerDay; + + public BirdWatcher(final int[] birdsPerDay) { + this.birdsPerDay = birdsPerDay.clone(); + } + + public int[] getLastWeek() { + + final int dayCount = birdsPerDay.length; + + final int[] lastWeekBirdsPerDay; + + if (dayCount <= DAYS_IN_WEEK) { + lastWeekBirdsPerDay = birdsPerDay.clone(); + } else { + + final int multiplier = (dayCount - 1) / DAYS_IN_WEEK; + + final int lastWeekStartIndex = DAYS_IN_WEEK * multiplier; + + lastWeekBirdsPerDay = new int[dayCount - lastWeekStartIndex]; + + int currentIndex = lastWeekStartIndex; + + while (currentIndex < dayCount) { + final int offset = currentIndex - lastWeekStartIndex; + lastWeekBirdsPerDay[offset] = birdsPerDay[currentIndex]; + currentIndex++; + } + } + + return lastWeekBirdsPerDay; + } + + public int getToday() { + final int dayCount = birdsPerDay.length; + return 0 == dayCount ? 0 : birdsPerDay[dayCount - 1]; + } + + public void incrementTodaysCount() { + birdsPerDay[birdsPerDay.length - 1]++; + } + + public boolean hasDayWithoutBirds() { + + final int dayCount = birdsPerDay.length; + + boolean dayWithoutBirds = false; + + for (int dayIndex = 0; dayIndex < dayCount; dayIndex++) { + if (0 == birdsPerDay[dayIndex]) { + dayWithoutBirds = true; + break; + } + } + + return dayWithoutBirds; + } + + public int getCountForFirstDays(final int numberOfDays) { + + final int[] lastWeekBirdsPerDay = getLastWeek(); + + int totalBirds = 0; + + for (int index = 0; index < lastWeekBirdsPerDay.length && index < numberOfDays; index++) { + totalBirds = totalBirds + lastWeekBirdsPerDay[index]; + } + + return totalBirds; + } + + public int getBusyDays() { + + final int dayCount = birdsPerDay.length; + + int totalBusyDays = 0; + + for (int dayIndex = 0; dayIndex < dayCount; dayIndex++) { + if (birdsPerDay[dayIndex] >= BUSY_DAY_MIN_COUNT) { + totalBusyDays++; + } + } + + return totalBusyDays; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/BlackJack.java b/exercism/src/main/java/io/thoughtcode/java/exercism/BlackJack.java new file mode 100644 index 0000000..1017068 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/BlackJack.java @@ -0,0 +1,170 @@ +package io.thoughtcode.java.exercism; + +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + +public class BlackJack { + + static final int SCORE_BLACKJACK = 21; + + static final int SCORE_TWENTY = 20; + + static final int SCORE_SEVENTEEN = 17; + + static final int SCORE_ELEVEN = 11; + + static final int SCORE_SEVEN = 7; + + static final Set HIGH_VALUE_CARDS = new HashSet<>(); + + static { + HIGH_VALUE_CARDS.add(Card.ACE.getValue()); + HIGH_VALUE_CARDS.add(Card.TEN.getValue()); + HIGH_VALUE_CARDS.add(Card.JACK.getValue()); + HIGH_VALUE_CARDS.add(Card.QUEEN.getValue()); + HIGH_VALUE_CARDS.add(Card.KING.getValue()); + } + + public int parseCard(final String card) { + return Card.get(card).getValue(); + } + + public boolean isBlackjack(final String card1, final String card2) { + return parseCard(card1) + parseCard(card2) == SCORE_BLACKJACK; + } + + public String largeHand(final boolean isBlackjack, final int dealerScore) { + + final Decision decision; + + if (isBlackjack) { + if (HIGH_VALUE_CARDS.contains(dealerScore)) { + decision = Decision.STAND; + } else { + decision = Decision.WIN; + } + } else { + // It's not Blackjack, and large-hand scenario (player-score -> 22) + decision = Decision.SPLIT; + } + + return decision.getCode(); + } + + public String smallHand(final int handScore, final int dealerScore) { + + final Decision decision; + + if (handScore >= SCORE_SEVENTEEN) { + decision = Decision.STAND; + } else if (handScore <= SCORE_ELEVEN) { + decision = Decision.HIT; + } else { + if (dealerScore >= SCORE_SEVEN) { + decision = Decision.HIT; + } else { + decision = Decision.STAND; + } + } + + return decision.getCode(); + } + + // FirstTurn returns the semi-optimal decision for the first turn, given the + // cards of the player and the dealer. + // This function is already implemented and does not need to be edited. It pulls + // the other functions together in a + // complete decision tree for the first turn. + public String firstTurn(final String card1, final String card2, final String dealerCard) { + + final int handScore = parseCard(card1) + parseCard(card2); + final int dealerScore = parseCard(dealerCard); + + final String result; + + if (SCORE_TWENTY < handScore) { + result = largeHand(isBlackjack(card1, card2), dealerScore); + } else { + result = smallHand(handScore, dealerScore); + } + + return result; + } +} + +enum Card { + + ACE(11), + + TWO(2), + + THREE(3), + + FOUR(4), + + FIVE(5), + + SIX(6), + + SEVEN(7), + + EIGHT(8), + + NINE(9), + + TEN(10), + + JACK(10), + + QUEEN(10), + + KING(10), + + UNKNOWN(0); + + private int value; + + static Card get(final String cardValueToParse) { + + Card resultCard = null; + + for (final Card card : Card.values()) { + if (card.name().equalsIgnoreCase(cardValueToParse)) { + resultCard = card; + break; + } + } + + return Optional.ofNullable(resultCard).orElse(Card.UNKNOWN); + } + + Card(final int value) { + this.value = value; + } + + public int getValue() { + return value; + } +} + +enum Decision { + + STAND("S"), + + HIT("H"), + + SPLIT("P"), + + WIN("W"); + + private String code; + + Decision(final String code) { + this.code = code; + } + + public String getCode() { + return code; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/CarsAssemble.java b/exercism/src/main/java/io/thoughtcode/java/exercism/CarsAssemble.java new file mode 100644 index 0000000..6e4a935 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/CarsAssemble.java @@ -0,0 +1,58 @@ +package io.thoughtcode.java.exercism; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class CarsAssemble { + + static final double CARS_PER_HOUR = 221.0; + + static final double MINUTES_PER_HOUR = 60.0; + + static final double SPEED_ZERO = 0; + + static final double SPEED_FOUR = 4; + + static final double SPEED_EIGHT = 8; + + static final double SPEED_NINE = 9; + + static final double SUCCESS_RATE_ZERO = 0.0; + + static final double SUCCESS_RATE_HUNDRED = 1.0; + + static final double SUCCESS_RATE_EIGHTY = 0.8; + + static final double SUCCESS_RATE_NINETY = 0.9; + + static final double SUCCESS_RATE_DEFAULT = 0.77; + + public double productionRatePerHour(final int speed) { + final BigDecimal totalCars = BigDecimal.valueOf(CARS_PER_HOUR * speed); + return BigDecimal.valueOf(getSuccessRate(speed)).multiply(totalCars).doubleValue(); + } + + public int workingItemsPerMinute(final int speed) { + final BigDecimal workingItemsPerHour = BigDecimal.valueOf(productionRatePerHour(speed)); + return workingItemsPerHour.divide(BigDecimal.valueOf(MINUTES_PER_HOUR), RoundingMode.FLOOR).intValue(); + } + + private double getSuccessRate(final int speed) { + + final double successRate; + + if (speed <= SPEED_ZERO) { + successRate = SUCCESS_RATE_ZERO; + } else if (speed <= SPEED_FOUR) { + successRate = SUCCESS_RATE_HUNDRED; + } else if (speed <= SPEED_EIGHT) { + successRate = SUCCESS_RATE_NINETY; + } else if (speed == SPEED_NINE) { + successRate = SUCCESS_RATE_EIGHTY; + } else { + successRate = SUCCESS_RATE_DEFAULT; + } + + return successRate; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Darts.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Darts.java new file mode 100644 index 0000000..0bfaf35 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Darts.java @@ -0,0 +1,29 @@ +package io.thoughtcode.java.exercism; + +import io.thoughtcode.java.common.NumberConstants; + +public class Darts { + + private final double hypotenuse; + + Darts(final double xPoint, final double yPoint) { + this.hypotenuse = Math.sqrt(Math.pow(xPoint, 2) + Math.pow(yPoint, 2)); + } + + int score() { + + final int score; + + if (hypotenuse <= NumberConstants.ONE) { + score = NumberConstants.TEN; + } else if (hypotenuse <= NumberConstants.FIVE) { + score = NumberConstants.FIVE; + } else if (hypotenuse <= NumberConstants.TEN) { + score = NumberConstants.ONE; + } else { + score = NumberConstants.ZERO; + } + + return score; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/DifferenceOfSquaresCalculator.java b/exercism/src/main/java/io/thoughtcode/java/exercism/DifferenceOfSquaresCalculator.java new file mode 100644 index 0000000..c3d1776 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/DifferenceOfSquaresCalculator.java @@ -0,0 +1,19 @@ +package io.thoughtcode.java.exercism; + +public class DifferenceOfSquaresCalculator { + + int computeSquareOfSumTo(final int input) { + // Mathematical Formula = [(n x (n + 1)) / 2] ^ 2 + final int sumTo = (input * (input + 1)) / 2; + return (int) Math.pow((double) sumTo, 2.0); + } + + int computeSumOfSquaresTo(final int input) { + // Mathematical Formula = (n x n+1 x 2n+1) / 6 + return (input * (input + 1) * (2 * input + 1)) / 6; + } + + int computeDifferenceOfSquares(final int input) { + return computeSquareOfSumTo(input) - computeSumOfSquaresTo(input); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/DnDCharacter.java b/exercism/src/main/java/io/thoughtcode/java/exercism/DnDCharacter.java new file mode 100644 index 0000000..ac8f23f --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/DnDCharacter.java @@ -0,0 +1,100 @@ +package io.thoughtcode.java.exercism; + +import java.security.SecureRandom; +import java.util.Arrays; + +public class DnDCharacter { + + static final SecureRandom DICE = new SecureRandom(); + + private final int strength; + + private final int dexterity; + + private final int constitution; + + private final int intelligence; + + private final int wisdom; + + private final int charisma; + + static int rollDice() { + final int rolledValue = DICE.nextInt(6); + return rolledValue == 0 ? 1 : rolledValue; + } + + DnDCharacter() { + this.strength = ability(); + this.dexterity = ability(); + this.constitution = ability(); + this.intelligence = ability(); + this.wisdom = ability(); + this.charisma = ability(); + } + + int ability() { + return getSum(getHighestNValues(4, 3)); + } + + int modifier(final int input) { + return (int) Math.floor((input - 10.0) / 2); + } + + int getStrength() { + return strength; + } + + int getDexterity() { + return dexterity; + } + + int getConstitution() { + return constitution; + } + + int getIntelligence() { + return intelligence; + } + + int getWisdom() { + return wisdom; + } + + int getCharisma() { + return charisma; + } + + int getHitpoints() { + return 10 + modifier(constitution); + } + + private int getSum(final int[] values) { + return Arrays.stream(values).sum(); + } + + private int[] getHighestNValues(final int count, final int highestN) { + + final int[] values = getRandomValues(count); + final int[] highestNValues = new int[highestN]; + + Arrays.sort(values); + + for (int index = 0; index < highestN; index++) { + highestNValues[index] = values[values.length - index - 1]; + } + + return highestNValues; + } + + private int[] getRandomValues(final int count) { + + final int[] values = new int[count]; + + for (int index = 0; index < count; index++) { + values[index] = rollDice(); + } + + return values; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/ElonsToyCar.java b/exercism/src/main/java/io/thoughtcode/java/exercism/ElonsToyCar.java new file mode 100644 index 0000000..3873a5c --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/ElonsToyCar.java @@ -0,0 +1,45 @@ +package io.thoughtcode.java.exercism; + +public class ElonsToyCar { + + static final int DRIVE_DISTANCE = 20; + + static final int BATTERY_USAGE = 1; + + private int distance; + + private int battery; + + public static ElonsToyCar buy() { + return new ElonsToyCar(); + } + + ElonsToyCar() { + this.distance = 0; + this.battery = 100; + } + + public String distanceDisplay() { + return String.format("Driven %s meters", distance); + } + + public String batteryDisplay() { + + final String display; + + if (battery == 0) { + display = "Battery empty"; + } else { + display = String.format("Battery at %s%%", battery); + } + + return display; + } + + public void drive() { + if (battery != 0) { + distance = distance + DRIVE_DISTANCE; + battery = battery - BATTERY_USAGE; + } + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/FlattenList.java b/exercism/src/main/java/io/thoughtcode/java/exercism/FlattenList.java new file mode 100644 index 0000000..6176027 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/FlattenList.java @@ -0,0 +1,34 @@ +package io.thoughtcode.java.exercism; + +import java.util.ArrayList; +import java.util.List; + +public class FlattenList { + + @SuppressWarnings("unchecked") + public List flatten(final List list) { + + final List result = new ArrayList<>(); + + int index = 0; + + while (index < list.size()) { + + final Object value = list.get(index); + + index++; + + if (value == null) { + continue; + } + + if (value instanceof List) { + result.addAll(flatten((List) value)); + } else { + result.add(value); + } + } + + return result; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/FootballMatchReports.java b/exercism/src/main/java/io/thoughtcode/java/exercism/FootballMatchReports.java new file mode 100644 index 0000000..fb1cec0 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/FootballMatchReports.java @@ -0,0 +1,60 @@ +package io.thoughtcode.java.exercism; + +import java.util.Optional; + +public final class FootballMatchReports { + + static final int GOALIE = 1; + static final int LEFT_BACK = 2; + static final int CENTER_BACK_ONE = 3; + static final int CENTER_BACK_TWO = 4; + static final int RIGHT_BACK = 5; + static final int LEFT_MIDFIELDER = 6; + static final int CENTER_MIDFIELDER = 7; + static final int RIGHT_MIDFILDER = 8; + static final int LEFT_WING = 9; + static final int STRIKER = 10; + static final int RIGHT_WING = 11; + + public static String onField(final int shirtNum) { + + String description = null; + + switch (shirtNum) { + case GOALIE: + description = "goalie"; + break; + case LEFT_BACK: + description = "left back"; + break; + case CENTER_BACK_ONE: + case CENTER_BACK_TWO: + description = "center back"; + break; + case RIGHT_BACK: + description = "right back"; + break; + case LEFT_MIDFIELDER: + case CENTER_MIDFIELDER: + case RIGHT_MIDFILDER: + description = "midfielder"; + break; + case LEFT_WING: + description = "left wing"; + break; + case STRIKER: + description = "striker"; + break; + case RIGHT_WING: + description = "right wing"; + break; + default: + break; + } + + return Optional.ofNullable(description).orElseThrow(() -> new IllegalArgumentException()); + } + + private FootballMatchReports(){ + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Gigasecond.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Gigasecond.java new file mode 100644 index 0000000..c9df452 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Gigasecond.java @@ -0,0 +1,24 @@ +package io.thoughtcode.java.exercism; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; + +public class Gigasecond { + + static final long ONE_GIGASECONDS = 1_000_000_000L; + + private final LocalDateTime moment; + + public Gigasecond(final LocalDate moment) { + this(moment.atTime(0, 0)); + } + + public Gigasecond(final LocalDateTime moment) { + this.moment = moment.plus(ONE_GIGASECONDS, ChronoUnit.SECONDS); + } + + public LocalDateTime getDateTime() { + return moment; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Grains.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Grains.java new file mode 100644 index 0000000..d1f5868 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Grains.java @@ -0,0 +1,43 @@ +package io.thoughtcode.java.exercism; + +import java.math.BigInteger; +import java.util.HashMap; +import java.util.Map; + +public class Grains { + + static final Map GRAINS_ON_SQUARE = new HashMap<>(); + + static BigInteger totalGrains = BigInteger.ZERO; + + static { + + BigInteger grainOnPosition = BigInteger.ONE; + + for (int position = 1; position <= 64; position++) { + + // Math.pow is not accurate for very big numbers. That is why multiplication on + // BigInteger is required + grainOnPosition = position == 1 ? BigInteger.ONE : grainOnPosition.multiply(BigInteger.TWO); + + // Store the grainOnPosition on the Map + GRAINS_ON_SQUARE.put(position, grainOnPosition); + + // Calculate and store the total Grains + totalGrains = totalGrains.add(grainOnPosition); + } + } + + BigInteger grainsOnSquare(final int square) { + + if (1 <= square && square <= 64) { + return GRAINS_ON_SQUARE.get(square); + } + + throw new IllegalArgumentException("square must be between 1 and 64"); + } + + BigInteger grainsOnBoard() { + return totalGrains; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Greeter.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Greeter.java new file mode 100644 index 0000000..fc939a6 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Greeter.java @@ -0,0 +1,8 @@ +package io.thoughtcode.java.exercism; + +class Greeter { + + String getGreeting() { + return "Hello, World!"; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Hamming.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Hamming.java new file mode 100644 index 0000000..d4b879a --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Hamming.java @@ -0,0 +1,43 @@ +package io.thoughtcode.java.exercism; + +public class Hamming { + + private final String leftStrand; + + private final String rightStrand; + + public Hamming(final String leftStrand, final String rightStrand) { + + if (leftStrand.trim().isEmpty() && !rightStrand.trim().isEmpty()) { + throw new IllegalArgumentException("left strand must not be empty."); + } + + if (rightStrand.trim().isEmpty() && !leftStrand.trim().isEmpty()) { + throw new IllegalArgumentException("right strand must not be empty."); + } + + final int leftStrandLength = leftStrand.length(); + final int rightStrandLength = rightStrand.length(); + + if (leftStrandLength != rightStrandLength) { + throw new IllegalArgumentException("leftStrand and rightStrand must be of equal length."); + } + + this.leftStrand = leftStrand; + this.rightStrand = rightStrand; + + } + + public int getHammingDistance() { + + int hammingDistance = 0; + + for (int index = 0; index < leftStrand.length(); index++) { + if (leftStrand.charAt(index) != rightStrand.charAt(index)) { + hammingDistance++; + } + } + + return hammingDistance; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/IsogramChecker.java b/exercism/src/main/java/io/thoughtcode/java/exercism/IsogramChecker.java new file mode 100644 index 0000000..63f0805 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/IsogramChecker.java @@ -0,0 +1,33 @@ +package io.thoughtcode.java.exercism; + +import java.util.HashSet; +import java.util.Locale; +import java.util.Set; + +class IsogramChecker { + + boolean isIsogram(final String phrase) { + + final char[] characters = phrase.toLowerCase(Locale.getDefault()).toCharArray(); + + final Set alphabets = new HashSet<>(characters.length); + + boolean isogram = true; + + for (int index = 0; index < characters.length; index++) { + + final char currentCharacter = characters[index]; + + if (currentCharacter == ' ' || currentCharacter == '-') { + continue; + } else if (alphabets.contains(currentCharacter)) { + isogram = false; + break; + } else { + alphabets.add(currentCharacter); + } + } + + return isogram; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/LanguageList.java b/exercism/src/main/java/io/thoughtcode/java/exercism/LanguageList.java new file mode 100644 index 0000000..5f13be5 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/LanguageList.java @@ -0,0 +1,48 @@ +package io.thoughtcode.java.exercism; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class LanguageList { + + private final List languages = new ArrayList<>(); + + private final Set excitingLanguages = new HashSet<>(Arrays.asList("Java", "Kotlin")); + + public boolean isEmpty() { + return languages.isEmpty(); + } + + public boolean isNotEmpty() { + return !isEmpty(); + } + + public void addLanguage(final String language) { + if (!containsLanguage(language)) { + languages.add(language); + } + } + + public void removeLanguage(final String language) { + languages.remove(language); + } + + public String firstLanguage() { + return isNotEmpty() ? languages.get(0) : null; + } + + public int count() { + return languages.size(); + } + + public boolean containsLanguage(final String language) { + return languages.contains(language); + } + + public boolean isExciting() { + return languages.stream().anyMatch(excitingLanguages::contains); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Lasagna.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Lasagna.java new file mode 100644 index 0000000..09230a4 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Lasagna.java @@ -0,0 +1,20 @@ +package io.thoughtcode.java.exercism; + +public class Lasagna { + + public int expectedMinutesInOven() { + return 40; + } + + public int remainingMinutesInOven(final int actualMinutesInOver) { + return expectedMinutesInOven() - actualMinutesInOver; + } + + public int preparationTimeInMinutes(final int layersCount) { + return layersCount * 2; + } + + public int totalTimeInMinutes(final int layersCount, final int actualMinutesInOver) { + return preparationTimeInMinutes(layersCount) + actualMinutesInOver; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/LeapYear.java b/exercism/src/main/java/io/thoughtcode/java/exercism/LeapYear.java new file mode 100644 index 0000000..e49172d --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/LeapYear.java @@ -0,0 +1,17 @@ +package io.thoughtcode.java.exercism; + +public class LeapYear { + + boolean isLeapYear(final int year) { + + final boolean leapYear; + + if (year % 100 == 0) { + leapYear = year % 400 == 0; + } else { + leapYear = year % 4 == 0; + } + + return leapYear; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/LogLevels.java b/exercism/src/main/java/io/thoughtcode/java/exercism/LogLevels.java new file mode 100644 index 0000000..1d33f9c --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/LogLevels.java @@ -0,0 +1,30 @@ +package io.thoughtcode.java.exercism; + +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class LogLevels { + + static final int MATCHER_GROUP_LOG_LEVEL = 1; + + static final int MATCHER_GROUP_LOG_MESSAGE = 2; + + static Pattern logPattern = Pattern.compile("\\[([A-Z]+)\\]:(.*)", Pattern.DOTALL); + + public String message(final String logLine) { + final Matcher matcher = logPattern.matcher(logLine); + return matcher.matches() ? matcher.group(MATCHER_GROUP_LOG_MESSAGE).trim() : ""; + } + + public String logLevel(final String logLine) { + final Matcher matcher = logPattern.matcher(logLine); + return matcher.matches() ? matcher.group(MATCHER_GROUP_LOG_LEVEL).trim().toLowerCase(Locale.getDefault()) : ""; + } + + public String reformat(final String logLine) { + final String logLevel = logLevel(logLine); + final String message = message(logLine); + return String.format("%s (%s)", message, logLevel); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Matrix.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Matrix.java new file mode 100644 index 0000000..bfe1bdd --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Matrix.java @@ -0,0 +1,60 @@ +package io.thoughtcode.java.exercism; + +class Matrix { + + private final int rows; + + private final int cols; + + private final int[][] data; + + Matrix(final String matrixAsString) { + + final String[] rowData = matrixAsString.split("\\n"); + final String[] firstColumnData = rowData[0].split(" "); + + this.rows = rowData.length; + this.cols = rowData[0].split(" ").length; + this.data = new int[rowData.length][firstColumnData.length]; + + int row = 0; + String[] currentRowData; + + do { + + currentRowData = rowData[row].split(" "); + + data[row] = new int[cols]; + + for (int col = 0; col < cols; col++) { + data[row][col] = Integer.parseInt(currentRowData[col]); + } + + row++; + + } while (row < rowData.length); + + } + + int[] getRow(final int rowNumber) { + + final int[] rowData = new int[cols]; + + for (int col = 0; col < cols; col++) { + rowData[col] = data[rowNumber - 1][col]; + } + + return rowData; + } + + int[] getColumn(final int columnNumber) { + + final int[] colData = new int[rows]; + + for (int row = 0; row < rows; row++) { + colData[row] = data[row][columnNumber - 1]; + } + + return colData; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/NaturalNumber.java b/exercism/src/main/java/io/thoughtcode/java/exercism/NaturalNumber.java new file mode 100644 index 0000000..ac72ba3 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/NaturalNumber.java @@ -0,0 +1,68 @@ +package io.thoughtcode.java.exercism; + +import io.thoughtcode.java.common.NumberConstants; + +public class NaturalNumber { + + private final int number; + + public NaturalNumber(final int number) { + + if (number <= 0) { + throw new IllegalArgumentException("You must supply a natural number (positive integer)"); + } + + this.number = number; + } + + public Classification getClassification() { + + final Classification result; + + if (number == NumberConstants.ONE) { + result = Classification.DEFICIENT; + } else { + final int sum = getSumOfDivisors(number); + + if (sum < number) { + result = Classification.DEFICIENT; + } else if (sum > number) { + result = Classification.ABUNDANT; + } else { + result = Classification.PERFECT; + } + } + + return result; + } + + private int getSumOfDivisors(final int number) { + + int loopNumber = number; + int sum = 1; + int divisor = 2; + + while (divisor < loopNumber) { + + final double dividendWithDecimal = ((double) number) / divisor; + final double dividendWithoutDecimal = Math.floor(dividendWithDecimal); + + if (dividendWithDecimal == dividendWithoutDecimal) { + loopNumber = (int) dividendWithDecimal; + if (divisor == loopNumber) { + sum = sum + divisor; + } else { + sum = sum + divisor + loopNumber; + } + } + + divisor++; + } + + return sum; + } +} + +enum Classification { + DEFICIENT, PERFECT, ABUNDANT +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/NeedForSpeed.java b/exercism/src/main/java/io/thoughtcode/java/exercism/NeedForSpeed.java new file mode 100644 index 0000000..05324e8 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/NeedForSpeed.java @@ -0,0 +1,74 @@ +package io.thoughtcode.java.exercism; + +class NeedForSpeed { + + static final int INITIAL_BATTERY = 100; + + static final int NITRO_SPEED = 50; + + static final int NITRO_BATTERY_DRAIN = 4; + + private final int speed; + + private final int batteryDrain; + + private int battery; + + private int distanceDriven; + + NeedForSpeed(final int speed, final int batteryDrain) { + this.speed = speed; + this.batteryDrain = batteryDrain; + this.battery = INITIAL_BATTERY; + this.distanceDriven = 0; + } + + public boolean batteryDrained() { + return battery < batteryDrain; + } + + public int getDistanceDriven() { + return distanceDriven; + } + + public void drive() { + if (!batteryDrained()) { + distanceDriven = distanceDriven + speed; + battery = battery - batteryDrain; + } + } + + public static NeedForSpeed nitro() { + return new NeedForSpeed(NITRO_SPEED, NITRO_BATTERY_DRAIN); + } +} + +class RaceTrack { + + private final int distance; + + RaceTrack(final int distance) { + this.distance = distance; + } + + public boolean tryFinishTrack(final NeedForSpeed car) { + + boolean canFinishTrack = isTrackCompleted(car); + + while (!car.batteryDrained()) { + + car.drive(); + + if (isTrackCompleted(car)) { + canFinishTrack = true; + break; + } + } + + return canFinishTrack; + } + + private boolean isTrackCompleted(final NeedForSpeed car) { + return car.getDistanceDriven() >= distance; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/PangramChecker.java b/exercism/src/main/java/io/thoughtcode/java/exercism/PangramChecker.java new file mode 100644 index 0000000..90a6a77 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/PangramChecker.java @@ -0,0 +1,17 @@ +package io.thoughtcode.java.exercism; + +import static java.util.stream.Collectors.toSet; + +import java.util.Arrays; +import java.util.Set; + +public class PangramChecker { + + public boolean isPangram(final String input) { + + final Set characters = Arrays.stream("abcdefghijklmnopqrstuvwxyz".split("")).collect(toSet()); + final Set inputCharacters = Arrays.stream(input.split("")).map(String::toLowerCase).collect(toSet()); + + return inputCharacters.containsAll(characters); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Proverb.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Proverb.java new file mode 100644 index 0000000..8762689 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Proverb.java @@ -0,0 +1,29 @@ +package io.thoughtcode.java.exercism; + +import java.util.Arrays; + +class Proverb { + + private final String[] words; + + Proverb(final String[] words) { + this.words = Arrays.copyOf(words, words.length); + } + + String recite() { + + final StringBuilder result = new StringBuilder(); + + if (words.length > 0) { + + for (int index = 1; index < words.length; index++) { + result.append(String.format("For want of a %s the %s was lost.\n", words[index - 1], words[index])); + } + + result.append(String.format("And all for the want of a %s.\n", words[0])); + } + + return result.toString().trim(); + } + +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/RaindropConverter.java b/exercism/src/main/java/io/thoughtcode/java/exercism/RaindropConverter.java new file mode 100644 index 0000000..e21a974 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/RaindropConverter.java @@ -0,0 +1,39 @@ +package io.thoughtcode.java.exercism; + +public class RaindropConverter { + + static final int THREE = 3; + + static final int FIVE = 5; + + static final int SEVEN = 7; + + static final String PLING = "Pling"; + + static final String PLANG = "Plang"; + + static final String PLONG = "Plong"; + + String convert(final int number) { + + final StringBuilder result = new StringBuilder(); + + if (number % THREE == 0) { + result.append(PLING); + } + + if (number % FIVE == 0) { + result.append(PLANG); + } + + if (number % SEVEN == 0) { + result.append(PLONG); + } + + if (result.length() == 0) { + result.append(String.valueOf(number)); + } + + return result.toString(); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/RemoteControlCarDemo.java b/exercism/src/main/java/io/thoughtcode/java/exercism/RemoteControlCarDemo.java new file mode 100644 index 0000000..832439b --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/RemoteControlCarDemo.java @@ -0,0 +1,70 @@ +package io.thoughtcode.java.exercism; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +public final class RemoteControlCarDemo { + + private RemoteControlCarDemo(){ + } + + public static void race(final RemoteControlCar car) { + car.drive(); + } + + public static List getRankedCars(final ProductionRemoteControlCar prc1, + final ProductionRemoteControlCar prc2) { + return Arrays.asList(prc1, prc2) + .stream() + .sorted((car1, car2) -> car1.getNumberOfVictories() - car2.getNumberOfVictories()) + .collect(Collectors.toList()); + } +} + +interface RemoteControlCar { + void drive(); +} + + +class ExperimentalRemoteControlCar implements RemoteControlCar { + + static final int DEFAULT_DRIVE_DISTANCE = 20; + + private int distanceDriven; + + @Override + public void drive() { + distanceDriven = distanceDriven + DEFAULT_DRIVE_DISTANCE; + } + + public int getDistanceTravelled() { + return distanceDriven; + } +} + +class ProductionRemoteControlCar implements RemoteControlCar { + + private static final int DEFAULT_DRIVE_DISTANCE = 10; + + private int distanceDriven; + + private int numberOfVictories; + + @Override + public void drive() { + distanceDriven = distanceDriven + DEFAULT_DRIVE_DISTANCE; + } + + public int getDistanceTravelled() { + return distanceDriven; + } + + public int getNumberOfVictories() { + return numberOfVictories; + } + + public void setNumberOfVictories(final int numberOfVictories) { + this.numberOfVictories = numberOfVictories; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColor.java b/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColor.java new file mode 100644 index 0000000..c895a51 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColor.java @@ -0,0 +1,12 @@ +package io.thoughtcode.java.exercism; + +public class ResistorColor { + + int colorCode(final String color) { + return ResistorColorCode.getColorCodeByName(color).getColorCode(); + } + + String[] colors() { + return ResistorColorCode.colors(); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColorCode.java b/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColorCode.java new file mode 100644 index 0000000..3397c40 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColorCode.java @@ -0,0 +1,57 @@ +package io.thoughtcode.java.exercism; + +import java.util.Arrays; +import java.util.Locale; + +public enum ResistorColorCode { + + BLACK(0), + + BROWN(1), + + RED(2), + + ORANGE(3), + + YELLOW(4), + + GREEN(5), + + BLUE(6), + + VIOLET(7), + + GREY(8), + + WHITE(9); + + private int colorCode; + + ResistorColorCode(final int colorCode) { + this.colorCode = colorCode; + } + + public int getColorCode() { + return colorCode; + } + + static ResistorColorCode getColorCodeByName(final String color) { + return Arrays.stream(ResistorColorCode.values()) + .filter(it -> it.name().equalsIgnoreCase(color)) + .findFirst() + .orElseThrow(() -> new IllegalArgumentException("Invalid Resistor Color - " + color)); + } + + static String[] colors() { + + final ResistorColorCode[] values = values(); + + final String[] colors = new String[values.length]; + + for (int index = 0; index < values.length; index++) { + colors[index] = values[index].name().toLowerCase(Locale.getDefault()); + } + + return colors; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColorDuo.java b/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColorDuo.java new file mode 100644 index 0000000..87631ba --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/ResistorColorDuo.java @@ -0,0 +1,17 @@ +package io.thoughtcode.java.exercism; + +public class ResistorColorDuo { + + int value(final String[] colors) { + + final StringBuilder code = new StringBuilder(); + + final int length = Math.min(1, colors.length); + + for (int index = 0; index <= length; index++) { + code.append(ResistorColorCode.getColorCodeByName(colors[index]).getColorCode()); + } + + return Integer.parseInt(code.toString(), 10); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/ReverseString.java b/exercism/src/main/java/io/thoughtcode/java/exercism/ReverseString.java new file mode 100644 index 0000000..b2dabc8 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/ReverseString.java @@ -0,0 +1,19 @@ +package io.thoughtcode.java.exercism; + +import java.util.Optional; + +public class ReverseString { + + String reverse(final String inputString) { + + final String input = Optional.ofNullable(inputString).orElseGet(() -> "").trim(); + + final StringBuilder reverse = new StringBuilder(); + + for (int index = input.length() - 1; index >= 0; index--) { + reverse.append(input.charAt(index)); + } + + return reverse.toString(); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/RnaTranscription.java b/exercism/src/main/java/io/thoughtcode/java/exercism/RnaTranscription.java new file mode 100644 index 0000000..39d6fc5 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/RnaTranscription.java @@ -0,0 +1,27 @@ +package io.thoughtcode.java.exercism; + +import java.util.HashMap; +import java.util.Map; + +class RnaTranscription { + + static final Map DNA_TO_RNA = new HashMap<>(4); + + static { + DNA_TO_RNA.put('G', "C"); + DNA_TO_RNA.put('C', "G"); + DNA_TO_RNA.put('T', "A"); + DNA_TO_RNA.put('A', "U"); + } + + String transcribe(final String dnaStrand) { + + final StringBuilder rnaStrand = new StringBuilder(dnaStrand.length()); + + for (final Character character : dnaStrand.toCharArray()) { + rnaStrand.append(DNA_TO_RNA.get(character)); + } + + return rnaStrand.toString(); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/RotationalCipher.java b/exercism/src/main/java/io/thoughtcode/java/exercism/RotationalCipher.java new file mode 100644 index 0000000..1b0ea27 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/RotationalCipher.java @@ -0,0 +1,62 @@ +package io.thoughtcode.java.exercism; + +class RotationalCipher { + + static final String POSITIONS = "abcdefghijklmnopqrstuvwxyz"; + + private final int shiftKey; + + RotationalCipher(final int shiftKey) { + this.shiftKey = shiftKey; + } + + String rotate(final String data) { + + final StringBuilder result = new StringBuilder(data.length()); + + for (int index = 0; index < data.length(); index++) { + + final char currentCharacter = data.charAt(index); + final boolean upper = isUpper(currentCharacter); + final char lower = upper ? toLower(currentCharacter) : currentCharacter; + + if (isLower(lower)) { + final char rotated = getRotatedCharacter(lower); + result.append(upper ? toUpper(rotated) : rotated); + } else { + result.append(lower); + } + } + + return result.toString(); + } + + private boolean isUpper(final char character) { + return 'A' <= character && character <= 'Z'; + } + + private boolean isLower(final char character) { + return 'a' <= character && character <= 'z'; + } + + private char toLower(final char character) { + return (char) (((int) character) + 32); + } + + private char toUpper(final char character) { + return (char) (((int) character) - 32); + } + + private char getRotatedCharacter(final char character) { + + final int currentPosition = POSITIONS.indexOf(character); + + int rotatedPosition = currentPosition + shiftKey; + + if (rotatedPosition >= POSITIONS.length()) { + rotatedPosition = rotatedPosition - POSITIONS.length(); + } + + return POSITIONS.charAt(rotatedPosition); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/SaddlePoint.java b/exercism/src/main/java/io/thoughtcode/java/exercism/SaddlePoint.java new file mode 100644 index 0000000..5bd0e7c --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/SaddlePoint.java @@ -0,0 +1,132 @@ +package io.thoughtcode.java.exercism; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class SaddlePoint { + + private final List> values; + + SaddlePoint(final List> values) { + this.values = values; + } + + Set getSaddlePoints() { + + final int rowCount = values.size(); + final int colCount = rowCount > 0 ? values.get(0).size() : 0; + + final List rowMaxValues = new ArrayList<>(rowCount); + final List colMaxValues = new ArrayList<>(colCount); + + for (int row = 0; row < rowCount; row++) { + + int maxValue = values.get(row).get(0); + int maxRowCoordinate = row; + int maxColCoordinate = 0; + + for (int col = 1; col < colCount; col++) { + + final int currentValue = values.get(row).get(col); + + if (currentValue > maxValue) { + maxValue = currentValue; + maxRowCoordinate = row; + maxColCoordinate = col; + } + } + + rowMaxValues.add(new Integer[] { maxRowCoordinate, maxColCoordinate, maxValue }); + } + + for (int col = 0; col < colCount; col++) { + + int minValue = values.get(0).get(col); + int minRowCoordinate = 0; + int minColCoordinate = col; + + for (int row = 1; row < rowCount; row++) { + + final int currentValue = values.get(row).get(col); + + if (currentValue < minValue) { + minValue = currentValue; + minRowCoordinate = row; + minColCoordinate = col; + } + } + + colMaxValues.add(new Integer[] { minRowCoordinate, minColCoordinate, minValue }); + } + + final Set saddlePoints = new HashSet<>(); + + for (int row = 0; row < rowCount; row++) { + for (int col = 0; col < colCount; col++) { + + final int currentValue = values.get(row).get(col); + + final Integer[] rowMax = rowMaxValues.get(row); + final int rowMaxValue = rowMax[2]; + + final Integer[] colMax = colMaxValues.get(col); + final int colMaxValue = colMax[2]; + + if (currentValue >= rowMaxValue && currentValue <= colMaxValue) { + saddlePoints.add(new MatrixCoordinate(row + 1, col + 1)); + } + } + } + + return saddlePoints; + } +} + +class MatrixCoordinate implements Comparable { + + private final int row; + + private final int col; + + MatrixCoordinate(final int row, final int col) { + this.row = row; + this.col = col; + } + + @Override + public String toString() { + return "Row: " + row + ", Column: " + col; + } + + @Override + public boolean equals(final Object other) { + + boolean result; + + if (this == other) { + result = true; + } else if (other == null || getClass() != other.getClass()) { + result = false; + } else { + final MatrixCoordinate that = (MatrixCoordinate) other; + result = this.row == that.row && this.col == that.col; + } + + return result; + } + + @Override + public int hashCode() { + int result = row; + result = 31 * result + col; + return result; + } + + @Override + public int compareTo(final MatrixCoordinate other) { + final int rowComparison = Integer.compare(this.row, other.row); + return (rowComparison == 0) ? Integer.compare(this.col, other.col) : rowComparison; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/SalaryCalculator.java b/exercism/src/main/java/io/thoughtcode/java/exercism/SalaryCalculator.java new file mode 100644 index 0000000..d936d9f --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/SalaryCalculator.java @@ -0,0 +1,30 @@ +package io.thoughtcode.java.exercism; + +public class SalaryCalculator { + + static final double BASE_SALARY = 1000.0; + + static final double MAX_SALARY = 2000.0; + + public double multiplierPerDaysSkipped(final int daysSkipped) { + return daysSkipped > 5 ? 0.85 : 1.0; + } + + public int multiplierPerProductsSold(final int productsSold) { + return productsSold > 20 ? 13 : 10; + } + + public double bonusForProductSold(final int productsSold) { + return ((double) multiplierPerProductsSold(productsSold)) * productsSold; + } + + public double finalSalary(final int daysSkipped, final int productsSold) { + + final double daySalary = BASE_SALARY * multiplierPerDaysSkipped(daysSkipped); + final double bonus = bonusForProductSold(productsSold); + + final double salary = daySalary + bonus; + + return daySalary + bonus < MAX_SALARY ? salary : MAX_SALARY; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/SaySay.java b/exercism/src/main/java/io/thoughtcode/java/exercism/SaySay.java new file mode 100644 index 0000000..1888ff2 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/SaySay.java @@ -0,0 +1,221 @@ +package io.thoughtcode.java.exercism; + +import static java.lang.String.format; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +public class SaySay { + + static final int TWENTY = 20; + + static final List NUMBERS = new ArrayList<>(); + + static { + NUMBERS.add(NamedNumber.QUINTILLION); + NUMBERS.add(NamedNumber.QUADRILLION); + NUMBERS.add(NamedNumber.TRILLION); + NUMBERS.add(NamedNumber.BILLION); + NUMBERS.add(NamedNumber.MILLION); + NUMBERS.add(NamedNumber.THOUSAND); + } + + public String say(final long number) { + + validate(number); + + final String result; + + if (number == 0) { + result = NamedNumber.getString(number); + } else { + result = sayNumber(number); + } + + return result; + } + + private void validate(final long number) { + + if (number < 0) { + throw new IllegalArgumentException("negative numbers not allowed"); + } + + if (number >= NamedNumber.TRILLION.getNumber()) { + throw new IllegalArgumentException("number too big"); + } + } + + private String sayNumber(final long number) { + + final StringBuilder result = new StringBuilder(); + + long value = number; + + for (int index = 0; value != 0 && index < NUMBERS.size(); index++) { + + final long divisor = NUMBERS.get(index).getNumber(); + + final long currentNumber = value / divisor; + + value = value % divisor; + + if (currentNumber != 0) { + if (currentNumber >= NamedNumber.HUNDRED.getNumber()) { + result.append( + format("%s %s ", sayThreeDigitNumber(currentNumber), NamedNumber.getString(divisor))); + } else { + result.append( + format("%s %s ", sayTwoDigitNumber(currentNumber), NamedNumber.getString(divisor))); + } + } else if (value < NamedNumber.THOUSAND.getNumber()) { + result.append(sayThreeDigitNumber(number) + " "); + value = 0; + } + } + + if (value != 0) { + result.append(sayThreeDigitNumber(value)); + } + + return result.toString().trim(); + } + + private String sayThreeDigitNumber(final long number) { + + final int hundred = (int) NamedNumber.HUNDRED.getNumber(); + + // final int hundredsValue = ((int) Math.floor(number / hundred)) * hundred; + final int hundredsDigit = (int) (number / hundred); + final int twoDigitNumber = (int) (number % NamedNumber.HUNDRED.getNumber()); + + final StringBuilder result = new StringBuilder(); + + if (hundredsDigit != 0) { + result.append(NamedNumber.getString(hundredsDigit) + " hundred "); + } + + if (twoDigitNumber != 0) { + result.append(sayTwoDigitNumber(twoDigitNumber)); + } + + return result.toString().trim(); + } + + private String sayTwoDigitNumber(final long number) { + + final StringBuilder result = new StringBuilder(); + + if (number >= TWENTY) { + final int tensValue = ((int) Math.floor(number / 10.0)) * 10; + final int unitsValue = (int) number % 10; + + final String tensString = NamedNumber.getString(tensValue); + final String unitsString = unitsValue == 0 ? "" : "-" + NamedNumber.getString(unitsValue); + + result.append(format(" %s%s", tensString, unitsString).trim()); + } else { + result.append(NamedNumber.getString(number)); + } + + return result.toString().trim(); + } +} + +enum NamedNumber { + + QUINTILLION(1_000_000_000_000_000_000L), + + QUADRILLION(1_000_000_000_000_000L), + + TRILLION(1_000_000_000_000L), + + BILLION(1_000_000_000L), + + MILLION(1_000_000L), + + THOUSAND(1_000L), + + HUNDRED(100), + + NINETY(90), + + EIGHTY(80), + + SEVENTY(70), + + SIXTY(60), + + FIFTY(50), + + FORTY(40), + + THIRTY(30), + + TWENTY(20), + + NINETEEN(19), + + EIGHTEEN(18), + + SEVENTEEN(17), + + SIXTEEN(16), + + FIFTEEN(15), + + FOURTEEN(14), + + THIRTEEN(13), + + TWELVE(12), + + ELEVEN(11), + + TEN(10), + + NINE(9), + + EIGHT(8), + + SEVEN(7), + + SIX(6), + + FIVE(5), + + FOUR(4), + + THREE(3), + + TWO(2), + + ONE(1), + + ZERO(0); + + static final Map VALUES = new HashMap<>(); + + static { + Arrays.stream(NamedNumber.values()) + .forEach(number -> VALUES.put(number.getNumber(), number.name().toLowerCase(Locale.getDefault()))); + } + + private final long number; + + static String getString(final long number) { + return VALUES.getOrDefault(number, ""); + } + + NamedNumber(final long number) { + this.number = number; + } + + public long getNumber() { + return number; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/ScrabbleScore.java b/exercism/src/main/java/io/thoughtcode/java/exercism/ScrabbleScore.java new file mode 100644 index 0000000..06b264c --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/ScrabbleScore.java @@ -0,0 +1,59 @@ +package io.thoughtcode.java.exercism; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; + +class ScrabbleScore { + + static final Map LETTER_VALUES = new HashMap<>(); + + private final String word; + + static { + + final String[] valueOneCharacters = { "1", "a,e,i,o,u,l,n,r,s,t" }; + final String[] valueTwoCharacters = { "2", "d,g" }; + final String[] valueThreeCharacters = { "3", "b,c,m,p" }; + final String[] valueFourCharacters = { "4", "f,h,v,w,y" }; + final String[] valueFiveCharacters = { "5", "k" }; + final String[] valueEightCharacters = { "8", "j,x" }; + final String[] valueTenCharacters = { "10", "q,z" }; + + final List values = new ArrayList<>(); + values.add(valueOneCharacters); + values.add(valueTwoCharacters); + values.add(valueThreeCharacters); + values.add(valueFourCharacters); + values.add(valueFiveCharacters); + values.add(valueEightCharacters); + values.add(valueTenCharacters); + + for (final String[] value : values) { + final Integer characterValue = Integer.parseInt(value[0]); + final String[] characters = value[1].split(","); + for (final String character : characters) { + LETTER_VALUES.put(character.toLowerCase(Locale.getDefault()), characterValue); + LETTER_VALUES.put(character.toUpperCase(Locale.getDefault()), characterValue); + } + } + } + + ScrabbleScore(final String word) { + this.word = Optional.ofNullable(word).orElseGet(() -> "").trim(); + } + + int getScore() { + + int score = 0; + + for (final char character : word.toCharArray()) { + score = score + LETTER_VALUES.get(String.valueOf(character)); + } + + return score; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/SpaceAge.java b/exercism/src/main/java/io/thoughtcode/java/exercism/SpaceAge.java new file mode 100644 index 0000000..0e41399 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/SpaceAge.java @@ -0,0 +1,82 @@ +package io.thoughtcode.java.exercism; + +class SpaceAge { + + static final double EARTH_YEAR_IN_SECONDS = 31_557_600.0; + + private final double seconds; + + SpaceAge(final double seconds) { + this.seconds = seconds; + } + + double getSeconds() { + return seconds; + } + + double onEarth() { + return (seconds / EARTH_YEAR_IN_SECONDS) * Planet.EARTH.getYearConversion(); + } + + double onMercury() { + return getAgeOnPlanet(Planet.MERCURY); + } + + double onVenus() { + return getAgeOnPlanet(Planet.VENUS); + } + + double onMars() { + return getAgeOnPlanet(Planet.MARS); + } + + double onJupiter() { + return getAgeOnPlanet(Planet.JUPITER); + } + + double onSaturn() { + return getAgeOnPlanet(Planet.SATURN); + } + + double onUranus() { + return getAgeOnPlanet(Planet.URANUS); + } + + double onNeptune() { + return getAgeOnPlanet(Planet.NEPTURE); + } + + private double getAgeOnPlanet(final Planet planet) { + return onEarth() / planet.getYearConversion(); + } +} + +enum Planet { + + MERCURY(0.240_846_7), + + VENUS(0.615_197_26), + + EARTH(1.0), + + MARS(1.880_815_8), + + JUPITER(11.862_615), + + SATURN(29.447_498), + + URANUS(84.016_846), + + NEPTURE(164.791_32), + ; + + private final double yearConversion; + + Planet(final double yearConversion) { + this.yearConversion = yearConversion; + } + + public double getYearConversion() { + return yearConversion; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/SqueakyClean.java b/exercism/src/main/java/io/thoughtcode/java/exercism/SqueakyClean.java new file mode 100644 index 0000000..2f8733e --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/SqueakyClean.java @@ -0,0 +1,52 @@ +package io.thoughtcode.java.exercism; + +public class SqueakyClean { + + String clean(final String identifier) { + + final String allSpacesReplaced = identifier.replaceAll(" ", "_"); + final String allSpaceAndNumbersReplaced = allSpacesReplaced.replaceAll("[0-9]", ""); + + final int length = allSpaceAndNumbersReplaced.length(); + + final StringBuilder result = new StringBuilder(); + + int index = 0; + + while (index < length) { + + final char value = allSpaceAndNumbersReplaced.charAt(index); + + if (isControlCharacter(value)) { + result.append("CTRL"); + } else if (isGreekCharacter(value) || isEmoji(value)) { + // Nothing to do + } else if (isHyphen(value) && index + 1 != length) { + index++; + result.append(Character.toUpperCase(allSpaceAndNumbersReplaced.charAt(index))); + } else { + result.append(value); + } + + index++; + } + + return result.toString(); + } + + boolean isControlCharacter(final char value) { + return value <= 37 || value == 127; + } + + boolean isGreekCharacter(final char value) { + return 945 <= value && value <= 969; + } + + boolean isHyphen(final char value) { + return value == '-'; + } + + boolean isEmoji(final char value) { + return value >= 8032; + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/Triangle.java b/exercism/src/main/java/io/thoughtcode/java/exercism/Triangle.java new file mode 100644 index 0000000..2e5420f --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/Triangle.java @@ -0,0 +1,47 @@ +package io.thoughtcode.java.exercism; + +public class Triangle { + + + + private final double side1; + + private final double side2; + + private final double side3; + + Triangle(final double side1, final double side2, final double side3) throws TriangleException { + + if (side1 == 0 || side2 == 0 || side3 == 0) { + throw new TriangleException(); + } + + final double sum12 = side1 + side2; + final double sum23 = side2 + side3; + final double side13 = side1 + side3; + + if (sum12 < side3 || sum23 < side1 || side13 < side2) { + throw new TriangleException(); + } + + this.side1 = side1; + this.side2 = side2; + this.side3 = side3; + } + + boolean isEquilateral() { + return side1 == side2 && side2 == side3; + } + + boolean isIsosceles() { + return side1 == side2 || side2 == side3 || side1 == side3; + } + + boolean isScalene() { + return side1 != side2 && side2 != side3; + } +} + +class TriangleException extends Exception { + public static final long serialVersionUID = 1L; +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/TwelveDays.java b/exercism/src/main/java/io/thoughtcode/java/exercism/TwelveDays.java new file mode 100644 index 0000000..6a46150 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/TwelveDays.java @@ -0,0 +1,75 @@ +package io.thoughtcode.java.exercism; + +import static java.lang.String.format; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import io.thoughtcode.java.common.NumberConstants; + +class TwelveDays { + + static final String PREFIX = "On the %s day of Christmas my true love gave to me:"; + + static final Map ITEMS = new LinkedHashMap<>(); + + static { + ITEMS.put(1, new String[] { "first", "a Partridge in a Pear Tree" }); + ITEMS.put(2, new String[] { "second", "two Turtle Doves" }); + ITEMS.put(3, new String[] { "third", "three French Hens" }); + ITEMS.put(4, new String[] { "fourth", "four Calling Birds" }); + ITEMS.put(5, new String[] { "fifth", "five Gold Rings" }); + ITEMS.put(6, new String[] { "sixth", "six Geese-a-Laying" }); + ITEMS.put(7, new String[] { "seventh", "seven Swans-a-Swimming" }); + ITEMS.put(8, new String[] { "eighth", "eight Maids-a-Milking" }); + ITEMS.put(9, new String[] { "ninth", "nine Ladies Dancing" }); + ITEMS.put(10, new String[] { "tenth", "ten Lords-a-Leaping" }); + ITEMS.put(11, new String[] { "eleventh", "eleven Pipers Piping" }); + ITEMS.put(12, new String[] { "twelfth", "twelve Drummers Drumming" }); + } + + String verse(final int verseNumber) { + + final String verse; + + if (verseNumber > NumberConstants.ONE) { + + final String[] firstItem = ITEMS.get(1); + + final List verseItems = new ArrayList<>(verseNumber - 1); + + for (int index = verseNumber; index > 1; index--) { + verseItems.add(ITEMS.get(index)[1]); + } + + final String prefix = format(PREFIX, ITEMS.get(verseNumber)[0]); + final String verseItemsExceptFirst = String.join(", ", verseItems); + + verse = format("%s %s, and %s.", prefix, verseItemsExceptFirst, firstItem[1]); + + } else if (verseNumber == NumberConstants.ONE) { + verse = format("%s %s.", format(PREFIX, ITEMS.get(verseNumber)[0]), ITEMS.get(verseNumber)[1]); + } else { + verse = ""; + } + + return verse + "\n"; + } + + String verses(final int startVerse, final int endVerse) { + + final List verses = new ArrayList<>(endVerse - startVerse); + + for (int verseNumber = startVerse; verseNumber <= endVerse; verseNumber++) { + verses.add(verse(verseNumber)); + } + + return String.join("\n", verses); + } + + String sing() { + return verses(1, 12); + } +} diff --git a/exercism/src/main/java/io/thoughtcode/java/exercism/TwoFer.java b/exercism/src/main/java/io/thoughtcode/java/exercism/TwoFer.java new file mode 100644 index 0000000..c72dc14 --- /dev/null +++ b/exercism/src/main/java/io/thoughtcode/java/exercism/TwoFer.java @@ -0,0 +1,15 @@ +package io.thoughtcode.java.exercism; + +import java.util.Optional; + +public class TwoFer { + + static final String TEMPLATE_RESPONSE = "One for %s, one for me."; + + public String twofer(final String input) { + + final String name = Optional.ofNullable(input).orElseGet(() -> "you").trim(); + + return String.format(TEMPLATE_RESPONSE, name); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/AcronymTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/AcronymTest.java new file mode 100644 index 0000000..ca52d2f --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/AcronymTest.java @@ -0,0 +1,62 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class AcronymTest { + + @Test + void basic() { + assertThat(new Acronym("Portable Network Graphics").get()) + .isEqualTo("PNG"); + } + + @Test + void lowercaseWords() { + assertThat(new Acronym("Ruby on Rails").get()) + .isEqualTo("ROR"); + } + + @Test + void punctuation() { + assertThat(new Acronym("First In, First Out").get()) + .isEqualTo("FIFO"); + } + + @Test + void nonAcronymAllCapsWord() { + assertThat(new Acronym("GNU Image Manipulation Program").get()) + .isEqualTo("GIMP"); + } + + @Test + void punctuationWithoutWhitespace() { + assertThat(new Acronym("Complementary metal-oxide semiconductor").get()) + .isEqualTo("CMOS"); + } + + @Test + void veryLongAbbreviation() { + assertThat(new Acronym("Rolling On The Floor Laughing So Hard That My Dogs Came Over And Licked Me").get()) + .isEqualTo("ROTFLSHTMDCOALM"); + } + + @Test + void consecutiveDelimiters() { + assertThat(new Acronym("Something - I made up from thin air").get()) + .isEqualTo("SIMUFTA"); + } + + @Test + void apostrophes() { + assertThat(new Acronym("Halley's Comet").get()) + .isEqualTo("HC"); + } + + @Test + void underscoreEmphasis() { + assertThat(new Acronym("The Road _Not_ Taken").get()) + .isEqualTo("TRNT"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/AnagramTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/AnagramTest.java new file mode 100644 index 0000000..f18f4ba --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/AnagramTest.java @@ -0,0 +1,180 @@ +package io.thoughtcode.java.exercism; + +import static java.util.Collections.emptyList; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.Arrays; +import java.util.List; + +import org.junit.jupiter.api.Test; + +class AnagramTest { + + @Test + void testNoMatches() { + + final String word = "diaper"; + final List matches = Arrays.asList("hello", "world", "zombies", "pants"); + final List expected = emptyList(); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testDetectMultipleAnagrams() { + + final String word = "master"; + final List matches = Arrays.asList("stream", "pigeon", "maters"); + final List expected = Arrays.asList("stream", "maters"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testEliminateAnagramSubsets() { + + final String word = "good"; + final List matches = Arrays.asList("dog", "goody"); + final List expected = emptyList(); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testDetectLongerAnagram() { + + final String word = "listen"; + final List matches = Arrays.asList("enlists", "google", "inlets", "banana"); + final List expected = Arrays.asList("inlets"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testDetectMultipleAnagramsForLongerWord() { + + final String word = "allergy"; + final List matches = Arrays.asList("gallery", "ballerina", "regally", "clergy", "largely", "leading"); + final List expected = Arrays.asList("gallery", "regally", "largely"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testDetectsMultipleAnagramsWithDifferentCase() { + + final String word = "nose"; + final List matches = Arrays.asList("Eons", "ONES"); + final List expected = Arrays.asList("Eons", "ONES"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testEliminateAnagramsWithSameChecksum() { + + final String word = "mass"; + final List matches = Arrays.asList("last"); + final List expected = emptyList(); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testCaseInsensitiveWhenBothAnagramAndSubjectStartWithUpperCaseLetter() { + + final String word = "Orchestra"; + final List matches = Arrays.asList("cashregister", "Carthorse", "radishes"); + final List expected = Arrays.asList("Carthorse"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testCaseInsensitiveWhenSubjectStartsWithUpperCaseLetter() { + + final String word = "Orchestra"; + final List matches = Arrays.asList("cashregister", "carthorse", "radishes"); + final List expected = Arrays.asList("carthorse"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testCaseInsensitiveWhenAnagramStartsWithUpperCaseLetter() { + + final String word = "orchestra"; + final List matches = Arrays.asList("cashregister", "Carthorse", "radishes"); + final List expected = Arrays.asList("Carthorse"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testIdenticalWordRepeatedIsNotAnagram() { + + final String word = "go"; + final List matches = Arrays.asList("go Go GO"); + final List expected = emptyList(); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testAnagramMustUseAllLettersExactlyOnce() { + + final String word = "tapper"; + final List matches = Arrays.asList("patter"); + final List expected = emptyList(); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testWordsAreNotAnagramsOfThemselvesCaseInsensitive() { + + final String word = "BANANA"; + final List matches = Arrays.asList("BANANA", "Banana", "banana"); + final List expected = emptyList(); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } + + @Test + void testWordsOtherThanThemselvesCanBeAnagrams() { + + final String word = "LISTEN"; + final List matches = Arrays.asList("Listen", "Silent", "LISTEN"); + final List expected = Arrays.asList("Silent"); + + final Anagram detector = new Anagram(word); + + assertThat(detector.match(matches)).containsExactlyElementsOf(expected); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/AnnalynsInfiltrationTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/AnnalynsInfiltrationTest.java new file mode 100644 index 0000000..dd9412d --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/AnnalynsInfiltrationTest.java @@ -0,0 +1,274 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class AnnalynsInfiltrationTest { + + private final AnnalynsInfiltration fixture = new AnnalynsInfiltration(); + + @Test + void cannot_execute_fast_attack_if_knight_is_awake() { + final boolean knightIsAwake = true; + assertThat(fixture.canFastAttack(knightIsAwake)).isFalse(); + } + + @Test + void can_execute_fast_attack_if_knight_is_sleeping() { + final boolean knightIsAwake = false; + assertThat(fixture.canFastAttack(knightIsAwake)).isTrue(); + } + + @Test + void cannot_spy_if_everyone_is_sleeping() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = false; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isFalse(); + } + + @Test + void can_spy_if_everyone_but_knight_is_sleeping() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = false; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void can_spy_if_everyone_but_archer_is_sleeping() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = false; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void can_spy_if_everyone_but_prisoner_is_sleeping() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = true; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void can_spy_if_only_knight_is_sleeping() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = true; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void can_spy_if_only_archer_is_sleeping() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = true; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void can_spy_if_only_prisoner_is_sleeping() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = false; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void can_spy_if_everyone_is_awake() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = true; + assertThat(fixture.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void can_signal_prisoner_if_archer_is_sleeping_and_prisoner_is_awake() { + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = true; + assertThat(fixture.canSignalPrisoner(archerIsAwake, prisonerIsAwake)).isTrue(); + } + + @Test + void cannot_signal_prisoner_if_archer_is_awake_and_prisoner_is_sleeping() { + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = false; + assertThat(fixture.canSignalPrisoner(archerIsAwake, prisonerIsAwake)).isFalse(); + } + + @Test + void cannot_signal_prisoner_if_archer_and_prisoner_are_both_sleeping() { + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = false; + assertThat(fixture.canSignalPrisoner(archerIsAwake, prisonerIsAwake)).isFalse(); + } + + @Test + void cannot_signal_prisoner_if_archer_and_prisoner_are_both_awake() { + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = true; + assertThat(fixture.canSignalPrisoner(archerIsAwake, prisonerIsAwake)).isFalse(); + } + + @Test + void cannot_release_prisoner_if_everyone_is_awake_and_pet_dog_is_present() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void cannot_release_prisoner_if_everyone_is_awake_and_pet_dog_is_absent() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void can_release_prisoner_if_everyone_is_asleep_and_pet_dog_is_present() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isTrue(); + } + + @Test + void cannot_release_prisoner_if_everyone_is_asleep_and_pet_dog_is_absent() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void can_release_prisoner_if_only_prisoner_is_awake_and_pet_dog_is_present() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isTrue(); + } + + @Test + void can_release_prisoner_if_only_prisoner_is_awake_and_pet_dog_is_absent() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isTrue(); + } + + @Test + void cannot_release_prisoner_if_only_archer_is_awake_and_pet_dog_is_present() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void cannot_release_prisoner_if_only_archer_is_awake_and_pet_dog_is_absent() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void can_release_prisoner_if_only_knight_is_awake_and_pet_dog_is_present() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isTrue(); + } + + @Test + void cannot_release_prisoner_if_only_knight_is_awake_and_pet_dog_is_absent() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void cannot_release_prisoner_if_only_knight_is_asleep_and_pet_dog_is_present() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void cannot_release_prisoner_if_only_knight_is_asleep_and_pet_dog_is_absent() { + final boolean knightIsAwake = false; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void can_release_prisoner_if_only_archer_is_asleep_and_pet_dog_is_present() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isTrue(); + } + + @Test + void cannot_release_prisoner_if_only_archer_is_asleep_and_pet_dog_is_absent() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = false; + final boolean prisonerIsAwake = true; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void cannot_release_prisoner_if_only_prisoner_is_asleep_and_pet_dog_is_present() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = true; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } + + @Test + void cannot_release_prisoner_if_only_prisoner_is_asleep_and_pet_dog_is_absent() { + final boolean knightIsAwake = true; + final boolean archerIsAwake = true; + final boolean prisonerIsAwake = false; + final boolean petDogIsPresent = false; + assertThat(fixture.canFreePrisoner(knightIsAwake, archerIsAwake, + prisonerIsAwake, petDogIsPresent)).isFalse(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/ArmstrongNumbersTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/ArmstrongNumbersTest.java new file mode 100644 index 0000000..6ad406c --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/ArmstrongNumbersTest.java @@ -0,0 +1,61 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class ArmstrongNumbersTest { + + private ArmstrongNumbers armstrongNumbers; + + @BeforeEach + void setup() { + armstrongNumbers = new ArmstrongNumbers(); + } + + @Test + void zeroIsArmstrongNumber() { + assertThat(armstrongNumbers.isArmstrongNumber(0)).isTrue(); + } + + @Test + void singleDigitsAreArmstrongNumbers() { + assertThat(armstrongNumbers.isArmstrongNumber(5)).isTrue(); + } + + @Test + void noTwoDigitArmstrongNumbers() { + assertThat(armstrongNumbers.isArmstrongNumber(10)).isFalse(); + } + + @Test + void threeDigitNumberIsArmstrongNumber() { + assertThat(armstrongNumbers.isArmstrongNumber(153)).isTrue(); + } + + @Test + void threeDigitNumberIsNotArmstrongNumber() { + assertThat(armstrongNumbers.isArmstrongNumber(100)).isFalse(); + } + + @Test + void fourDigitNumberIsArmstrongNumber() { + assertThat(armstrongNumbers.isArmstrongNumber(9_474)).isTrue(); + } + + @Test + void fourDigitNumberIsNotArmstrongNumber() { + assertThat(armstrongNumbers.isArmstrongNumber(9_475)).isFalse(); + } + + @Test + void sevenDigitNumberIsArmstrongNumber() { + assertThat(armstrongNumbers.isArmstrongNumber(9_926_315)).isTrue(); + } + + @Test + void sevenDigitNumberIsNotArmstrongNumber() { + assertThat(armstrongNumbers.isArmstrongNumber(9_926_314)).isFalse(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/BirdWatcherTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/BirdWatcherTest.java new file mode 100644 index 0000000..77d31c1 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/BirdWatcherTest.java @@ -0,0 +1,84 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class BirdWatcherTest { + + private static final int DAY1 = 0; + private static final int DAY2 = 2; + private static final int DAY3 = 5; + private static final int DAY4 = 3; + private static final int DAY5 = 7; + private static final int DAY6 = 8; + private static final int TODAY = 4; + + private BirdWatcher fixture; + + private final int lastWeek[] = { DAY1, DAY2, DAY3, DAY4, DAY5, DAY6, TODAY }; + + @BeforeEach + void setUp() { + fixture = new BirdWatcher(lastWeek); + } + + @Test + void itTestGetLastWeek() { + assertThat(fixture.getLastWeek()) + .containsExactly(DAY1, DAY2, DAY3, DAY4, DAY5, DAY6, TODAY); + } + + @Test + void itTestGetToday() { + assertThat(fixture.getToday()).isEqualTo(TODAY); + } + + @Test + void itShouldReturnZeroIfBirdWatcherLastWeekIsEmpty() { + int[] lastWeekEmpty = new int[0]; + fixture = new BirdWatcher(lastWeekEmpty); + assertThat(fixture.getToday()).isEqualTo(0); + } + + @Test + void itIncrementTodaysCount() { + fixture.incrementTodaysCount(); + assertThat(fixture.getToday()).isEqualTo(TODAY + 1); + } + + @Test + void itHasDayWithoutBirds() { + assertThat(fixture.hasDayWithoutBirds()).isTrue(); + } + + @Test + void itShouldNotHaveDaysWithoutBirds() { + fixture = new BirdWatcher(new int[] { 1, 2, 5, 3, 7, 8, 4 }); + assertThat(fixture.hasDayWithoutBirds()).isFalse(); + } + + @Test + void itTestGetCountForFirstDays() { + assertThat(fixture.getCountForFirstDays(4)).isEqualTo(DAY1 + DAY2 + DAY3 + DAY4); + } + + @Test + void itTestGetCountForMoreDaysThanTheArraySize() { + assertThat(fixture.getCountForFirstDays(10)) + .isEqualTo(DAY1 + DAY2 + DAY3 + DAY4 + DAY5 + DAY6 + TODAY); + } + + @Test + void itTestGetCountForBusyDays() { + // DAY3, DAY5 and DAY6 are all >= 5 birds + assertThat(fixture.getBusyDays()).isEqualTo(3); + } + + @Test + void itShouldNotHaveBusyDays() { + fixture = new BirdWatcher(new int[] { 1, 2, 3, 3, 2, 1, 4 }); + assertThat(fixture.getBusyDays()).isEqualTo(0); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/BlackJackTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/BlackJackTest.java new file mode 100644 index 0000000..6a3b867 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/BlackJackTest.java @@ -0,0 +1,318 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class BlackJackTest { + + private static final String TWO = "two"; + + private static final String THREE = "three"; + + private static final String FOUR = "four"; + + private static final String FIVE = "five"; + + private static final String SIX = "six"; + + private static final String SEVEN = "seven"; + + private static final String EIGHT = "eight"; + + private static final String NINE = "nine"; + + private static final String TEN = "ten"; + + private static final String JACK = "jack"; + + private static final String QUEEN = "queen"; + + private static final String KING = "king"; + + private static final String ACE = "ace"; + + private BlackJack fixture; + + @BeforeEach + void setUp() { + fixture = new BlackJack(); + } + + @Test + void correctParsesAce() { + assertThat(fixture.parseCard(ACE)).isEqualTo(11); + } + + @Test + void correctParsesTwo() { + assertThat(fixture.parseCard(TWO)).isEqualTo(2); + } + + @Test + void correctParsesThree() { + assertThat(fixture.parseCard(THREE)).isEqualTo(3); + } + + @Test + void correctParsesFour() { + assertThat(fixture.parseCard(FOUR)).isEqualTo(4); + } + + @Test + void correctParsesFive() { + assertThat(fixture.parseCard(FIVE)).isEqualTo(5); + } + + @Test + void correctParsesSix() { + assertThat(fixture.parseCard(SIX)).isEqualTo(6); + } + + @Test + void correctParsesSeven() { + assertThat(fixture.parseCard(SEVEN)).isEqualTo(7); + } + + @Test + void correctParsesEight() { + assertThat(fixture.parseCard(EIGHT)).isEqualTo(8); + } + + @Test + void correctParsesNine() { + assertThat(fixture.parseCard(NINE)).isEqualTo(9); + } + + @Test + void correctParsesTen() { + assertThat(fixture.parseCard(TEN)).isEqualTo(10); + } + + @Test + void correctParsesJack() { + assertThat(fixture.parseCard(JACK)).isEqualTo(10); + } + + @Test + void correctParsesQueen() { + assertThat(fixture.parseCard(QUEEN)).isEqualTo(10); + } + + @Test + void correctParsesKing() { + assertThat(fixture.parseCard(KING)).isEqualTo(10); + } + + @Test + void blackjackWithTenAceSecond() { + assertThat(fixture.isBlackjack(TEN, ACE)).isEqualTo(true); + } + + @Test + void blackjackWithJackAceSecond() { + assertThat(fixture.isBlackjack(JACK, ACE)).isEqualTo(true); + } + + @Test + void blackjackWithQueenAceSecond() { + assertThat(fixture.isBlackjack(QUEEN, ACE)).isEqualTo(true); + } + + @Test + void blackjackWithKingAceSecond() { + assertThat(fixture.isBlackjack(KING, ACE)).isEqualTo(true); + } + + @Test + void noBlackjackWithFive() { + assertThat(fixture.isBlackjack(ACE, FIVE)).isEqualTo(false); + } + + @Test + void noBlackjackWithNine() { + assertThat(fixture.isBlackjack(ACE, NINE)).isEqualTo(false); + } + + @Test + void noBlackjackWithTwoAces() { + assertThat(fixture.isBlackjack(ACE, ACE)).isEqualTo(false); + } + + @Test + void noBlackjackWithTwoFigures() { + assertThat(fixture.isBlackjack(QUEEN, JACK)).isEqualTo(false); + } + + @Test + void noBlackjackWithKingAndFive() { + assertThat(fixture.isBlackjack(KING, FIVE)).isEqualTo(false); + } + + @Test + void noBlackjackWithEightAndFive() { + assertThat(fixture.isBlackjack(EIGHT, FIVE)).isEqualTo(false); + } + + @Test + void firstTurnWithAceAceAndDealerAce() { + assertThat(fixture.firstTurn(ACE, ACE, ACE)).isEqualTo("P"); + } + + @Test + void firstTurnWithJackJackAndDealerAce() { + assertThat(fixture.firstTurn(JACK, JACK, ACE)).isEqualTo("S"); + } + + @Test + void firstTurnWithKingKingAndDealerAce() { + assertThat(fixture.firstTurn(KING, KING, ACE)).isEqualTo("S"); + } + + @Test + void firstTurnWithTwoTwoAndDealerAce() { + assertThat(fixture.firstTurn(TWO, TWO, ACE)).isEqualTo("H"); + } + + @Test + void firstTurnWithFiveFiveAndAce() { + assertThat(fixture.firstTurn(FIVE, FIVE, ACE)).isEqualTo("H"); + } + + @Test + void firstTurnWithJackAceAndDealerAce() { + assertThat(fixture.firstTurn(JACK, ACE, ACE)).isEqualTo("S"); + } + + @Test + void firstTurnWithAceKingAndDealerQueen() { + assertThat(fixture.firstTurn(ACE, KING, QUEEN)).isEqualTo("S"); + } + + @Test + void firstTurnWithTenAceAndDealerFive() { + assertThat(fixture.firstTurn(TEN, ACE, FIVE)).isEqualTo("W"); + } + + @Test + void firstTurnWithKingAceAndDealerNine() { + assertThat(fixture.firstTurn(KING, ACE, NINE)).isEqualTo("W"); + } + + @Test + void firstTurnWithKingTenAndDealerAce() { + assertThat(fixture.firstTurn(KING, TEN, ACE)).isEqualTo("S"); + } + + @Test + void firstTurnWithNineTenAndDealerAce() { + assertThat(fixture.firstTurn(NINE, TEN, ACE)).isEqualTo("S"); + } + + @Test + void firstTurnWithEightTenAndDealerAce() { + assertThat(fixture.firstTurn(EIGHT, TEN, ACE)).isEqualTo("S"); + } + + @Test + void firstTurnWithKingSevenAndDealerAce() { + assertThat(fixture.firstTurn(KING, SEVEN, ACE)).isEqualTo("S"); + } + + @Test + void firstTurnWithSixTenAndDealerSix() { + assertThat(fixture.firstTurn(SIX, TEN, SIX)).isEqualTo("S"); + } + + @Test + void firstTurnWithSixTenAndDealerSeven() { + assertThat(fixture.firstTurn(SIX, TEN, SEVEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithSixTenAndDealerAce() { + assertThat(fixture.firstTurn(SIX, TEN, ACE)).isEqualTo("H"); + } + + @Test + void firstTurnWithFiveTenAndDealerSix() { + assertThat(fixture.firstTurn(FIVE, TEN, SIX)).isEqualTo("S"); + } + + @Test + void firstTurnWithFiveTenAndDealerSeven() { + assertThat(fixture.firstTurn(FIVE, TEN, SEVEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithFiveTenAndDealerKing() { + assertThat(fixture.firstTurn(FIVE, TEN, KING)).isEqualTo("H"); + } + + @Test + void firstTurnWithFourTenAndDealerSix() { + assertThat(fixture.firstTurn(FOUR, TEN, SIX)).isEqualTo("S"); + } + + @Test + void firstTurnWithFourTenAndDealerSeven() { + assertThat(fixture.firstTurn(FOUR, TEN, SEVEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithFourTenAndDealerQueen() { + assertThat(fixture.firstTurn(FOUR, TEN, QUEEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithThreeTenAndDealerSix() { + assertThat(fixture.firstTurn(THREE, TEN, SIX)).isEqualTo("S"); + } + + @Test + void firstTurnWithThreeTenAndDealerSeven() { + assertThat(fixture.firstTurn(THREE, TEN, SEVEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithThreeTenAndDealerQueen() { + assertThat(fixture.firstTurn(THREE, TEN, QUEEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithTwoTenAndDealerSix() { + assertThat(fixture.firstTurn(TWO, TEN, SIX)).isEqualTo("S"); + } + + @Test + void firstTurnWithTwoTenAndDealerSeven() { + assertThat(fixture.firstTurn(TWO, TEN, SEVEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithTwoTenAndDealerQueen() { + assertThat(fixture.firstTurn(TWO, TEN, QUEEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithTwoNineAndDealerQueen() { + assertThat(fixture.firstTurn(TWO, NINE, QUEEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithTwoEightAndDealerTwo() { + assertThat(fixture.firstTurn(TWO, EIGHT, TWO)).isEqualTo("H"); + } + + @Test + void firstTurnWithTwoThreeAndDealerQueen() { + assertThat(fixture.firstTurn(TWO, THREE, QUEEN)).isEqualTo("H"); + } + + @Test + void firstTurnWithTwoTwoAndDealerFive() { + assertThat(fixture.firstTurn(TWO, TWO, FIVE)).isEqualTo("H"); + } + +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/CarsAssembleTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/CarsAssembleTest.java new file mode 100644 index 0000000..bbc3c87 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/CarsAssembleTest.java @@ -0,0 +1,76 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class CarsAssembleTest { + + private CarsAssemble carsAssemble; + + @BeforeEach + void setUp() { + carsAssemble = new CarsAssemble(); + } + + @Test + void productionRatePerHourForSpeedZero() { + assertThat(carsAssemble.productionRatePerHour(0)).isEqualTo(0.0); + } + + @Test + void productionRatePerHourForSpeedOne() { + assertThat(carsAssemble.productionRatePerHour(1)).isEqualTo(221.0); + } + + @Test + void productionRatePerHourForSpeedFour() { + assertThat(carsAssemble.productionRatePerHour(4)).isEqualTo(884.0); + } + + @Test + void productionRatePerHourForSpeedSeven() { + assertThat(carsAssemble.productionRatePerHour(7)).isEqualTo(1392.3); + } + + @Test + void productionRatePerHourForSpeedNine() { + assertThat(carsAssemble.productionRatePerHour(9)).isEqualTo(1591.2); + } + + @Test + void productionRatePerHourForSpeedTen() { + assertThat(carsAssemble.productionRatePerHour(10)).isEqualTo(1701.7); + } + + @Test + void workingItemsPerMinuteForSpeedZero() { + assertThat(carsAssemble.workingItemsPerMinute(0)).isEqualTo(0); + } + + @Test + void workingItemsPerMinuteForSpeedOne() { + assertThat(carsAssemble.workingItemsPerMinute(1)).isEqualTo(3); + } + + @Test + void workingItemsPerMinuteForSpeedFive() { + assertThat(carsAssemble.workingItemsPerMinute(5)).isEqualTo(16); + } + + @Test + void workingItemsPerMinuteForSpeedEight() { + assertThat(carsAssemble.workingItemsPerMinute(8)).isEqualTo(26); + } + + @Test + void workingItemsPerMinuteForSpeedNine() { + assertThat(carsAssemble.workingItemsPerMinute(9)).isEqualTo(26); + } + + @Test + void workingItemsPerMinuteForSpeedTen() { + assertThat(carsAssemble.workingItemsPerMinute(10)).isEqualTo(28); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/DartsTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/DartsTest.java new file mode 100644 index 0000000..cc646ea --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/DartsTest.java @@ -0,0 +1,86 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class DartsTest { + + @Test + void missedTarget() { + final Darts dart = new Darts(-9, 9); + assertThat(dart.score()).isEqualTo(0); + } + + @Test + void onTheOuterCircle() { + final Darts dart = new Darts(0, 10); + assertThat(dart.score()).isEqualTo(1); + } + + @Test + void onTheMiddleCircle() { + final Darts dart = new Darts(-5, 0); + assertThat(dart.score()).isEqualTo(5); + } + + @Test + void onTheInnerCircle() { + final Darts dart = new Darts(0, -1); + assertThat(dart.score()).isEqualTo(10); + } + + @Test + void exactlyOnCentre() { + final Darts dart = new Darts(0, 0); + assertThat(dart.score()).isEqualTo(10); + } + + @Test + void nearTheCentre() { + final Darts dart = new Darts(-0.1, -0.1); + assertThat(dart.score()).isEqualTo(10); + } + + @Test + void justWithinTheInnerCircle() { + final Darts dart = new Darts(0.7, 0.7); + assertThat(dart.score()).isEqualTo(10); + } + + @Test + void justOutsideTheInnerCircle() { + final Darts dart = new Darts(0.8, -0.8); + assertThat(dart.score()).isEqualTo(5); + } + + @Test + void justWithinTheMiddleCirlce() { + final Darts dart = new Darts(-3.5, 3.5); + assertThat(dart.score()).isEqualTo(5); + } + + @Test + void justOutsideTheMiddleCircle() { + final Darts dart = new Darts(-3.6, -3.6); + assertThat(dart.score()).isEqualTo(1); + } + + @Test + void justWithinTheOuterCirlce() { + final Darts dart = new Darts(-7.0, 7.0); + assertThat(dart.score()).isEqualTo(1); + } + + @Test + void justOutsideTheOuterCircle() { + final Darts dart = new Darts(7.1, -7.1); + assertThat(dart.score()).isEqualTo(0); + } + + @Test + void asymmetricPositionBetweenTheInnerAndMiddleCircles() { + final Darts dart = new Darts(0.5, -4); + assertThat(dart.score()).isEqualTo(5); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/DifferenceOfSquaresCalculatorTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/DifferenceOfSquaresCalculatorTest.java new file mode 100644 index 0000000..eab0ace --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/DifferenceOfSquaresCalculatorTest.java @@ -0,0 +1,79 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class DifferenceOfSquaresCalculatorTest { + + private DifferenceOfSquaresCalculator calculator; + + @BeforeEach + void setUp() { + calculator = new DifferenceOfSquaresCalculator(); + } + + @Test + void testSquareOfSumUpToOne() { + final int expected = 1; + final int actual = calculator.computeSquareOfSumTo(1); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testSquareOfSumUpToFive() { + final int expected = 225; + final int actual = calculator.computeSquareOfSumTo(5); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testSquareOfSumUpToHundred() { + final int expected = 25_502_500; + final int actual = calculator.computeSquareOfSumTo(100); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testSumOfSquaresUpToOne() { + final int expected = 1; + final int actual = calculator.computeSumOfSquaresTo(1); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testSumOfSquaresUpToFive() { + final int expected = 55; + final int actual = calculator.computeSumOfSquaresTo(5); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testSumOfSquaresUpToHundred() { + final int expected = 338_350; + final int actual = calculator.computeSumOfSquaresTo(100); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testDifferenceOfSquaresUpToOne() { + final int expected = 0; + final int actual = calculator.computeDifferenceOfSquares(1); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testDifferenceOfSquaresUpToFive() { + final int expected = 170; + final int actual = calculator.computeDifferenceOfSquares(5); + assertThat(actual).isEqualTo(expected); + } + + @Test + void testDifferenceOfSquaresUpToHundred() { + final int expected = 25_164_150; + final int actual = calculator.computeDifferenceOfSquares(100); + assertThat(actual).isEqualTo(expected); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/DnDCharacterTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/DnDCharacterTest.java new file mode 100644 index 0000000..8848d34 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/DnDCharacterTest.java @@ -0,0 +1,116 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.RepeatedTest; +import org.junit.jupiter.api.Test; + +class DnDCharacterTest { + + private final DnDCharacter dndCharacter = new DnDCharacter(); + + @Test + void testAbilityModifierForScore3IsNegative4() { + assertThat(dndCharacter.modifier(3)).isEqualTo(-4); + } + + @Test + void testAbilityModifierForScore4IsNegative3() { + assertThat(dndCharacter.modifier(4)).isEqualTo(-3); + } + + @Test + void testAbilityModifierForScore5IsNegative3() { + assertThat(dndCharacter.modifier(5)).isEqualTo(-3); + } + + @Test + void testAbilityModifierForScore6IsNegative2() { + assertThat(dndCharacter.modifier(6)).isEqualTo(-2); + } + + @Test + void testAbilityModifierForScore7IsNegative2() { + assertThat(dndCharacter.modifier(7)).isEqualTo(-2); + } + + @Test + void testAbilityModifierForScore8IsNegative1() { + assertThat(dndCharacter.modifier(8)).isEqualTo(-1); + } + + @Test + void testAbilityModifierForScore9IsNegative1() { + assertThat(dndCharacter.modifier(9)).isEqualTo(-1); + } + + @Test + void testAbilityModifierForScore10Is0() { + assertThat(dndCharacter.modifier(10)).isEqualTo(0); + } + + @Test + void testAbilityModifierForScore11Is0() { + assertThat(dndCharacter.modifier(11)).isEqualTo(0); + } + + @Test + void testAbilityModifierForScore12Is1() { + assertThat(dndCharacter.modifier(12)).isEqualTo(1); + } + + @Test + void testAbilityModifierForScore13Is1() { + assertThat(dndCharacter.modifier(13)).isEqualTo(1); + } + + @Test + void testAbilityModifierForScore14Is2() { + assertThat(dndCharacter.modifier(14)).isEqualTo(2); + } + + @Test + void testAbilityModifierForScore15Is2() { + assertThat(dndCharacter.modifier(15)).isEqualTo(2); + } + + @Test + void testAbilityModifierForScore16Is3() { + assertThat(dndCharacter.modifier(16)).isEqualTo(3); + } + + @Test + void testAbilityModifierForScore17Is3() { + assertThat(dndCharacter.modifier(17)).isEqualTo(3); + } + + @Test + void testAbilityModifierForScore18Is4() { + assertThat(dndCharacter.modifier(18)).isEqualTo(4); + } + + @Test + void testRandomAbilityIsWithinRange() { + final int score = dndCharacter.ability(); + assertThat(score).isGreaterThan(2).isLessThan(19); + } + + @RepeatedTest(1000) + void testRandomCharacterIsValid() { + + final DnDCharacter character = new DnDCharacter(); + + assertThat(character.getStrength()).isGreaterThan(2).isLessThan(19); + assertThat(character.getDexterity()).isGreaterThan(2).isLessThan(19); + assertThat(character.getConstitution()).isGreaterThan(2).isLessThan(19); + assertThat(character.getIntelligence()).isGreaterThan(2).isLessThan(19); + assertThat(character.getWisdom()).isGreaterThan(2).isLessThan(19); + assertThat(character.getCharisma()).isGreaterThan(2).isLessThan(19); + assertThat(character.getHitpoints()).isEqualTo(10 + character.modifier(character.getConstitution())); + } + + @Test + void testEachAbilityIsOnlyCalculatedOnce() { + assertThat(dndCharacter.getStrength()).isEqualTo(dndCharacter.getStrength()); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/ElonsToyCarTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/ElonsToyCarTest.java new file mode 100644 index 0000000..d5f05b5 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/ElonsToyCarTest.java @@ -0,0 +1,117 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class ElonsToyCarTest { + + @Test + void buy_new_car_returns_instance() { + + final ElonsToyCar car = ElonsToyCar.buy(); + + assertThat(car).isNotNull(); + } + + @Test + void buy_new_car_returns_new_car_each_time() { + + final ElonsToyCar car1 = ElonsToyCar.buy(); + final ElonsToyCar car2 = ElonsToyCar.buy(); + + assertThat(car1).isNotEqualTo(car2); + } + + @Test + void new_car_distance_display() { + + final ElonsToyCar car = new ElonsToyCar(); + + assertThat(car.distanceDisplay()).isEqualTo("Driven 0 meters"); + } + + @Test + void new_car_battery_display() { + + final ElonsToyCar car = new ElonsToyCar(); + + assertThat(car.batteryDisplay()).isEqualTo("Battery at 100%"); + } + + @Test + void distance_display_after_driving_once() { + + final ElonsToyCar car = new ElonsToyCar(); + + car.drive(); + + assertThat(car.distanceDisplay()).isEqualTo("Driven 20 meters"); + } + + @Test + void distance_display_after_driving_multiple_times() { + + final ElonsToyCar car = new ElonsToyCar(); + + for (int index = 0; index < 17; index++) { + car.drive(); + } + + assertThat(car.distanceDisplay()).isEqualTo("Driven 340 meters"); + } + + @Test + void battery_display_after_driving_once() { + + final ElonsToyCar car = new ElonsToyCar(); + + car.drive(); + + assertThat(car.batteryDisplay()).isEqualTo("Battery at 99%"); + } + + @Test + void battery_display_after_driving_multiple_times() { + + final ElonsToyCar car = new ElonsToyCar(); + + for (int index = 0; index < 23; index++) { + car.drive(); + } + + assertThat(car.batteryDisplay()).isEqualTo("Battery at 77%"); + } + + @Test + void battery_display_when_battery_empty() { + + final ElonsToyCar car = new ElonsToyCar(); + + // Drain the battery + for (int index = 0; index < 100; index++) { + car.drive(); + } + + // Attempt to drive one more time (should not work) + car.drive(); + + assertThat(car.batteryDisplay()).isEqualTo("Battery empty"); + } + + @Test + void distance_display_when_battery_empty() { + + final ElonsToyCar car = new ElonsToyCar(); + + // Drain the battery + for (int index = 0; index < 100; index++) { + car.drive(); + } + + // Attempt to drive one more time (should not work) + car.drive(); + + assertThat(car.distanceDisplay()).isEqualTo("Driven 2000 meters"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/FlattenListTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/FlattenListTest.java new file mode 100644 index 0000000..9052e9a --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/FlattenListTest.java @@ -0,0 +1,103 @@ +package io.thoughtcode.java.exercism; + +import static java.util.Arrays.asList; +import static java.util.Collections.emptyList; +import static java.util.Collections.singletonList; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +class FlattenListTest { + + static final String SIX = "six"; + + private final FlattenList flattener = new FlattenList(); + + @Test + void testFlatListIsPreserved() { + + final List input = asList(0, '1', "two"); + final List expected = input; + + assertThat(flattener.flatten(input)).containsExactlyElementsOf(expected); + } + + @Test + void testASingleLevelOfNestingWithNoNulls() { + + final List input = asList(1, asList('2', 3, 4, 5, SIX, "7"), 8); + final List expected = asList(1, '2', 3, 4, 5, SIX, "7", 8); + + assertThat(flattener.flatten(input)).containsExactlyElementsOf(expected); + } + + @Test + void testFiveLevelsOfNestingWithNoNulls() { + + final List input = asList( + 0, + '2', + asList( + asList(2, "three"), + '8', + 100, + "four", + singletonList(singletonList(singletonList(50)))), + "-2"); + final List expected = asList(0, '2', 2, "three", '8', 100, "four", 50, "-2"); + + assertThat(flattener.flatten(input)).containsExactlyElementsOf(expected); + } + + @Test + void testSixLevelsOfNestingWithNoNulls() { + + final List input = asList( + "one", + asList( + '2', + singletonList(singletonList(3)), + asList('4', singletonList(singletonList(5))), + SIX, + 7), + "8"); + final List expected = asList("one", '2', 3, '4', 5, SIX, 7, "8"); + + assertThat(flattener.flatten(input)).containsExactlyElementsOf(expected); + } + + @Test + void testSixLevelsOfNestingWithNulls() { + + final List input = asList( + "0", + 2, + asList( + asList("two", '3'), + "8", + singletonList(singletonList("one hundred")), + null, + singletonList(singletonList(null))), + "negative two"); + final List expected = asList("0", 2, "two", '3', "8", "one hundred", "negative two"); + + assertThat(flattener.flatten(input)).containsExactlyElementsOf(expected); + } + + @Test + void testNestedListsFullOfNullsOnly() { + + final List input = asList( + null, + singletonList(singletonList(singletonList(null))), + null, + null, + asList(asList(null, null), null), + null); + final List expected = emptyList(); + + assertThat(flattener.flatten(input)).containsExactlyElementsOf(expected); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/FootballMatchReportsTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/FootballMatchReportsTest.java new file mode 100644 index 0000000..194018d --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/FootballMatchReportsTest.java @@ -0,0 +1,65 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + +import org.junit.jupiter.api.Test; + +class FootballMatchReportsTest { + + @Test + void test_goalie() { + assertThat(FootballMatchReports.onField(1)).isEqualTo("goalie"); + } + + @Test + void test_left_back() { + assertThat(FootballMatchReports.onField(2)).isEqualTo("left back"); + } + + @Test + void test_right_back() { + assertThat(FootballMatchReports.onField(5)).isEqualTo("right back"); + } + + @Test + void test_center_back() { + assertThat(FootballMatchReports.onField(3)).isEqualTo("center back"); + assertThat(FootballMatchReports.onField(4)).isEqualTo("center back"); + } + + @Test + void test_midfielder() { + final String expected = "midfielder"; + assertThat(FootballMatchReports.onField(6)).isEqualTo(expected); + assertThat(FootballMatchReports.onField(7)).isEqualTo(expected); + assertThat(FootballMatchReports.onField(8)).isEqualTo(expected); + } + + @Test + void test_left_wing() { + assertThat(FootballMatchReports.onField(9)).isEqualTo("left wing"); + } + + @Test + void test_striker() { + assertThat(FootballMatchReports.onField(10)).isEqualTo("striker"); + } + + @Test + void test_right_wing() { + assertThat(FootballMatchReports.onField(11)).isEqualTo("right wing"); + } + + @Test + void test_exception() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> FootballMatchReports.onField(13)); + } + + @Test + void test_exception_negative_number() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> FootballMatchReports.onField(-1)); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/GigasecondTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/GigasecondTest.java new file mode 100644 index 0000000..6d629b9 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/GigasecondTest.java @@ -0,0 +1,52 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.Month; + +import org.junit.jupiter.api.Test; + +class GigasecondTest { + + @Test + void modernTime() { + + final Gigasecond gigaSecond = new Gigasecond(LocalDate.of(2011, Month.APRIL, 25)); + + assertThat(LocalDateTime.of(2043, Month.JANUARY, 1, 1, 46, 40)).isEqualTo(gigaSecond.getDateTime()); + } + + @Test + void afterEpochTime() { + + final Gigasecond gigaSecond = new Gigasecond(LocalDate.of(1977, Month.JUNE, 13)); + + assertThat(LocalDateTime.of(2009, Month.FEBRUARY, 19, 1, 46, 40)).isEqualTo(gigaSecond.getDateTime()); + } + + @Test + void beforeEpochTime() { + + final Gigasecond gigaSecond = new Gigasecond(LocalDate.of(1959, Month.JULY, 19)); + + assertThat(LocalDateTime.of(1991, Month.MARCH, 27, 1, 46, 40)).isEqualTo(gigaSecond.getDateTime()); + } + + @Test + void withFullTimeSpecified() { + + final Gigasecond gigaSecond = new Gigasecond(LocalDateTime.of(2015, Month.JANUARY, 24, 22, 0, 0)); + + assertThat(LocalDateTime.of(2046, Month.OCTOBER, 2, 23, 46, 40)).isEqualTo(gigaSecond.getDateTime()); + } + + @Test + void withFullTimeSpecifiedAndDayRollover() { + + final Gigasecond gigaSecond = new Gigasecond(LocalDateTime.of(2015, Month.JANUARY, 24, 23, 59, 59)); + + assertThat(LocalDateTime.of(2046, Month.OCTOBER, 3, 1, 46, 39)).isEqualTo(gigaSecond.getDateTime()); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/GrainsTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/GrainsTest.java new file mode 100644 index 0000000..238ec0c --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/GrainsTest.java @@ -0,0 +1,82 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + +import java.math.BigInteger; + +import org.junit.jupiter.api.Test; + +class GrainsTest { + + private final Grains grains = new Grains(); + + @Test + void countAtSquare1() { + final BigInteger result = grains.grainsOnSquare(1); + assertThat(result).isEqualTo(BigInteger.ONE); + } + + @Test + void countAtSquare2() { + final BigInteger result = grains.grainsOnSquare(2); + assertThat(result).isEqualTo(new BigInteger("2")); + } + + @Test + void countAtSquare3() { + final BigInteger result = grains.grainsOnSquare(3); + assertThat(result).isEqualTo(new BigInteger("4")); + } + + @Test + void countAtSquare4() { + final BigInteger result = grains.grainsOnSquare(4); + assertThat(result).isEqualTo(new BigInteger("8")); + } + + @Test + void countAtSquare16() { + final BigInteger result = grains.grainsOnSquare(16); + assertThat(result).isEqualTo(new BigInteger("32768")); + } + + @Test + void countAtSquare32() { + final BigInteger result = grains.grainsOnSquare(32); + assertThat(result).isEqualTo(new BigInteger("2147483648")); + } + + @Test + void countAtSquare64() { + final BigInteger result = grains.grainsOnSquare(64); + assertThat(result).isEqualTo(new BigInteger("9223372036854775808")); + } + + @Test + void errorOnNullBoardSize() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> grains.grainsOnSquare(0)) + .withMessage("square must be between 1 and 64"); + } + + @Test + void errorOnNegativeBoardSize() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> grains.grainsOnSquare(-1)) + .withMessage("square must be between 1 and 64"); + } + + @Test + void errorOnExcessiveBoardSize() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> grains.grainsOnSquare(65)) + .withMessage("square must be between 1 and 64"); + } + + @Test + void totalNumberOfGrainsOnABoard() { + final BigInteger total = grains.grainsOnBoard(); + assertThat(total).isEqualTo(new BigInteger("18446744073709551615")); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/GreeterTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/GreeterTest.java new file mode 100644 index 0000000..1d975ce --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/GreeterTest.java @@ -0,0 +1,13 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class GreeterTest { + + @Test + void greeter_returns_the_correct_greeting() { + assertThat(new Greeter().getGreeting()).isEqualTo("Hello, World!"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/HammingTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/HammingTest.java new file mode 100644 index 0000000..ff0966e --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/HammingTest.java @@ -0,0 +1,62 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; + +import org.junit.jupiter.api.Test; + +class HammingTest { + + @Test + void testNoDistanceBetweenEmptyStrands() { + assertThat(new Hamming("", "").getHammingDistance()).isEqualTo(0); + } + + @Test + void testNoDistanceBetweenShortIdenticalStrands() { + assertThat(new Hamming("A", "A").getHammingDistance()).isEqualTo(0); + } + + @Test + void testCompleteDistanceInSingleLetterDifferentStrands() { + assertThat(new Hamming("G", "T").getHammingDistance()).isEqualTo(1); + } + + @Test + void testDistanceInLongIdenticalStrands() { + assertThat(new Hamming("GGACTGAAATCTG", "GGACTGAAATCTG").getHammingDistance()).isEqualTo(0); + } + + @Test + void testDistanceInLongDifferentStrands() { + assertThat(new Hamming("GGACGGATTCTG", "AGGACGGATTCT").getHammingDistance()).isEqualTo(9); + } + + @Test + void testValidatesFirstStrandNotLonger() { + assertThatIllegalArgumentException() + .isThrownBy(() -> new Hamming("AATG", "AAA")) + .withMessage("leftStrand and rightStrand must be of equal length."); + } + + @Test + void testValidatesSecondStrandNotLonger() { + assertThatIllegalArgumentException() + .isThrownBy(() -> new Hamming("ATA", "AGTG")) + .withMessage("leftStrand and rightStrand must be of equal length."); + } + + @Test + void testDisallowLeftEmptyStrand() { + assertThatIllegalArgumentException() + .isThrownBy(() -> new Hamming("", "G")) + .withMessage("left strand must not be empty."); + } + + @Test + void testDisallowRightEmptyStrand() { + assertThatIllegalArgumentException() + .isThrownBy(() -> new Hamming("G", "")) + .withMessage("right strand must not be empty."); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/IsogramCheckerTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/IsogramCheckerTest.java new file mode 100644 index 0000000..9ffa4fe --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/IsogramCheckerTest.java @@ -0,0 +1,81 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class IsogramCheckerTest { + + private IsogramChecker isogramChecker; + + @BeforeEach + void setUp() { + isogramChecker = new IsogramChecker(); + } + + @Test + void testEmptyString() { + assertThat(isogramChecker.isIsogram("")).isTrue(); + } + + @Test + void testLowercaseIsogram() { + assertThat(isogramChecker.isIsogram("isogram")).isTrue(); + } + + @Test + void testNotIsogram() { + assertThat(isogramChecker.isIsogram("eleven")).isFalse(); + } + + @Test + void testDuplicateEndAlphabet() { + assertThat(isogramChecker.isIsogram("zzyzx")).isFalse(); + } + + @Test + void testMediumLongIsogram() { + assertThat(isogramChecker.isIsogram("subdermatoglyphic")).isTrue(); + } + + @Test + void testCaseInsensitive() { + assertThat(isogramChecker.isIsogram("Alphabet")).isFalse(); + } + + @Test + void testDuplicatMixedCase() { + assertThat(isogramChecker.isIsogram("alphAbet")).isFalse(); + } + + @Test + void testIsogramWithHyphen() { + assertThat(isogramChecker.isIsogram("thumbscrew-japingly")).isTrue(); + } + + @Test + void testIsogramWithDuplicatedCharAfterHyphen() { + assertThat(isogramChecker.isIsogram("thumbscrew-jappingly")).isFalse(); + } + + @Test + void testIsogramWithDuplicatedHyphen() { + assertThat(isogramChecker.isIsogram("six-year-old")).isTrue(); + } + + @Test + void testMadeUpNameThatIsAnIsogram() { + assertThat(isogramChecker.isIsogram("Emily Jung Schwartzkopf")).isTrue(); + } + + @Test + void testDuplicatedCharacterInTheMiddleIsNotIsogram() { + assertThat(isogramChecker.isIsogram("accentor")).isFalse(); + } + + @Test + void testSameFirstAndLast() { + assertThat(new IsogramChecker().isIsogram("angola")).isFalse(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/LanguageListTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/LanguageListTest.java new file mode 100644 index 0000000..e260009 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/LanguageListTest.java @@ -0,0 +1,141 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class LanguageListTest { + + static final String JAVA = "Java"; + + static final String PYTHON = "Python"; + + static final String KOTLIN = "Kotlin"; + + static final String RUBY = "Ruby"; + + static final String CPP = "C++"; + + private LanguageList languageList; + + @BeforeEach + void setUp() { + languageList = new LanguageList(); + } + + @Test + void empty() { + assertThat(languageList.isEmpty()).isTrue(); + } + + @Test + void nonEmpty() { + languageList.addLanguage(JAVA); + + assertThat(languageList.isEmpty()).isFalse(); + } + + @Test + void addOneLanguage() { + languageList.addLanguage(JAVA); + + assertThat(languageList.containsLanguage(JAVA)).isTrue(); + assertThat(languageList.containsLanguage(PYTHON)).isFalse(); + } + + @Test + void doesNotAddLanguageWhenLanguageAlreadyExists() { + + languageList.addLanguage(JAVA); + languageList.addLanguage(JAVA); + + assertThat(languageList.containsLanguage(JAVA)).isTrue(); + assertThat(languageList.count()).isEqualTo(1); + } + + @Test + void doesNotAddDuplicateLanguage() { + languageList.addLanguage(JAVA); + + assertThat(languageList.containsLanguage(JAVA)).isTrue(); + assertThat(languageList.containsLanguage(PYTHON)).isFalse(); + } + + @Test + void addMultipleLanguages() { + languageList.addLanguage(JAVA); + languageList.addLanguage(RUBY); + languageList.addLanguage(CPP); + + assertThat(languageList.containsLanguage(JAVA)).isTrue(); + assertThat(languageList.containsLanguage(RUBY)).isTrue(); + assertThat(languageList.containsLanguage(CPP)).isTrue(); + assertThat(languageList.containsLanguage(PYTHON)).isFalse(); + } + + @Test + void removeLanguage() { + languageList.addLanguage(JAVA); + languageList.addLanguage(PYTHON); + languageList.addLanguage(RUBY); + + languageList.removeLanguage(PYTHON); + + assertThat(languageList.containsLanguage(JAVA)).isTrue(); + assertThat(languageList.containsLanguage(PYTHON)).isFalse(); + assertThat(languageList.containsLanguage(RUBY)).isTrue(); + } + + @Test + void firstLanguage() { + languageList.addLanguage(JAVA); + languageList.addLanguage(PYTHON); + languageList.addLanguage(RUBY); + + assertThat(languageList.firstLanguage()).isEqualTo(JAVA); + } + + @Test + void firstLanguageReturnsNullWhenEmptyList() { + assertThat(languageList.firstLanguage()).isNull(); + } + + @Test + void countThree() { + languageList.addLanguage(JAVA); + languageList.addLanguage(PYTHON); + languageList.addLanguage(RUBY); + + assertThat(languageList.count()).isEqualTo(3); + } + + @Test + void countEmpty() { + assertThat(languageList.count()).isEqualTo(0); + } + + @Test + void excitingLanguageListWithJava() { + languageList.addLanguage(JAVA); + + assertThat(languageList.isExciting()).isTrue(); + } + + @Test + void excitingLanguageListWithKotlin() { + languageList.addLanguage(PYTHON); + languageList.addLanguage(KOTLIN); + + assertThat(languageList.isExciting()).isTrue(); + } + + @Test + void boringLanguageList() { + languageList.addLanguage(PYTHON); + languageList.addLanguage(RUBY); + languageList.addLanguage(CPP); + + assertThat(languageList.isExciting()).isFalse(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/LasagnaTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/LasagnaTest.java new file mode 100644 index 0000000..a376c6b --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/LasagnaTest.java @@ -0,0 +1,92 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +import io.thoughtcode.java.exercism.utils.Lasagna; + +class LasagnaTest { + + @Test + void implemented_expected_minutes_in_oven() { + assertThat(new Lasagna().hasMethod("expectedMinutesInOven")) + .withFailMessage("Method expectedMinutesInOven must be created") + .isTrue(); + assertThat(new Lasagna().isMethodPublic("expectedMinutesInOven")) + .withFailMessage("Method expectedMinutesInOven must be public") + .isTrue(); + assertThat(new Lasagna().isMethodReturnType(int.class, "expectedMinutesInOven")) + .withFailMessage("Method expectedMinutesInOven must return an int") + .isTrue(); + } + + @Test + void expected_minutes_in_oven() { + assertThat(new Lasagna().expectedMinutesInOven()).isEqualTo(40); + } + + @Test + void implemented_remaining_minutes_in_oven() { + assertThat(new Lasagna().hasMethod("remainingMinutesInOven", int.class)) + .withFailMessage("Method remainingMinutesInOven must be created") + .isTrue(); + assertThat(new Lasagna().isMethodPublic("remainingMinutesInOven", int.class)) + .withFailMessage("Method remainingMinutesInOven must be public") + .isTrue(); + assertThat(new Lasagna().isMethodReturnType(int.class, "remainingMinutesInOven", int.class)) + .withFailMessage("Method remainingMinutesInOven must return an int") + .isTrue(); + } + + @Test + void remaining_minutes_in_oven() { + assertThat(new Lasagna().remainingMinutesInOven(25)).isEqualTo(15); + } + + @Test + void implemented_preparation_time_in_minutes() { + assertThat(new Lasagna().hasMethod("preparationTimeInMinutes", int.class)) + .withFailMessage("Method preparationTimeInMinutes must be created") + .isTrue(); + assertThat(new Lasagna().isMethodPublic("preparationTimeInMinutes", int.class)) + .withFailMessage("Method preparationTimeInMinutes must be public") + .isTrue(); + assertThat(new Lasagna().isMethodReturnType(int.class, "preparationTimeInMinutes", int.class)) + .withFailMessage("Method preparationTimeInMinutes must return an int") + .isTrue(); + } + + @Test + void preparation_time_in_minutes_for_one_layer() { + assertThat(new Lasagna().preparationTimeInMinutes(1)).isEqualTo(2); + } + + @Test + void preparation_time_in_minutes_for_multiple_layers() { + assertThat(new Lasagna().preparationTimeInMinutes(4)).isEqualTo(8); + } + + @Test + void implemented_total_time_in_minutes() { + assertThat(new Lasagna().hasMethod("totalTimeInMinutes", int.class, int.class)) + .withFailMessage("Method totalTimeInMinutes must be created") + .isTrue(); + assertThat(new Lasagna().isMethodPublic("totalTimeInMinutes", int.class, int.class)) + .withFailMessage("Method totalTimeInMinutes must be public") + .isTrue(); + assertThat(new Lasagna().isMethodReturnType(int.class, "totalTimeInMinutes", int.class, int.class)) + .withFailMessage("Method totalTimeInMinutes must return an int") + .isTrue(); + } + + @Test + void total_time_in_minutes_for_one_layer() { + assertThat(new Lasagna().totalTimeInMinutes(1, 30)).isEqualTo(32); + } + + @Test + void total_time_in_minutes_for_multiple_layers() { + assertThat(new Lasagna().totalTimeInMinutes(4, 8)).isEqualTo(16); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/LeapYearTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/LeapYearTest.java new file mode 100644 index 0000000..ce9285a --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/LeapYearTest.java @@ -0,0 +1,61 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class LeapYearTest { + + private LeapYear leap; + + @BeforeEach + void setup() { + leap = new LeapYear(); + } + + @Test + void testYearNotDivBy4InCommonYear() { + assertThat(leap.isLeapYear(2015)).isFalse(); + } + + @Test + void testYearDivBy2NotDivBy4InCommonYear() { + assertThat(leap.isLeapYear(1970)).isFalse(); + } + + @Test + void testYearDivBy4NotDivBy100InLeapYear() { + assertThat(leap.isLeapYear(1996)).isTrue(); + } + + @Test + void testYearDivBy4And5InLeapYear() { + assertThat(leap.isLeapYear(1960)).isTrue(); + } + + @Test + void testYearDivBy100NotDivBy400InCommonYear() { + assertThat(leap.isLeapYear(2100)).isFalse(); + } + + @Test + void testYearDivBy100NotDivBy3IsNotLeapYear() { + assertThat(leap.isLeapYear(1900)).isFalse(); + } + + @Test + void testYearDivBy400InLeapYear() { + assertThat(leap.isLeapYear(2000)).isTrue(); + } + + @Test + void testYearDivBy400NotDivBy125IsLeapYear() { + assertThat(leap.isLeapYear(2400)).isTrue(); + } + + @Test + void testYearDivBy200NotDivBy400InCommonYear() { + assertThat(leap.isLeapYear(1800)).isFalse(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/LogLevelsTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/LogLevelsTest.java new file mode 100644 index 0000000..d010561 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/LogLevelsTest.java @@ -0,0 +1,69 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class LogLevelsTest { + + private final LogLevels fixture = new LogLevels(); + + @Test + void error_message() { + assertThat(fixture.message("[ERROR]: Stack overflow")).isEqualTo("Stack overflow"); + } + + @Test + void warning_message() { + assertThat(fixture.message("[WARNING]: Disk almost full")).isEqualTo("Disk almost full"); + } + + @Test + void info_message() { + assertThat(fixture.message("[INFO]: File moved")).isEqualTo("File moved"); + } + + @Test + void message_with_leading_and_trailing_white_space() { + assertThat(fixture.message("[WARNING]: \tTimezone not set \r\n")).isEqualTo("Timezone not set"); + } + + @Test + void error_log_level() { + assertThat(fixture.logLevel("[ERROR]: Disk full")).isEqualTo("error"); + } + + @Test + void warning_log_level() { + assertThat(fixture.logLevel("[WARNING]: Unsafe password")).isEqualTo("warning"); + } + + @Test + void info_log_level() { + assertThat(fixture.logLevel("[INFO]: Timezone changed")).isEqualTo("info"); + } + + @Test + void error_reformat() { + assertThat(fixture.reformat("[ERROR]: Segmentation fault")) + .isEqualTo("Segmentation fault (error)"); + } + + @Test + void warning_reformat() { + assertThat(fixture.reformat("[WARNING]: Decreased performance")) + .isEqualTo("Decreased performance (warning)"); + } + + @Test + void info_reformat() { + assertThat(fixture.reformat("[INFO]: Disk defragmented")) + .isEqualTo("Disk defragmented (info)"); + } + + @Test + void reformat_with_leading_and_trailing_white_space() { + assertThat(fixture.reformat("[ERROR]: \t Corrupt disk\t \t \r\n")) + .isEqualTo("Corrupt disk (error)"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/MatrixTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/MatrixTest.java new file mode 100644 index 0000000..c3b722e --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/MatrixTest.java @@ -0,0 +1,104 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class MatrixTest { + + @Test + void extractRowFromOneNumberMatrixTest() { + + final String matrixAsString = "1"; + final int rowIndex = 1; + final int[] expectedRow = { 1 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getRow(rowIndex)).isEqualTo(expectedRow); + } + + @Test + void extractRowFromMatrixTest() { + + final String matrixAsString = "1 2\n3 4"; + final int rowIndex = 2; + final int[] expectedRow = { 3, 4 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getRow(rowIndex)).isEqualTo(expectedRow); + } + + @Test + void extractRowFromDiffWidthsMatrixTest() { + + final String matrixAsString = "1 2\n10 20"; + final int rowIndex = 2; + final int[] expectedRow = { 10, 20 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getRow(rowIndex)).isEqualTo(expectedRow); + } + + @Test + void extractRowFromNonSquareMatrixTest() { + + final String matrixAsString = "1 2 3\n4 5 6\n7 8 9\n8 7 6"; + final int rowIndex = 4; + final int[] expectedRow = { 8, 7, 6 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getRow(rowIndex)).isEqualTo(expectedRow); + } + + @Test + void extractColumnFromOneNumberMatrixTest() { + + final String matrixAsString = "1"; + final int columnIndex = 1; + final int[] expectedColumn = { 1 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getRow(columnIndex)).isEqualTo(expectedColumn); + } + + @Test + void extractColumnMatrixTest() { + + final String matrixAsString = "1 2 3\n4 5 6\n7 8 9"; + final int columnIndex = 3; + final int[] expectedColumn = { 3, 6, 9 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getColumn(columnIndex)).isEqualTo(expectedColumn); + } + + @Test + void extractColumnFromNonSquareMatrixTest() { + + final String matrixAsString = "1 2 3 4\n5 6 7 8\n9 8 7 6"; + final int columnIndex = 4; + final int[] expectedColumn = { 4, 8, 6 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getColumn(columnIndex)).isEqualTo(expectedColumn); + } + + @Test + void extractColumnFromDiffWidthsMatrixTest() { + + final String matrixAsString = "89 1903 3\n18 3 1\n9 4 800"; + final int columnIndex = 2; + final int[] expectedColumn = { 1903, 3, 4 }; + + final Matrix matrix = new Matrix(matrixAsString); + + assertThat(matrix.getColumn(columnIndex)).isEqualTo(expectedColumn); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/NaturalNumberTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/NaturalNumberTest.java new file mode 100644 index 0000000..c71b45b --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/NaturalNumberTest.java @@ -0,0 +1,85 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + +import org.junit.jupiter.api.Test; + +class NaturalNumberTest { + + @Test + void testSmallPerfectNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(6).getClassification()).isEqualTo(Classification.PERFECT); + } + + @Test + void testMediumPerfectNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(28).getClassification()).isEqualTo(Classification.PERFECT); + } + + @Test + void testLargePerfectNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(33_550_336).getClassification()).isEqualTo(Classification.PERFECT); + } + + @Test + void testSmallAbundantNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(12).getClassification()).isEqualTo(Classification.ABUNDANT); + + } + + @Test + void testMediumAbundantNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(30).getClassification()).isEqualTo(Classification.ABUNDANT); + } + + @Test + void testLargeAbundantNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(33_550_335).getClassification()).isEqualTo(Classification.ABUNDANT); + } + + @Test + void testSmallestPrimeDeficientNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(2).getClassification()).isEqualTo(Classification.DEFICIENT); + } + + @Test + void testSmallestNonPrimeDeficientNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(4).getClassification()).isEqualTo(Classification.DEFICIENT); + } + + @Test + void testMediumDeficientNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(32).getClassification()).isEqualTo(Classification.DEFICIENT); + } + + @Test + void testLargeDeficientNumberIsClassifiedCorrectly() { + assertThat(new NaturalNumber(33_550_337).getClassification()).isEqualTo(Classification.DEFICIENT); + } + + @Test + /* + * The number 1 has no proper divisors + * (https://en.wikipedia.org/wiki/Divisor#Further_notions_and_facts), and the + * additive identity is 0, so the aliquot sum of 1 should be 0. Hence 1 should + * be classified as deficient. + */ + void testThatOneIsCorrectlyClassifiedAsDeficient() { + assertThat(new NaturalNumber(1).getClassification()).isEqualTo(Classification.DEFICIENT); + } + + @Test + void testThatNonNegativeIntegerIsRejected() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> new NaturalNumber(0)) + .withMessage("You must supply a natural number (positive integer)"); + } + + @Test + void testThatNegativeIntegerIsRejected() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> new NaturalNumber(-1)) + .withMessage("You must supply a natural number (positive integer)"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/NeedForSpeedTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/NeedForSpeedTest.java new file mode 100644 index 0000000..09e2686 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/NeedForSpeedTest.java @@ -0,0 +1,176 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class NeedForSpeedTest { + + @Test + void new_remote_control_car_has_not_driven_any_distance() { + + final int speed = 10; + final int batteryDrain = 2; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + assertThat(car.getDistanceDriven()).isEqualTo(0); + } + + @Test + void drive_increases_distance_driven_with_speed() { + + final int speed = 5; + final int batteryDrain = 1; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + car.drive(); + + assertThat(car.getDistanceDriven()).isEqualTo(5); + } + + @Test + void drive_does_not_increase_distance_driven_when_battery_drained() { + + final int speed = 9; + final int batteryDrain = 50; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + // Drain the battery + car.drive(); + car.drive(); + + // One extra drive attempt (should not succeed) + car.drive(); + + assertThat(car.getDistanceDriven()).isEqualTo(18); + } + + @Test + void new_remote_control_car_battery_is_not_drained() { + + final int speed = 15; + final int batteryDrain = 3; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + assertThat(car.batteryDrained()).isFalse(); + } + + @Test + void drive_to_almost_drain_battery() { + + final int speed = 2; + final int batteryDrain = 1; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + // Almost drain the battery + for (int index = 0; index < 99; index++) { + car.drive(); + } + + assertThat(car.batteryDrained()).isFalse(); + } + + @Test + void drive_until_battery_is_drained() { + + final int speed = 2; + final int batteryDrain = 1; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + // Drain the battery + for (int index = 0; index < 100; index++) { + car.drive(); + } + + assertThat(car.batteryDrained()).isTrue(); + } + + @Test + void nitro_car_has_not_driven_any_distance() { + final NeedForSpeed car = NeedForSpeed.nitro(); + assertThat(car.getDistanceDriven()).isEqualTo(0); + } + + @Test + void nitro_car_has_battery_not_drained() { + final NeedForSpeed car = NeedForSpeed.nitro(); + assertThat(car.batteryDrained()).isFalse(); + } + + @Test + void nitro_car_has_correct_speed() { + final NeedForSpeed car = NeedForSpeed.nitro(); + car.drive(); + assertThat(car.getDistanceDriven()).isEqualTo(50); + } + + @Test + void nitro_has_correct_battery_drain() { + + final NeedForSpeed car = NeedForSpeed.nitro(); + + // The battery is almost drained + for (int index = 0; index < 24; index++) { + car.drive(); + } + + assertThat(car.batteryDrained()).isFalse(); + + // Drain the battery + car.drive(); + + assertThat(car.batteryDrained()).isTrue(); + } + + @Test + void car_can_finish_with_car_that_can_easily_finish() { + + final int speed = 10; + final int batteryDrain = 2; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + final int distance = 100; + final RaceTrack race = new RaceTrack(distance); + + assertThat(race.tryFinishTrack(car)).isTrue(); + } + + @Test + void car_can_finish_with_car_that_can_just_finish() { + + final int speed = 2; + final int batteryDrain = 10; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + final int distance = 20; + final RaceTrack race = new RaceTrack(distance); + + assertThat(race.tryFinishTrack(car)).isTrue(); + } + + @Test + void car_can_finish_with_car_that_just_cannot_finish() { + + final int speed = 3; + final int batteryDrain = 20; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + final int distance = 16; + final RaceTrack race = new RaceTrack(distance); + + assertThat(race.tryFinishTrack(car)).isFalse(); + } + + @Test + void car_can_finish_with_car_that_cannot_finish() { + + final int speed = 1; + final int batteryDrain = 20; + final NeedForSpeed car = new NeedForSpeed(speed, batteryDrain); + + final int distance = 678; + final RaceTrack race = new RaceTrack(distance); + + assertThat(race.tryFinishTrack(car)).isFalse(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/PangramCheckerTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/PangramCheckerTest.java new file mode 100644 index 0000000..1b2ee75 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/PangramCheckerTest.java @@ -0,0 +1,66 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class PangramCheckerTest { + + private PangramChecker pangramChecker; + + @BeforeEach + void setup() { + pangramChecker = new PangramChecker(); + } + + @Test + void emptySentenceIsNotPangram() { + assertThat(pangramChecker.isPangram("")).isFalse(); + } + + @Test + void perfectLowerCasePhraseIsPangram() { + assertThat(pangramChecker.isPangram("abcdefghijklmnopqrstuvwxyz")).isTrue(); + } + + @Test + void phraseWithOnlyLowerCaseIsPangram() { + assertThat(pangramChecker.isPangram("the quick brown fox jumps over the lazy dog")).isTrue(); + } + + @Test + void phraseMissingCharacterXIsNotPangram() { + assertThat(pangramChecker.isPangram("a quick movement of the enemy will jeopardize five gunboats")).isFalse(); + } + + @Test + void phraseMissingCharacterHIsNotPangram() { + assertThat(pangramChecker.isPangram("five boxing wizards jump quickly at it")).isFalse(); + } + + @Test + void phraseWithUnderscoresIsPangram() { + assertThat(pangramChecker.isPangram("the_quick_brown_fox_jumps_over_the_lazy_dog")).isTrue(); + } + + @Test + void phraseWithNumbersIsPangram() { + assertThat(pangramChecker.isPangram("the 1 quick brown fox jumps over the 2 lazy dogs")).isTrue(); + } + + @Test + void phraseWithMissingLettersReplacedByNumbersIsNotPangram() { + assertThat(pangramChecker.isPangram("7h3 qu1ck brown fox jumps ov3r 7h3 lazy dog")).isFalse(); + } + + @Test + void phraseWithMixedCaseAndPunctuationIsPangram() { + assertThat(pangramChecker.isPangram("\"Five quacking Zephyrs jolt my wax bed.\"")).isTrue(); + } + + @Test + void caseInsensitivePhraseIsNotPangram() { + assertThat(pangramChecker.isPangram("the quick brown fox jumps over with lazy FX")).isFalse(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/ProverbTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/ProverbTest.java new file mode 100644 index 0000000..bdb7942 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/ProverbTest.java @@ -0,0 +1,77 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class ProverbTest { + + @Test + void zeroWordsAreGiven() { + + final String[] words = new String[0]; + + assertThat(new Proverb(words).recite()).isEqualTo(""); + } + + @Test + void singlePieceOfProverb() { + + final String[] words = { "nail" }; + + assertThat(new Proverb(words).recite()) + .isEqualTo("And all for the want of a nail."); + } + + @Test + void twoPiecesOfProverb() { + + final String[] words = { "nail", "shoe" }; + + assertThat(new Proverb(words).recite()) + .isEqualTo( + "For want of a nail the shoe was lost.\n" + + "And all for the want of a nail."); + } + + @Test + void shortChainOfConsequences() { + + final String[] words = { "nail", "shoe", "horse" }; + + assertThat(new Proverb(words).recite()) + .isEqualTo( + "For want of a nail the shoe was lost.\n" + + "For want of a shoe the horse was lost.\n" + + "And all for the want of a nail."); + } + + @Test + void fullProverb() { + + final String[] words = { "nail", "shoe", "horse", "rider", "message", "battle", "kingdom" }; + + assertThat(new Proverb(words).recite()) + .isEqualTo( + "For want of a nail the shoe was lost.\n" + + "For want of a shoe the horse was lost.\n" + + "For want of a horse the rider was lost.\n" + + "For want of a rider the message was lost.\n" + + "For want of a message the battle was lost.\n" + + "For want of a battle the kingdom was lost.\n" + + "And all for the want of a nail."); + } + + @Test + void fourPiecesModernizedProverb() { + + final String[] words = { "pin", "gun", "soldier", "battle" }; + + assertThat(new Proverb(words).recite()) + .isEqualTo( + "For want of a pin the gun was lost.\n" + + "For want of a gun the soldier was lost.\n" + + "For want of a soldier the battle was lost.\n" + + "And all for the want of a pin."); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/RaindropConverterTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/RaindropConverterTest.java new file mode 100644 index 0000000..d516bb7 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/RaindropConverterTest.java @@ -0,0 +1,103 @@ +package io.thoughtcode.java.exercism; + +import static io.thoughtcode.java.exercism.RaindropConverter.PLANG; +import static io.thoughtcode.java.exercism.RaindropConverter.PLING; +import static io.thoughtcode.java.exercism.RaindropConverter.PLONG; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class RaindropConverterTest { + + private final RaindropConverter raindropConverter = new RaindropConverter(); + + @Test + void soundFor1Is1() { + assertThat(raindropConverter.convert(1)).isEqualTo("1"); + } + + @Test + void soundFor3IsPling() { + assertThat(raindropConverter.convert(3)).isEqualTo(PLING); + } + + @Test + void soundFor5IsPlang() { + assertThat(raindropConverter.convert(5)).isEqualTo(PLANG); + } + + @Test + void soundFor7IsPlong() { + assertThat(raindropConverter.convert(7)).isEqualTo(PLONG); + } + + @Test + void soundFor6IsPlingAsItHasFactor3() { + assertThat(raindropConverter.convert(6)).isEqualTo(PLING); + } + + @Test + void noSoundFor2Cubed() { + assertThat(raindropConverter.convert(8)).isEqualTo("8"); + } + + @Test + void soundFor9IsPlingAsItHasFactor3() { + assertThat(raindropConverter.convert(9)).isEqualTo(PLING); + } + + @Test + void soundFor10IsPlangAsItHasFactor5() { + assertThat(raindropConverter.convert(10)).isEqualTo(PLANG); + } + + @Test + void soundFor14IsPlongAsItHasFactor7() { + assertThat(raindropConverter.convert(14)).isEqualTo(PLONG); + } + + @Test + void soundFor15IsPlingPlangAsItHasFactors3And5() { + assertThat(raindropConverter.convert(15)).isEqualTo("PlingPlang"); + } + + @Test + void soundFor21IsPlingPlongAsItHasFactors3And7() { + assertThat(raindropConverter.convert(21)).isEqualTo("PlingPlong"); + } + + @Test + void soundFor25IsPlangAsItHasFactor5() { + assertThat(raindropConverter.convert(25)).isEqualTo(PLANG); + } + + @Test + void soundFor27IsPlingAsItHasFactor3() { + assertThat(raindropConverter.convert(27)).isEqualTo(PLING); + } + + @Test + void soundFor35IsPlangPlongAsItHasFactors5And7() { + assertThat(raindropConverter.convert(35)).isEqualTo("PlangPlong"); + } + + @Test + void soundFor49IsPlongAsItHasFactor7() { + assertThat(raindropConverter.convert(49)).isEqualTo(PLONG); + } + + @Test + void noSoundFor52() { + assertThat(raindropConverter.convert(52)).isEqualTo("52"); + } + + @Test + void soundFor105IsPlingPlangPlongAsItHasFactors3And5And7() { + assertThat(raindropConverter.convert(105)).isEqualTo("PlingPlangPlong"); + } + + @Test + void soundFor3125IsPlangAsItHasFactor5() { + assertThat(raindropConverter.convert(3125)).isEqualTo(PLANG); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/RemoteControlCarDemoTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/RemoteControlCarDemoTest.java new file mode 100644 index 0000000..9d5e0df --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/RemoteControlCarDemoTest.java @@ -0,0 +1,43 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +class RemoteControlCarDemoTest { + + @Test + void race() { + + final ProductionRemoteControlCar productionCar = new ProductionRemoteControlCar(); + final ExperimentalRemoteControlCar experimentalCar = new ExperimentalRemoteControlCar(); + + RemoteControlCarDemo.race((RemoteControlCar) productionCar); + RemoteControlCarDemo.race((RemoteControlCar) productionCar); + RemoteControlCarDemo.race((RemoteControlCar) experimentalCar); + RemoteControlCarDemo.race((RemoteControlCar) experimentalCar); + + assertThat(experimentalCar.getDistanceTravelled() - productionCar.getDistanceTravelled()).isEqualTo(20); + } + + @Test + void rankCars() { + + final ProductionRemoteControlCar prc1 = new ProductionRemoteControlCar(); + final ProductionRemoteControlCar prc2 = new ProductionRemoteControlCar(); + + prc1.setNumberOfVictories(3); + prc2.setNumberOfVictories(2); + + final List rankings = RemoteControlCarDemo.getRankedCars(prc1, prc2); + + assertThat(rankings.get(1)).isEqualTo(prc1); + } + + @Test + void ensureCarsAreComparables() { + assertThat(RemoteControlCar.class).isAssignableFrom(ProductionRemoteControlCar.class); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/ResistorColorDuoTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/ResistorColorDuoTest.java new file mode 100644 index 0000000..be8bc70 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/ResistorColorDuoTest.java @@ -0,0 +1,50 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class ResistorColorDuoTest { + private ResistorColorDuo resistorColorDuo; + + @BeforeEach + void setup() { + resistorColorDuo = new ResistorColorDuo(); + } + + @Test + void testBrownAndBlack() { + final String[] colors = { "brown", "black" }; + final int expected = 10; + assertThat(resistorColorDuo.value(colors)).isEqualTo(expected); + } + + @Test + void testBlueAndGrey() { + final String[] colors = { "blue", "grey" }; + final int expected = 68; + assertThat(resistorColorDuo.value(colors)).isEqualTo(expected); + } + + @Test + void testYellowAndViolet() { + final String[] colors = { "yellow", "violet" }; + final int expected = 47; + assertThat(resistorColorDuo.value(colors)).isEqualTo(expected); + } + + @Test + void testOrangeAndOrange() { + final String[] colors = { "orange", "orange" }; + final int expected = 33; + assertThat(resistorColorDuo.value(colors)).isEqualTo(expected); + } + + @Test + void testIgnoreAdditionalColors() { + final String[] colors = { "green", "brown", "orange" }; + final int expected = 51; + assertThat(resistorColorDuo.value(colors)).isEqualTo(expected); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/ResistorColorTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/ResistorColorTest.java new file mode 100644 index 0000000..46c1ef3 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/ResistorColorTest.java @@ -0,0 +1,37 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class ResistorColorTest { + + private ResistorColor resistorColor; + + @BeforeEach + void setup() { + resistorColor = new ResistorColor(); + } + + @Test + void testBlackColorCode() { + assertThat(resistorColor.colorCode("black")).isEqualTo(0); + } + + @Test + void testWhiteColorCode() { + assertThat(resistorColor.colorCode("white")).isEqualTo(9); + } + + @Test + void testOrangeColorCode() { + assertThat(resistorColor.colorCode("orange")).isEqualTo(3); + } + + @Test + void testColors() { + assertThat(resistorColor.colors()).containsExactly( + "black", "brown", "red", "orange", "yellow", "green", "blue", "violet", "grey", "white"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/ReverseStringTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/ReverseStringTest.java new file mode 100644 index 0000000..d3897f6 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/ReverseStringTest.java @@ -0,0 +1,46 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class ReverseStringTest { + + private ReverseString fixture; + + @BeforeEach + void setUp() { + fixture = new ReverseString(); + } + + @Test + void testAnEmptyString() { + assertThat(fixture.reverse("")).isEqualTo(""); + } + + @Test + void testAWord() { + assertThat(fixture.reverse("robot")).isEqualTo("tobor"); + } + + @Test + void testACapitalizedWord() { + assertThat(fixture.reverse("Ramen")).isEqualTo("nemaR"); + } + + @Test + void testASentenceWithPunctuation() { + assertThat(fixture.reverse("I'm hungry!")).isEqualTo("!yrgnuh m'I"); + } + + @Test + void testAPalindrome() { + assertThat(fixture.reverse("racecar")).isEqualTo("racecar"); + } + + @Test + void testAnEvenSizedWord() { + assertThat(fixture.reverse("drawer")).isEqualTo("reward"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/RnaTranscriptionTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/RnaTranscriptionTest.java new file mode 100644 index 0000000..e7b7c3a --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/RnaTranscriptionTest.java @@ -0,0 +1,46 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class RnaTranscriptionTest { + + private RnaTranscription rnaTranscription; + + @BeforeEach + void setUp() { + rnaTranscription = new RnaTranscription(); + } + + @Test + void testEmptyRnaSequence() { + assertThat(rnaTranscription.transcribe("")).isEmpty(); + } + + @Test + void testRnaTranscriptionOfCytosineIsGuanine() { + assertThat(rnaTranscription.transcribe("C")).isEqualTo("G"); + } + + @Test + void testRnaTranscriptionOfGuanineIsCytosine() { + assertThat(rnaTranscription.transcribe("G")).isEqualTo("C"); + } + + @Test + void testRnaTranscriptionOfThymineIsAdenine() { + assertThat(rnaTranscription.transcribe("T")).isEqualTo("A"); + } + + @Test + void testRnaTranscriptionOfAdenineIsUracil() { + assertThat(rnaTranscription.transcribe("A")).isEqualTo("U"); + } + + @Test + void testRnaTranscription() { + assertThat(rnaTranscription.transcribe("ACGTGGTCTTAA")).isEqualTo("UGCACCAGAAUU"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/RotationalCipherTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/RotationalCipherTest.java new file mode 100644 index 0000000..f117d82 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/RotationalCipherTest.java @@ -0,0 +1,72 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class RotationalCipherTest { + + private RotationalCipher rotationalCipher; + + @Test + void rotateSingleCharacterBy0() { + rotationalCipher = new RotationalCipher(0); + assertThat(rotationalCipher.rotate("a")).isEqualTo("a"); + } + + @Test + void rotateSingleCharacterBy1() { + rotationalCipher = new RotationalCipher(1); + assertThat(rotationalCipher.rotate("a")).isEqualTo("b"); + } + + @Test + void rotateSingleCharacterBy26() { + rotationalCipher = new RotationalCipher(26); + assertThat(rotationalCipher.rotate("a")).isEqualTo("a"); + } + + @Test + void rotateSingleCharacterBy13() { + rotationalCipher = new RotationalCipher(13); + assertThat(rotationalCipher.rotate("z")).isEqualTo("m"); + } + + @Test + void rotateSingleCharacterWithWrapAround() { + rotationalCipher = new RotationalCipher(13); + assertThat(rotationalCipher.rotate("n")).isEqualTo("a"); + } + + @Test + void rotateCapitalLetters() { + rotationalCipher = new RotationalCipher(5); + assertThat(rotationalCipher.rotate("OMG")).isEqualTo("TRL"); + } + + @Test + void rotateSpaces() { + rotationalCipher = new RotationalCipher(5); + assertThat(rotationalCipher.rotate("O M G")).isEqualTo("T R L"); + } + + @Test + void rotateNumbers() { + rotationalCipher = new RotationalCipher(4); + assertThat(rotationalCipher.rotate("Testing 1 2 3 testing")) + .isEqualTo("Xiwxmrk 1 2 3 xiwxmrk"); + } + + @Test + void rotatePunctuation() { + rotationalCipher = new RotationalCipher(21); + assertThat(rotationalCipher.rotate("Let's eat, Grandma!")).isEqualTo("Gzo'n zvo, Bmviyhv!"); + } + + @Test + void rotateAllLetters() { + rotationalCipher = new RotationalCipher(13); + assertThat(rotationalCipher.rotate("Gur dhvpx oebja sbk whzcf bire gur ynml qbt.")) + .isEqualTo("The quick brown fox jumps over the lazy dog."); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/SaddlePointTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/SaddlePointTest.java new file mode 100644 index 0000000..0670a31 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/SaddlePointTest.java @@ -0,0 +1,152 @@ +package io.thoughtcode.java.exercism; + +import static java.util.Collections.emptyList; +import static java.util.Collections.emptySet; +import static java.util.Collections.singleton; +import static java.util.Collections.singletonList; +import static org.assertj.core.api.Assertions.assertThat; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +import org.junit.jupiter.api.Test; + +class SaddlePointTest { + + @Test + void testCanIdentifySingleSaddlePoint() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + Arrays.asList(9, 8, 7), + Arrays.asList(5, 3, 2), + Arrays.asList(6, 6, 7) + )); + + final Set expectedSaddlePoints = singleton(new MatrixCoordinate(2, 1)); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifyThatEmptyMatrixHasNoSaddlePoints() { + + final SaddlePoint matrix = new SaddlePoint(emptyList()); + + final Set expectedSaddlePoints = emptySet(); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifyLackOfSaddlePointsWhenThereAreNone() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + Arrays.asList(1, 2, 3), + Arrays.asList(3, 1, 2), + Arrays.asList(2, 3, 1) + )); + + final Set expectedSaddlePoints = emptySet(); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifyMultipleSaddlePointsInAColumn() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + Arrays.asList(4, 5, 4), + Arrays.asList(3, 5, 5), + Arrays.asList(1, 5, 4) + )); + + final Set expectedSaddlePoints = new HashSet<>(Arrays.asList( + new MatrixCoordinate(1, 2), + new MatrixCoordinate(2, 2), + new MatrixCoordinate(3, 2) + )); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifyMultipleSaddlePointsInARow() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + Arrays.asList(6, 7, 8), + Arrays.asList(5, 5, 5), + Arrays.asList(7, 5, 6) + )); + + final Set expectedSaddlePoints = new HashSet<>(Arrays.asList( + new MatrixCoordinate(2, 1), + new MatrixCoordinate(2, 2), + new MatrixCoordinate(2, 3) + )); + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifySaddlePointInBottomRightCorner() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + Arrays.asList(8, 7, 9), + Arrays.asList(6, 7, 6), + Arrays.asList(3, 2, 5) + )); + + final Set expectedSaddlePoints = singleton(new MatrixCoordinate(3, 3)); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifySaddlePointsInANonSquareMatrix() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + Arrays.asList(3, 1, 3), + Arrays.asList(3, 2, 4) + )); + + final Set expectedSaddlePoints = new HashSet<>(Arrays.asList( + new MatrixCoordinate(1, 3), + new MatrixCoordinate(1, 1) + )); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifyThatSaddlePointsInASingleColumnMatrixAreThoseWithMinimumValue() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + singletonList(2), + singletonList(1), + singletonList(4), + singletonList(1) + )); + + final Set expectedSaddlePoints = new HashSet<>(Arrays.asList( + new MatrixCoordinate(2, 1), + new MatrixCoordinate(4, 1) + )); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } + + @Test + void testCanIdentifyThatSaddlePointsInASingleRowMatrixAreThoseWithMaximumValue() { + + final SaddlePoint matrix = new SaddlePoint(Arrays.asList( + Arrays.asList(2, 5, 3, 5) + )); + + final Set expectedSaddlePoints = new HashSet<>(Arrays.asList( + new MatrixCoordinate(1, 2), + new MatrixCoordinate(1, 4) + )); + + assertThat(matrix.getSaddlePoints()).isEqualTo(expectedSaddlePoints); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/SalaryCalculatorTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/SalaryCalculatorTest.java new file mode 100644 index 0000000..d44acaf --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/SalaryCalculatorTest.java @@ -0,0 +1,71 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class SalaryCalculatorTest { + + SalaryCalculator calculator; + + @BeforeEach + void setUp() { + calculator = new SalaryCalculator(); + } + + @Test + void regularSalary() { + assertThat(calculator.finalSalary(0, 0)).isEqualTo(1000.0); + } + + @Test + void skippedBelowThreshold() { + assertThat(calculator.finalSalary(3, 0)).isEqualTo(1000.0); + } + + @Test + void skippedAboveThreshold() { + assertThat(calculator.finalSalary(7, 0)).isEqualTo(850.0); + } + + @Test + void soldBelowThreshold() { + assertThat(calculator.finalSalary(0, 10)).isEqualTo(1100.0); + } + + @Test + void soldAboveThreshold() { + assertThat(calculator.finalSalary(0, 25)).isEqualTo(1325.0); + } + + @Test + void skippedBelowThresholdAndSoldBelowThreshold() { + assertThat(calculator.finalSalary(2, 5)).isEqualTo(1050.0); + } + + @Test + void skippedBelowThresholdAndSoldAboveThreshold() { + assertThat(calculator.finalSalary(4, 40)).isEqualTo(1520.0); + } + + @Test + void skippedAboveThresholdAndSoldBelowThreshold() { + assertThat(calculator.finalSalary(10, 2)).isEqualTo(870.0); + } + + @Test + void skippedAboveThresholdAndSoldAboveThreshold() { + assertThat(calculator.finalSalary(7, 50)).isEqualTo(1500.0); + } + + @Test + void salaryCanReachCloseToMaximum() { + assertThat(calculator.finalSalary(0, 76)).isEqualTo(1988.0); + } + + @Test + void salaryRespectMaximum() { + assertThat(calculator.finalSalary(0, 77)).isEqualTo(2000.0); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/SaySayTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/SaySayTest.java new file mode 100644 index 0000000..7bd7dae --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/SaySayTest.java @@ -0,0 +1,89 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + +import org.junit.jupiter.api.Test; + +class SaySayTest { + + private final SaySay say = new SaySay(); + + @Test + void zero() { + assertThat(say.say(0)).isEqualTo("zero"); + } + + @Test + void one() { + assertThat(say.say(1)).isEqualTo("one"); + } + + @Test + void fourteen() { + assertThat(say.say(14)).isEqualTo("fourteen"); + } + + @Test + void twenty() { + assertThat(say.say(20)).isEqualTo("twenty"); + } + + @Test + void twentyTwo() { + assertThat(say.say(22)).isEqualTo("twenty-two"); + } + + @Test + void oneHundred() { + assertThat(say.say(100)).isEqualTo("one hundred"); + } + + @Test + void oneHundredTwentyThree() { + assertThat(say.say(123)).isEqualTo("one hundred twenty-three"); + } + + @Test + void oneThousand() { + assertThat(say.say(1_000)).isEqualTo("one thousand"); + } + + @Test + void oneThousandTwoHundredThirtyFour() { + assertThat(say.say(1_234)).isEqualTo("one thousand two hundred thirty-four"); + } + + @Test + void oneMillion() { + assertThat(say.say(1_000_000)).isEqualTo("one million"); + } + + @Test + void oneMillionTwoThousandThreeHundredFortyFive() { + assertThat(say.say(1_002_345)).isEqualTo("one million two thousand three hundred forty-five"); + } + + @Test + void oneBillion() { + assertThat(say.say(1_000_000_000)).isEqualTo("one billion"); + } + + @Test + void nineHundredEightySevenBillionSixHundredFiftyFourThreeHundredTwentyOneThousandOneHundredTwentyThree() { + assertThat(say.say(987_654_321_123L)) + .isEqualTo("nine hundred eighty-seven billion six hundred fifty-four million" + + " three hundred twenty-one thousand one hundred twenty-three"); + } + + @Test + void illegalNegativeNumber() { + assertThatExceptionOfType(IllegalArgumentException.class).isThrownBy(() -> say.say(-1)); + } + + @Test + void illegalTooBigNumber() { + assertThatExceptionOfType(IllegalArgumentException.class) + .isThrownBy(() -> say.say(NamedNumber.TRILLION.getNumber())); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/ScrabbleScoreTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/ScrabbleScoreTest.java new file mode 100644 index 0000000..d33c2b0 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/ScrabbleScoreTest.java @@ -0,0 +1,74 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class ScrabbleScoreTest { + + @Test + void testALowerCaseLetter() { + final ScrabbleScore scrabble = new ScrabbleScore("a"); + assertThat(scrabble.getScore()).isEqualTo(1); + } + + @Test + void testAUpperCaseLetter() { + final ScrabbleScore scrabble = new ScrabbleScore("A"); + assertThat(scrabble.getScore()).isEqualTo(1); + } + + @Test + void testAValuableLetter() { + final ScrabbleScore scrabble = new ScrabbleScore("f"); + assertThat(scrabble.getScore()).isEqualTo(4); + } + + @Test + void testAShortWord() { + final ScrabbleScore scrabble = new ScrabbleScore("at"); + assertThat(scrabble.getScore()).isEqualTo(2); + } + + @Test + void testAShortValuableWord() { + final ScrabbleScore scrabble = new ScrabbleScore("zoo"); + assertThat(scrabble.getScore()).isEqualTo(12); + } + + @Test + void testAMediumWord() { + final ScrabbleScore scrabble = new ScrabbleScore("street"); + assertThat(scrabble.getScore()).isEqualTo(6); + } + + @Test + void testAMediumValuableWord() { + final ScrabbleScore scrabble = new ScrabbleScore("quirky"); + assertThat(scrabble.getScore()).isEqualTo(22); + } + + @Test + void testALongMixCaseWord() { + final ScrabbleScore scrabble = new ScrabbleScore("OxyphenButazone"); + assertThat(scrabble.getScore()).isEqualTo(41); + } + + @Test + void testAEnglishLikeWord() { + final ScrabbleScore scrabble = new ScrabbleScore("pinata"); + assertThat(scrabble.getScore()).isEqualTo(8); + } + + @Test + void testAnEmptyInput() { + final ScrabbleScore scrabble = new ScrabbleScore(""); + assertThat(scrabble.getScore()).isEqualTo(0); + } + + @Test + void testEntireAlphabetAvailable() { + final ScrabbleScore scrabble = new ScrabbleScore("abcdefghijklmnopqrstuvwxyz"); + assertThat(scrabble.getScore()).isEqualTo(87); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/SpaceAgeTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/SpaceAgeTest.java new file mode 100644 index 0000000..775102a --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/SpaceAgeTest.java @@ -0,0 +1,51 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.assertj.core.data.Offset; +import org.junit.jupiter.api.Test; + +class SpaceAgeTest { + + private static final Offset MAXIMUM_DELTA = Offset.offset(1E-02); + + @Test + void ageOnEarth() { + assertThat(new SpaceAge(1_000_000_000).onEarth()).isEqualTo(31.69, MAXIMUM_DELTA); + } + + @Test + void ageOnMercury() { + assertThat(new SpaceAge(2_134_835_688).onMercury()).isEqualTo(280.88, MAXIMUM_DELTA); + } + + @Test + void ageOnVenus() { + assertThat(new SpaceAge(189_839_836).onVenus()).isEqualTo(9.78, MAXIMUM_DELTA); + } + + @Test + void ageOnMars() { + assertThat(new SpaceAge(2_129_871_239).onMars()).isEqualTo(35.88, MAXIMUM_DELTA); + } + + @Test + void ageOnJupiter() { + assertThat(new SpaceAge(901_876_382).onJupiter()).isEqualTo(2.41, MAXIMUM_DELTA); + } + + @Test + void ageOnSaturn() { + assertThat(new SpaceAge(2_000_000_000).onSaturn()).isEqualTo(2.15, MAXIMUM_DELTA); + } + + @Test + void ageOnUranus() { + assertThat(new SpaceAge(1_210_123_456).onUranus()).isEqualTo(0.46, MAXIMUM_DELTA); + } + + @Test + void ageOnNeptune() { + assertThat(new SpaceAge(1_821_023_456).onNeptune()).isEqualTo(0.35, MAXIMUM_DELTA); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/SqueakyCleanTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/SqueakyCleanTest.java new file mode 100644 index 0000000..20ece45 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/SqueakyCleanTest.java @@ -0,0 +1,76 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; + +class SqueakyCleanTest { + + private final SqueakyClean fixture = new SqueakyClean(); + + @Test + void empty() { + new SqueakyClean(); + assertThat(fixture.clean("")).isEmpty(); + } + + @Test + void single_letter() { + assertThat(fixture.clean("A")).isEqualTo("A"); + } + + @Test + void string() { + assertThat(fixture.clean("àḃç")).isEqualTo("àḃç"); + } + + @Test + void spaces() { + assertThat(fixture.clean("my Id")).isEqualTo("my___Id"); + } + + @Test + void leading_and_trailing_spaces() { + assertThat(fixture.clean(" myId ")).isEqualTo("_myId_"); + } + + @Test + void ctrl() { + assertThat(fixture.clean("my\0\r\u007FId")).isEqualTo("myCTRLCTRLCTRLId"); + } + + @Test + void string_with_no_letters() { + assertThat(fixture.clean("\uD83D\uDE00\uD83D\uDE00\uD83D\uDE00")).isEmpty(); + } + + @Test + void keep_only_letters() { + assertThat(fixture.clean("a1\uD83D\uDE002\uD83D\uDE003\uD83D\uDE00b")).isEqualTo("ab"); + } + + @Test + void kebab_to_camel_case() { + assertThat(fixture.clean("à-ḃç")).isEqualTo("àḂç"); + } + + @Test + void kebab_to_camel_case_no_letter() { + assertThat(fixture.clean("a-1C")).isEqualTo("aC"); + } + + @Test + void omit_lower_case_greek_letters() { + assertThat(fixture.clean("MyΟβιεγτFinder")).isEqualTo("MyΟFinder"); + } + + @Test + void combine_conversions() { + assertThat(fixture.clean("9 -abcĐ\uD83D\uDE00ω\0")).isEqualTo("_AbcĐCTRL"); + } + + @Test + void kebab_to_camel_case_hyphen_at_the_end() { + assertThat(fixture.clean("a-")).isEqualTo("a-"); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/TriangleTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/TriangleTest.java new file mode 100644 index 0000000..6aac93c --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/TriangleTest.java @@ -0,0 +1,151 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + +import org.junit.jupiter.api.Test; + +class TriangleTest { + + @Test + void equilateralTrianglesHaveEqualSides() throws TriangleException { + + final Triangle triangle = new Triangle(2, 2, 2); + + assertThat(triangle.isEquilateral()).isTrue(); + } + + @Test + void trianglesWithOneUnequalSideAreNotEquilateral() throws TriangleException { + + final Triangle triangle = new Triangle(2, 3, 2); + + assertThat(triangle.isEquilateral()).isFalse(); + } + + @Test + void trianglesWithNoEqualSidesAreNotEquilateral() throws TriangleException { + + final Triangle triangle = new Triangle(5, 4, 6); + + assertThat(triangle.isEquilateral()).isFalse(); + } + + @Test + void trianglesWithNoSizeAreIllegal() { + assertThatExceptionOfType(TriangleException.class) + .isThrownBy(() -> new Triangle(0, 0, 0)); + } + + @Test + void verySmallTrianglesCanBeEquilateral() throws TriangleException { + + final Triangle triangle = new Triangle(0.5, 0.5, 0.5); + + assertThat(triangle.isEquilateral()).isTrue(); + } + + @Test + void isoscelesTrianglesHaveLastTwoSidesEqual() throws TriangleException { + + final Triangle triangle = new Triangle(3, 4, 4); + + assertThat(triangle.isIsosceles()).isTrue(); + } + + @Test + void isoscelesTrianglesHaveTwoFirstSidesEqual() throws TriangleException { + + final Triangle triangle = new Triangle(4, 4, 3); + + assertThat(triangle.isIsosceles()).isTrue(); + } + + @Test + void isoscelesTrianglesHaveFirstAndLastSidesEqual() throws TriangleException { + + final Triangle triangle = new Triangle(4, 3, 4); + + assertThat(triangle.isIsosceles()).isTrue(); + } + + @Test + void equilateralTrianglesAreAlsoIsosceles() throws TriangleException { + + final Triangle triangle = new Triangle(4, 4, 4); + + assertThat(triangle.isIsosceles()).isTrue(); + } + + @Test + void noSidesAreEqualCantBeIsoceles() throws TriangleException { + + final Triangle triangle = new Triangle(2, 3, 4); + + assertThat(triangle.isIsosceles()).isFalse(); + } + + @Test + void firstTriangleInequalityViolation() { + assertThatExceptionOfType(TriangleException.class) + .isThrownBy(() -> new Triangle(1, 1, 3)); + } + + @Test + void secondTriangleInequalityViolation() { + assertThatExceptionOfType(TriangleException.class) + .isThrownBy(() -> new Triangle(1, 3, 1)); + } + + @Test + void thirdTriangleInequalityViolation() { + assertThatExceptionOfType(TriangleException.class) + .isThrownBy(() -> new Triangle(3, 1, 1)); + } + + @Test + void verySmallTrianglesCanBeIsosceles() throws TriangleException { + + final Triangle triangle = new Triangle(0.5, 0.4, 0.5); + + assertThat(triangle.isIsosceles()).isTrue(); + } + + @Test + void scaleneTrianglesHaveNoEqualSides() throws TriangleException { + + final Triangle triangle = new Triangle(5, 4, 6); + + assertThat(triangle.isScalene()).isTrue(); + } + + @Test + void allSidesEqualAreNotScalene() throws TriangleException { + + final Triangle triangle = new Triangle(4, 4, 4); + + assertThat(triangle.isScalene()).isFalse(); + } + + @Test + void twoSidesEqualAreNotScalene() throws TriangleException { + + final Triangle triangle = new Triangle(4, 4, 3); + + assertThat(triangle.isScalene()).isFalse(); + } + + @Test + void mayNotViolateTriangleInequality() { + assertThatExceptionOfType(TriangleException.class) + .isThrownBy(() -> new Triangle(7, 3, 2)); + } + + @Test + void verySmallTrianglesCanBeScalene() throws TriangleException { + + final Triangle triangle = new Triangle(0.5, 0.4, 0.6); + + assertThat(triangle.isScalene()).isTrue(); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/TwelveDaysTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/TwelveDaysTest.java new file mode 100644 index 0000000..e658407 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/TwelveDaysTest.java @@ -0,0 +1,190 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class TwelveDaysTest { + private TwelveDays twelveDays; + + @BeforeEach + void setup() { + twelveDays = new TwelveDays(); + } + + @Test + void testVerseOne() { + final String expectedVerseOne = "On the first day of Christmas my true love gave to me: " + + "a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(1)).isEqualTo(expectedVerseOne); + } + + @Test + void testVerseTwo() { + final String expectedVerseTwo = "On the second day of Christmas my true love gave to me: " + + "two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(2)).isEqualTo(expectedVerseTwo); + } + + @Test + void testVerseThree() { + final String expectedVerseThree = "On the third day of Christmas my true love gave to me: " + + "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(3)).isEqualTo(expectedVerseThree); + } + + @Test + void testVerseFour() { + final String expectedVerseFour = "On the fourth day of Christmas my true love gave to me: " + + "four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(4)).isEqualTo(expectedVerseFour); + } + + @Test + void testVerseFive() { + final String expectedVerseFive = "On the fifth day of Christmas my true love gave to me: " + + "five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(5)).isEqualTo(expectedVerseFive); + } + + @Test + void testVerseSix() { + final String expectedVerseSix = "On the sixth day of Christmas my true love gave to me: " + + "six Geese-a-Laying, five Gold Rings, four Calling Birds, " + + "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(6)).isEqualTo(expectedVerseSix); + } + + @Test + void testVerseSeven() { + final String expectedVerseSeven = "On the seventh day of Christmas my true love gave to me: " + + "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds," + + " three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(7)).isEqualTo(expectedVerseSeven); + } + + @Test + void testVerseEight() { + final String expectedVerseEight = "On the eighth day of Christmas my true love gave to me: " + + "eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, " + + "five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(8)).isEqualTo(expectedVerseEight); + } + + @Test + void testVerseNine() { + final String expectedVerseNine = "On the ninth day of Christmas my true love gave to me: " + + "nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, " + + "six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, " + + "two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(9)).isEqualTo(expectedVerseNine); + } + + @Test + void testVerseTen() { + final String expectedVerseTen = "On the tenth day of Christmas my true love gave to me: " + + "ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, " + + "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, " + + "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(10)).isEqualTo(expectedVerseTen); + } + + @Test + void testVerseEleven() { + final String expectedVerseEleven = "On the eleventh day of Christmas my true love gave to me: " + + "eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, " + + "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, " + + "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(11)).isEqualTo(expectedVerseEleven); + } + + @Test + void testVerseTwelve() { + final String expectedVerseTwelve = "On the twelfth day of Christmas my true love gave to me: " + + "twelve Drummers Drumming, eleven Pipers Piping, ten Lords-a-Leaping, " + + "nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, " + + "six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, " + + "two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verse(12)).isEqualTo(expectedVerseTwelve); + } + + @Test + void testFirstThreeVerses() { + final String expectedVersesOneToThree = "On the first day of Christmas my true love gave to me: " + + "a Partridge in a Pear Tree.\n\n" + + "On the second day of Christmas my true love gave to me: two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n\n" + + "On the third day of Christmas my true love gave to me: three French Hens, " + + "two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verses(1, 3)).isEqualTo(expectedVersesOneToThree); + } + + @Test + void testFourthToSixthVerses() { + final String expectedVersesFourToSix = "On the fourth day of Christmas my true love gave to me: " + + "four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n\n" + + "On the fifth day of Christmas my true love gave to me: five Gold Rings, " + + "four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n\n" + + "On the sixth day of Christmas my true love gave to me: six Geese-a-Laying, " + + "five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.verses(4, 6)).isEqualTo(expectedVersesFourToSix); + } + + @Test + void testSingWholeSong() { + final String expectedSong = "On the first day of Christmas my true love gave to me: " + + "a Partridge in a Pear Tree.\n" + + "\n" + + "On the second day of Christmas my true love gave to me: two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n" + + "\n" + + "On the third day of Christmas my true love gave to me: three French Hens, " + + "two Turtle Doves, and a Partridge in a Pear Tree.\n" + + "\n" + + "On the fourth day of Christmas my true love gave to me: four Calling Birds, " + + "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n" + + "\n" + + "On the fifth day of Christmas my true love gave to me: five Gold Rings, " + + "four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n" + + "\n" + + "On the sixth day of Christmas my true love gave to me: six Geese-a-Laying, " + + "five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n" + + "\n" + + "On the seventh day of Christmas my true love gave to me: seven Swans-a-Swimming, " + + "six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, " + + "two Turtle Doves, and a Partridge in a Pear Tree.\n" + + "\n" + + "On the eighth day of Christmas my true love gave to me: eight Maids-a-Milking, " + + "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, " + + "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n" + + "\n" + + "On the ninth day of Christmas my true love gave to me: nine Ladies Dancing, " + + "eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, " + + "four Calling Birds, three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n" + + "\n" + + "On the tenth day of Christmas my true love gave to me: ten Lords-a-Leaping, " + + "nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, six Geese-a-Laying, " + + "five Gold Rings, four Calling Birds, three French Hens, two Turtle Doves, " + + "and a Partridge in a Pear Tree.\n" + + "\n" + + "On the eleventh day of Christmas my true love gave to me: eleven Pipers Piping, " + + "ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, seven Swans-a-Swimming, " + + "six Geese-a-Laying, five Gold Rings, four Calling Birds, three French Hens, " + + "two Turtle Doves, and a Partridge in a Pear Tree.\n" + + "\n" + + "On the twelfth day of Christmas my true love gave to me: twelve Drummers Drumming, " + + "eleven Pipers Piping, ten Lords-a-Leaping, nine Ladies Dancing, eight Maids-a-Milking, " + + "seven Swans-a-Swimming, six Geese-a-Laying, five Gold Rings, four Calling Birds, " + + "three French Hens, two Turtle Doves, and a Partridge in a Pear Tree.\n"; + assertThat(twelveDays.sing()).isEqualTo(expectedSong); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/TwoFerTest.java b/exercism/src/test/java/io/thoughtcode/java/exercism/TwoFerTest.java new file mode 100644 index 0000000..1de72e5 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/TwoFerTest.java @@ -0,0 +1,34 @@ +package io.thoughtcode.java.exercism; + +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +class TwoFerTest { + + private TwoFer twofer; + + @BeforeEach + void setup() { + twofer = new TwoFer(); + } + + @Test + void noNameGiven() { + assertThat(twofer.twofer(null)) + .isEqualTo("One for you, one for me."); + } + + @Test + void aNameGiven() { + assertThat(twofer.twofer("Alice")) + .isEqualTo("One for Alice, one for me."); + } + + @Test + void anotherNameGiven() { + assertThat(twofer.twofer("Bob")) + .isEqualTo("One for Bob, one for me."); + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/utils/Lasagna.java b/exercism/src/test/java/io/thoughtcode/java/exercism/utils/Lasagna.java new file mode 100644 index 0000000..4fc06e4 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/utils/Lasagna.java @@ -0,0 +1,42 @@ +package io.thoughtcode.java.exercism.utils; + +public class Lasagna extends ReflectionProxy { + + @Override + public String getTargetClassName() { + return "io.thoughtcode.java.exercism.Lasagna"; + } + + public int expectedMinutesInOven() { + try { + return invokeMethod("expectedMinutesInOven", new Class[] {}); + } catch (final Exception e) { + throw new UnsupportedOperationException("Please implement the expectedMinutesInOven() method", e); + } + } + + public int remainingMinutesInOven(final int actualMinutes) { + try { + return invokeMethod("remainingMinutesInOven", new Class[] { int.class }, actualMinutes); + } catch (final Exception e) { + throw new UnsupportedOperationException("Please implement the remainingMinutesInOven(int) method", e); + } + } + + public int preparationTimeInMinutes(final int amountLayers) { + try { + return invokeMethod("preparationTimeInMinutes", new Class[] { int.class }, amountLayers); + } catch (final Exception e) { + throw new UnsupportedOperationException("Please implement the preparationTimeInMinutes(int) method", e); + } + } + + public int totalTimeInMinutes(final int amountLayers, final int actualMinutes) { + try { + return invokeMethod("totalTimeInMinutes", new Class[] { int.class, int.class }, amountLayers, + actualMinutes); + } catch (final Exception e) { + throw new UnsupportedOperationException("Please implement the totalTimeInMinutes(int, int) method", e); + } + } +} diff --git a/exercism/src/test/java/io/thoughtcode/java/exercism/utils/ReflectionProxy.java b/exercism/src/test/java/io/thoughtcode/java/exercism/utils/ReflectionProxy.java new file mode 100644 index 0000000..a21d3a2 --- /dev/null +++ b/exercism/src/test/java/io/thoughtcode/java/exercism/utils/ReflectionProxy.java @@ -0,0 +1,497 @@ +package io.thoughtcode.java.exercism.utils; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.lang.reflect.ParameterizedType; + +import static java.lang.Class.forName; + +@SuppressWarnings("unchecked") +public abstract class ReflectionProxy { + + /** + * An instance of the target class (if found) + */ + private final Object target; + + /** + * A constructor to instantiate the target class with parameters + * @param args An array of parameters matching the constructor from the target class + */ + protected ReflectionProxy(final Object... args) { + this.target = instantiateTarget(args); + } + + /** + * Abstract method that defines the fully qualified name of the target class + * @return The fully qualified name of the target class + */ + public abstract String getTargetClassName(); + + /** + * Getter for the target instance + * @return The target instance + */ + public Object getTarget() { + return target; + } + + /** + * Gets the target class + * @return The target class if it exists, null otherwise + */ + public Class getTargetClass() { + + Class result = null; + + try { + result = forName(this.getTargetClassName()); + } catch (final ClassNotFoundException e) { + result = null; + } + + return result; + } + + /** + * Checks if the target class has a specific method + * @param name The name of the method to find + * @param parameterTypes The list of parameter types + * @return True if the method is found, false otherwise + */ + public boolean hasMethod(final String name, final Class... parameterTypes) { + final Class targetClass = getTargetClass(); + boolean hasMethod = false; + if (targetClass == null || name == null) { + hasMethod = false; + } else { + try { + final Method method = targetClass.getDeclaredMethod(name, parameterTypes); + hasMethod = method != null; + } catch (final NoSuchMethodException e) { + hasMethod = false; + } + } + return hasMethod; + } + + /** + * Checks if a method from the target class is public + * @param name The name of the method + * @param parameterTypes A list of method parameters + * @return True if the method exists and is public, false otherwise + */ + public boolean isMethodPublic(final String name, final Class... parameterTypes) { + final Class targetClass = getTargetClass(); + boolean isMethodPublic = false; + if (targetClass == null || name == null) { + isMethodPublic = false; + } else { + try { + final Method method = targetClass.getDeclaredMethod(name, parameterTypes); + isMethodPublic = Modifier.isPublic(method.getModifiers()); + } catch (final NoSuchMethodException e) { + isMethodPublic = false; + } + } + return isMethodPublic; + } + + /** + * Checks if a method from the target class returns the correct type + * @param returnType The type of return value + * @param name The name of the method + * @param parameterTypes The list of method parameters + * @return + */ + public boolean isMethodReturnType(final Class returnType, final String name, final Class... parameterTypes) { + return isMethodReturnType(returnType, null, name, parameterTypes); + } + + /** + * Invokes a method from the target instance + * @param methodName The name of the method + * @param parameterTypes The list of parameter types + * @param parameterValues The list with values for the method parameters + * @param The result type we expect the method to be + * @return The value returned by the method + */ + protected T invokeMethod(final String methodName, final Class[] parameterTypes, final Object... parameterValues) { + if (target == null) { + return null; + } + try { + // getDeclaredMethod is used to get protected/private methods + final Method method = target.getClass().getDeclaredMethod(methodName, parameterTypes); + method.setAccessible(true); + return (T) method.invoke(target, parameterValues); + } catch (final NoSuchMethodException e) { + try { + // try getting it from parent class, but only public methods will work + final Method method = target.getClass().getMethod(methodName, parameterTypes); + method.setAccessible(true); + return (T) method.invoke(target, parameterValues); + } catch (final Exception ex) { + return null; + } + } catch (final Exception e) { + return null; + } + } + + /** + * Creates an instance of the target class + * @param args The list of constructor parameters + * @return An instance of the target class, if found, or null otherwise + */ + private Object instantiateTarget(final Object... args) { + final Class targetClass = getTargetClass(); + if (targetClass == null) { + return null; + } + final Constructor[] constructors = getAllConstructors(); + for (final Constructor constructor : constructors) { + if (constructor.getParameterCount() == args.length) { + try { + return constructor.newInstance(args); + } catch (final Exception e) { + // do nothing; + } + } + } + return null; + } + + /** + * Gets a list with all the constructors defined by the target class + * @return A list with all constructor definitions + */ + private Constructor[] getAllConstructors() { + final Class targetClass = getTargetClass(); + if (targetClass == null) { + return new Constructor[]{}; + } + return targetClass.getConstructors(); + } + + + //region Unused + + /** + * The default constructor, for when you have already an instance of the target class + * @param target An instance of the target class + */ + protected ReflectionProxy(final Object target) { + this.target = target; + } + + /** + * Checks if the target class exists + * @return True if the class exists, false otherwise + */ + public boolean existsClass() { + return getTargetClass() != null; + } + + /** + * Checks if the class implements a specific interface + * @param anInterface The interface to check + * @return True if the class implements the referred interface, false otherwise + */ + public boolean implementsInterface(final Class anInterface) { + final Class targetClass = getTargetClass(); + if (targetClass == null || anInterface == null) { + return false; + } + return anInterface.isAssignableFrom(targetClass); + } + + /** + * Checks if the target class has a specific property + * @param name The name of the property to find + * @return True if the property is found, false otherwise + */ + public boolean hasProperty(final String name) { + final Class targetClass = getTargetClass(); + if (targetClass == null || name == null) { + return false; + } + try { + return targetClass.getDeclaredField(name) != null; + } catch (final NoSuchFieldException e) { + return false; + } + } + + /** + * Checks if an existing property has the type we expect + * @param name The name of the property to check + * @param type The type you are expecting the property to be + * @return True if the property is found and has the specified type, false otherwise + */ + public boolean isPropertyOfType(final String name, final Class type) { + return isPropertyOfType(name, type, null); + } + + /** + * Checks if an existing Collection type has the parameterized type (Generics) as expected (eg. List) + * @param name The name of the property + * @param type The type of the property (eg. List) + * @param parameterizedType The parameterized property (eg. String) + * @return True if the parameterized type matches the desired type, false otherwise + */ + public boolean isPropertyOfType(final String name, final Class type, final Class parameterizedType) { + final Class targetClass = getTargetClass(); + if (targetClass == null || name == null || type == null) { + return false; + } + try { + final Field field = targetClass.getDeclaredField(name); + if (!field.getType().equals(type)) { + return false; + } + if (parameterizedType == null) { + return true; + } + if (!(field.getGenericType() instanceof ParameterizedType)) { + return false; + } + final ParameterizedType pType = (ParameterizedType) field.getGenericType(); + return pType.getActualTypeArguments()[0].equals(parameterizedType); + + } catch (final NoSuchFieldException e) { + return false; + } + } + + /** + * Checks if a property is private + * @param name The name of the property + * @return True if the property exists and is private, false otherwise + */ + public boolean isPropertyPrivate(String name) { + final Class targetClass = getTargetClass(); + if (targetClass == null || name == null) { + return false; + } + try { + return Modifier.isPrivate(targetClass.getDeclaredField(name).getModifiers()); + } catch (final NoSuchFieldException e) { + return false; + } + } + + /** + * Checks if a method from the target class returns a correct parameterized collection (Generics) + * @param returnType The return type we expect (eg. List) + * @param parameterizedType The parameterized type we expect (eg. String) + * @param name The name of the method + * @param parameterTypes A list of method parameter types + * @return True if the method returns the correct parameterized collection, false otherwise + */ + public boolean isMethodReturnType(final Class returnType, final Class parameterizedType, + final String name, final Class... parameterTypes) { + final Class targetClass = getTargetClass(); + if (targetClass == null || name == null) { + return false; + } + try { + final Method method = targetClass.getDeclaredMethod(name, parameterTypes); + if (!method.getReturnType().equals(returnType)) { + return false; + } + if (parameterizedType == null) { + return true; + } + if (!(method.getGenericReturnType() instanceof ParameterizedType)) { + return false; + } + final ParameterizedType pType = (ParameterizedType) method.getGenericReturnType(); + return pType.getActualTypeArguments()[0].equals(parameterizedType); + } catch (final NoSuchMethodException e) { + return false; + } + } + + /** + * Checks if a target class has a specific constructor + * @param parameterTypes The list of desired parameter types + * @return True if the constructor exists, false otherwise + */ + public boolean hasConstructor(final Class... parameterTypes) { + final Class targetClass = getTargetClass(); + if (targetClass == null) { + return false; + } + try { + final Constructor constructor = targetClass.getDeclaredConstructor(parameterTypes); + return constructor != null; + } catch (final NoSuchMethodException e) { + return false; + } + } + + /** + * Checks if a specific constructor from the target class is public + * @param parameterTypes A list of parameter types + * @return True if the constructor is found and is public, false otherwise + */ + public boolean isConstructorPublic(final Class... parameterTypes) { + final Class targetClass = getTargetClass(); + if (targetClass == null) { + return false; + } + try { + final Constructor constructor = targetClass.getDeclaredConstructor(parameterTypes); + return Modifier.isPublic(constructor.getModifiers()); + } catch (final NoSuchMethodException e) { + return false; + } + } + + /** + * Proxy for the 'equals' method + * @param obj The ReflexionProxy object you want to compare against + * @return True if both targets are equal, false otherwise + */ + public boolean equals(Object obj) { + if (target == null || !(obj instanceof ReflectionProxy)) { + return false; + } + try { + final Method method = target.getClass().getMethod("equals", Object.class); + method.setAccessible(true); + return (boolean) method.invoke(target, ((ReflectionProxy) obj).getTarget()); + } catch (final Exception e) { + return false; + } + } + + /** + * Proxy for the 'hashCode' method + * @return The hashCode from the target class + */ + public int hashCode() { + if (target == null) { + return 0; + } + try { + final Method method = target.getClass().getMethod("hashCode"); + method.setAccessible(true); + return (int) method.invoke(target); + } catch (final Exception e) { + return 0; + } + } + + /** + * Proxy for the 'toString' method from the target class + * @return The result of 'toString' from the target instance + */ + public String toString() { + return invokeMethod("toString", new Class[]{ }); + } + + /** + * Gets a property value from the target instance (if it exists) + * @param propertyName The name of the property + * @param The type we are expecting it to be + * @return The value of the property (if it exists) + */ + protected T getPropertyValue(final String propertyName) { + if (target == null || !hasProperty(propertyName)) { + return null; + } + try { + final Field field = target.getClass().getDeclaredField(propertyName); + field.setAccessible(true); + return (T) field.get(target); + } catch (Exception e) { + return null; + } + } + + /** + * Checks if the target class is abstract + * @return True if the target class exists and is abstract, false otherwise + */ + public boolean isAbstract() { + final Class targetClass = getTargetClass(); + if (targetClass == null) { + return false; + } + return Modifier.isAbstract(targetClass.getModifiers()); + } + + /** + * Checks if the target class extends another + * @param className The fully qualified name of the class it should extend + * @return True if the target class extends the specified one, false otherwise + */ + public boolean extendsClass(final String className) { + final Class targetClass = getTargetClass(); + if (targetClass == null) { + return false; + } + try { + final Class parentClass = Class.forName(className); + return parentClass.isAssignableFrom(targetClass); + } catch (final ClassNotFoundException e) { + return false; + } + } + + /** + * Checks if the target class is an interface + * @return True if the target class exists and is an interface, false otherwise + */ + public boolean isInterface() { + final Class targetClass = getTargetClass(); + if (targetClass == null) { + return false; + } + return targetClass.isInterface(); + } + + /** + * Checks if a method is abstract + * @param name The name of the method + * @param parameterTypes The list of method parameter types + * @return True if the method exists and is abstract, false otherwise + */ + public boolean isMethodAbstract(final String name, final Class... parameterTypes) { + final Class targetClass = getTargetClass(); + if (targetClass == null || name == null) { + return false; + } + try { + final Method method = targetClass.getDeclaredMethod(name, parameterTypes); + return Modifier.isAbstract(method.getModifiers()); + } catch (final NoSuchMethodException e) { + return false; + } + } + + /** + * Checks if a method is protected + * @param name The name of the method + * @param parameterTypes The list of method parameter types + * @return True if the method exists and is protected, false otherwise + */ + public boolean isMethodProtected(final String name, final Class... parameterTypes) { + final Class targetClass = getTargetClass(); + if (targetClass == null || name == null) { + return false; + } + try { + final Method method = targetClass.getDeclaredMethod(name, parameterTypes); + return Modifier.isProtected(method.getModifiers()); + } catch (final NoSuchMethodException e) { + return false; + } + } + + //endregion +} diff --git a/hackerrank/pom.xml b/hackerrank/pom.xml index d901404..ffeeeae 100644 --- a/hackerrank/pom.xml +++ b/hackerrank/pom.xml @@ -4,7 +4,7 @@ 4.0.0 - io.sampadadubey.java + io.thoughtcode.java parent 1.0 .. @@ -16,7 +16,7 @@ - io.sampadadubey.java + io.thoughtcode.java common ${project.version} diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java01WelcomeToJava.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java01WelcomeToJava.java similarity index 77% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java01WelcomeToJava.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java01WelcomeToJava.java index 48c8bbb..6b0dd65 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java01WelcomeToJava.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java01WelcomeToJava.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; public class Java01WelcomeToJava { diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java02StdinStdout.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java02StdinStdout.java similarity index 90% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java02StdinStdout.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java02StdinStdout.java index 04ed75b..97ad2a4 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java02StdinStdout.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java02StdinStdout.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.io.InputStream; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java03IfElse.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java03IfElse.java similarity index 69% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java03IfElse.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java03IfElse.java index 2be9516..1cdce07 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java03IfElse.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java03IfElse.java @@ -1,10 +1,10 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; -import static io.sampadadubey.java.common.NumberConstants.FIVE; -import static io.sampadadubey.java.common.NumberConstants.ONE; -import static io.sampadadubey.java.common.NumberConstants.SIX; -import static io.sampadadubey.java.common.NumberConstants.TWENTY; -import static io.sampadadubey.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.NumberConstants.FIVE; +import static io.thoughtcode.java.common.NumberConstants.ONE; +import static io.thoughtcode.java.common.NumberConstants.SIX; +import static io.thoughtcode.java.common.NumberConstants.TWENTY; +import static io.thoughtcode.java.common.NumberConstants.TWO; import java.io.InputStream; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java04StdinStdout2.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java04StdinStdout2.java similarity index 92% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java04StdinStdout2.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java04StdinStdout2.java index c307b8d..0bf6289 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java04StdinStdout2.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java04StdinStdout2.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.io.InputStream; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java05OutputFormatting.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java05OutputFormatting.java similarity index 84% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java05OutputFormatting.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java05OutputFormatting.java index c5ce874..12268cf 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java05OutputFormatting.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java05OutputFormatting.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; -import static io.sampadadubey.java.common.NumberConstants.THREE; +import static io.thoughtcode.java.common.NumberConstants.THREE; import java.io.InputStream; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java06Loops1.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java06Loops1.java similarity index 66% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java06Loops1.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java06Loops1.java index 63aa6e0..132b019 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java06Loops1.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java06Loops1.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; -import static io.sampadadubey.java.common.NumberConstants.TEN; +import static io.thoughtcode.java.common.NumberConstants.TEN; public class Java06Loops1 { diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java07Loops2.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java07Loops2.java similarity index 90% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java07Loops2.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java07Loops2.java index 03755cc..8f1ec03 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java07Loops2.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java07Loops2.java @@ -1,6 +1,6 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; -import static io.sampadadubey.java.common.NumberConstants.TWO; +import static io.thoughtcode.java.common.NumberConstants.TWO; import java.io.InputStream; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java08DataTypes.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java08DataTypes.java similarity index 96% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java08DataTypes.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java08DataTypes.java index 2cd59d3..5169cf5 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java08DataTypes.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java08DataTypes.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.io.InputStream; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java09EndOfFile.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java09EndOfFile.java similarity index 90% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java09EndOfFile.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java09EndOfFile.java index c18499f..b51b9b6 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java09EndOfFile.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java09EndOfFile.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.io.InputStream; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java10StaticInitializerBlockUtils.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java10StaticInitializerBlockUtils.java similarity index 94% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java10StaticInitializerBlockUtils.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java10StaticInitializerBlockUtils.java index f7ed0e6..05567a4 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java10StaticInitializerBlockUtils.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java10StaticInitializerBlockUtils.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.util.Scanner; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java11IntToString.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java11IntToString.java similarity index 93% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java11IntToString.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java11IntToString.java index c9087c2..108cecc 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java11IntToString.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java11IntToString.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.io.InputStream; import java.util.InputMismatchException; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java12DateAndTime.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java12DateAndTime.java similarity index 92% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java12DateAndTime.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java12DateAndTime.java index e2d8c44..8da7121 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java12DateAndTime.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java12DateAndTime.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.text.SimpleDateFormat; import java.util.Calendar; diff --git a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java13CurrencyFormatter.java b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java13CurrencyFormatter.java similarity index 94% rename from hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java13CurrencyFormatter.java rename to hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java13CurrencyFormatter.java index 1d10cc9..a75613a 100644 --- a/hackerrank/src/main/java/io/sampadadubey/java/hackerrank/intro/Java13CurrencyFormatter.java +++ b/hackerrank/src/main/java/io/thoughtcode/java/hackerrank/intro/Java13CurrencyFormatter.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import java.text.NumberFormat; import java.util.Locale; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java01WelcomeToJavaTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java01WelcomeToJavaTest.java similarity index 94% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java01WelcomeToJavaTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java01WelcomeToJavaTest.java index 0d69687..851db93 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java01WelcomeToJavaTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java01WelcomeToJavaTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java02StdinStdoutTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java02StdinStdoutTest.java similarity index 96% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java02StdinStdoutTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java02StdinStdoutTest.java index 57cdadb..c531a1a 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java02StdinStdoutTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java02StdinStdoutTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static java.lang.Math.random; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java03IfElseTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java03IfElseTest.java similarity index 93% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java03IfElseTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java03IfElseTest.java index 8f5134c..2aac121 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java03IfElseTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java03IfElseTest.java @@ -1,7 +1,7 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; -import static io.sampadadubey.java.hackerrank.intro.Java03IfElse.NOT_WEIRD; -import static io.sampadadubey.java.hackerrank.intro.Java03IfElse.WEIRD; +import static io.thoughtcode.java.hackerrank.intro.Java03IfElse.NOT_WEIRD; +import static io.thoughtcode.java.hackerrank.intro.Java03IfElse.WEIRD; import static org.assertj.core.api.Assertions.assertThat; import java.io.ByteArrayInputStream; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java04StdinStdout2Test.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java04StdinStdout2Test.java similarity index 96% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java04StdinStdout2Test.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java04StdinStdout2Test.java index 4ab300f..529d8c5 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java04StdinStdout2Test.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java04StdinStdout2Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static java.lang.Math.random; import static java.util.UUID.randomUUID; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java05OutputFormattingTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java05OutputFormattingTest.java similarity index 96% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java05OutputFormattingTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java05OutputFormattingTest.java index 9f4727e..b33d4f4 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java05OutputFormattingTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java05OutputFormattingTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java06Loops1Test.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java06Loops1Test.java similarity index 90% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java06Loops1Test.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java06Loops1Test.java index 517dcd0..607ef6e 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java06Loops1Test.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java06Loops1Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static java.lang.Math.random; import static org.assertj.core.api.Assertions.assertThat; @@ -10,7 +10,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import io.sampadadubey.java.common.NumberConstants; +import io.thoughtcode.java.common.NumberConstants; class Java06Loops1Test { diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java07Loops2Test.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java07Loops2Test.java similarity index 95% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java07Loops2Test.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java07Loops2Test.java index cc3aff1..40e2d28 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java07Loops2Test.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java07Loops2Test.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java08DataTypesTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java08DataTypesTest.java similarity index 98% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java08DataTypesTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java08DataTypesTest.java index 37af4c2..80c0988 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java08DataTypesTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java08DataTypesTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java09EndOfFileTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java09EndOfFileTest.java similarity index 94% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java09EndOfFileTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java09EndOfFileTest.java index 87d37fb..672970e 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java09EndOfFileTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java09EndOfFileTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java10StaticInitializerBlockUtilsTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java10StaticInitializerBlockUtilsTest.java similarity index 94% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java10StaticInitializerBlockUtilsTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java10StaticInitializerBlockUtilsTest.java index 03d0a6c..f95d796 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java10StaticInitializerBlockUtilsTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java10StaticInitializerBlockUtilsTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java11IntToStringTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java11IntToStringTest.java similarity index 96% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java11IntToStringTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java11IntToStringTest.java index d8eb1e8..bbcdb5d 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java11IntToStringTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java11IntToStringTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java12DateAndTimeTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java12DateAndTimeTest.java similarity index 89% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java12DateAndTimeTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java12DateAndTimeTest.java index c8d0848..4f8118b 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java12DateAndTimeTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java12DateAndTimeTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java13CurrencyFormatterTest.java b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java13CurrencyFormatterTest.java similarity index 94% rename from hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java13CurrencyFormatterTest.java rename to hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java13CurrencyFormatterTest.java index 14f5fc6..8d30172 100644 --- a/hackerrank/src/test/java/io/sampadadubey/java/hackerrank/intro/Java13CurrencyFormatterTest.java +++ b/hackerrank/src/test/java/io/thoughtcode/java/hackerrank/intro/Java13CurrencyFormatterTest.java @@ -1,4 +1,4 @@ -package io.sampadadubey.java.hackerrank.intro; +package io.thoughtcode.java.hackerrank.intro; import static org.assertj.core.api.Assertions.assertThat; diff --git a/jacoco-report/pom.xml b/jacoco-report/pom.xml index e0ee5db..e28172e 100644 --- a/jacoco-report/pom.xml +++ b/jacoco-report/pom.xml @@ -4,7 +4,7 @@ 4.0.0 - io.sampadadubey.java + io.thoughtcode.java parent 1.0 .. @@ -16,17 +16,22 @@ - io.sampadadubey.java + io.thoughtcode.java common ${project.parent.version} - io.sampadadubey.java + io.thoughtcode.java codingbat ${project.parent.version} - io.sampadadubey.java + io.thoughtcode.java + exercism + ${project.parent.version} + + + io.thoughtcode.java hackerrank ${project.parent.version} diff --git a/jacoco-report/target/site/jacoco-aggregate/jacoco.xml b/jacoco-report/target/site/jacoco-aggregate/jacoco.xml deleted file mode 100644 index 63b4388..0000000 --- a/jacoco-report/target/site/jacoco-aggregate/jacoco.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/pom.xml b/pom.xml index f1c06d5..17b3183 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - io.sampadadubey.java + io.thoughtcode.java parent 1.0 pom @@ -12,6 +12,7 @@ common codingbat + exercism hackerrank jacoco-report @@ -22,24 +23,19 @@ 11 11 11 - org.junit.jupiter junit-jupiter-api - 5.8.2 + 5.9.2 test org.assertj assertj-core - 3.23.1 + 3.24.2 test @@ -103,7 +99,7 @@ org.apache.maven.plugins maven-resources-plugin - 3.2.0 + 3.3.0 org.apache.maven.plugins @@ -113,12 +109,12 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0-M6 + 3.0.0-M8 org.apache.maven.plugins maven-jar-plugin - 3.2.2 + 3.3.0 org.jacoco @@ -128,17 +124,17 @@ org.apache.maven.plugins maven-pmd-plugin - 3.17.0 + 3.20.0 org.apache.maven.plugins maven-checkstyle-plugin - 3.1.2 + 3.2.1 com.puppycrawl.tools checkstyle - 10.3 + 10.6.0 diff --git a/quality/checkstyle.xml b/quality/checkstyle.xml index 735bd22..10596ee 100644 --- a/quality/checkstyle.xml +++ b/quality/checkstyle.xml @@ -127,23 +127,23 @@ value="Member name ''{0}'' must match pattern ''{1}''."/> - + - + - + - + @@ -191,7 +191,7 @@ - + @@ -240,7 +240,7 @@ --> - + diff --git a/quality/ruleset.xml b/quality/ruleset.xml index 16407f6..274fe3a 100644 --- a/quality/ruleset.xml +++ b/quality/ruleset.xml @@ -12,6 +12,7 @@ + @@ -46,9 +47,30 @@ - + + + + + + + + + + + + + + + + + + + + + +