Skip to content

Commit 3887824

Browse files
committed
2020-12-05 Update: Added "Age Range Compatibility Equation" and "What is your country's currency symbol?"
1 parent 2549fcd commit 3887824

File tree

5 files changed

+134
-0
lines changed

5 files changed

+134
-0
lines changed

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
1515
| Name | Link to Codewars | Link to solution |
1616
| --- | --- | --- |
1717
| Abbreviate a Two Word Name | [Link](https://www.codewars.com/kata/57eadb7ecd143f4c9c0000a3) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/AbbreviateATwoWordName.java) |
18+
| Age Range Compatibility Equation | [Link](https://www.codewars.com/kata/5803956ddb07c5c74200144e) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/AgeRangeCompatibilityEquation.java) |
1819
| altERnaTIng cAsE <=> ALTerNAtiNG CaSe | [Link](https://www.codewars.com/kata/56efc695740d30f963000557) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/AltERnaTIngcAsEALTerNAtiNGCaSe.java) |
1920
| A Needle in the Haystack | [Link](https://www.codewars.com/kata/56676e8fabd2d1ff3000000c) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/ANeedleInTheHaystack.java) |
2021
| Array plus array | [Link](https://www.codewars.com/kata/5a2be17aee1aaefe2a000151) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/ArrayPlusArray.java) |
@@ -177,6 +178,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
177178
| Valid Braces | [Link](https://www.codewars.com/kata/5277c8a221e209d3f6000b56) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/ValidBraces.java) |
178179
| Valid Phone Number | [Link](https://www.codewars.com/kata/525f47c79f2f25a4db000025) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/ValidPhoneNumber.java) |
179180
| Versions manager | [Link](https://www.codewars.com/kata/5bc7bb444be9774f100000c3) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/VersionsManager.java) |
181+
| What is your country's currency symbol? | [Link](https://www.codewars.com/kata/5957996dbe7b4fef30000061) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/WhatIsYourCountrysCurrencySymbol.java) |
180182
| Who likes it? | [Link](https://www.codewars.com/kata/5266876b8f4bf2da9b000362) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/WhoLikesIt.java) |
181183
| Who won the election | [Link](https://www.codewars.com/kata/554910d77a3582bbe300009c) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/WhoWonTheElection.java) |
182184
| World Bits War | [Link](https://www.codewars.com/kata/58865bfb41e04464240000b0) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/WorldBitsWar.java) |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu6;
2+
3+
import java.util.Currency;
4+
import java.util.HashMap;
5+
import java.util.Locale;
6+
import java.util.Map;
7+
8+
public class WhatIsYourCountrysCurrencySymbol {
9+
10+
private final String input;
11+
12+
public WhatIsYourCountrysCurrencySymbol(String input) {
13+
this.input = input;
14+
}
15+
16+
public String solution() {
17+
Map<String, Locale> countries = new HashMap<>();
18+
for (String c : Locale.getISOCountries()) {
19+
Locale locale = new Locale("", c);
20+
countries.put(locale.getDisplayCountry(), locale);
21+
}
22+
if (countries.get(input) == null) {
23+
throw new IllegalArgumentException();
24+
}
25+
return Currency.getInstance(countries.get(input)).getCurrencyCode();
26+
}
27+
28+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu8;
2+
3+
// https://www.codewars.com/kata/5803956ddb07c5c74200144e
4+
public class AgeRangeCompatibilityEquation {
5+
6+
private final int input;
7+
8+
public AgeRangeCompatibilityEquation(int input) {
9+
this.input = input;
10+
}
11+
12+
public String solution() {
13+
if (input < 14) {
14+
return String.format(
15+
"%d-%d",
16+
(int) (input - 0.10 * input),
17+
(int) (input + 0.10 * input)
18+
);
19+
}
20+
return String.format(
21+
"%s-%s",
22+
input / 2 + 7,
23+
(input - 7) * 2
24+
);
25+
}
26+
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu6;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
7+
public class WhatIsYourCountrysCurrencySymbolTest {
8+
9+
@Test
10+
public void basicTest() {
11+
assertEquals(
12+
"RUB",
13+
new WhatIsYourCountrysCurrencySymbol(
14+
"Russia"
15+
).solution()
16+
);
17+
assertEquals(
18+
"EUR",
19+
new WhatIsYourCountrysCurrencySymbol(
20+
"France"
21+
).solution()
22+
);
23+
assertEquals(
24+
"EUR",
25+
new WhatIsYourCountrysCurrencySymbol(
26+
"Germany"
27+
).solution()
28+
);
29+
assertEquals(
30+
"CNY",
31+
new WhatIsYourCountrysCurrencySymbol(
32+
"China"
33+
).solution()
34+
);
35+
}
36+
37+
@Test(expected = IllegalArgumentException.class)
38+
public void testWrongCountry() throws Exception {
39+
String symbol = new WhatIsYourCountrysCurrencySymbol(
40+
"SomeUnknownCountry"
41+
).solution();
42+
}
43+
44+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu8;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertEquals;
6+
7+
public class AgeRangeCompatibilityEquationTest {
8+
9+
@Test
10+
public void exampleTests() {
11+
assertEquals(
12+
"15-20",
13+
new AgeRangeCompatibilityEquation(17).solution()
14+
);
15+
assertEquals(
16+
"27-66",
17+
new AgeRangeCompatibilityEquation(40).solution()
18+
);
19+
assertEquals(
20+
"14-16",
21+
new AgeRangeCompatibilityEquation(15).solution()
22+
);
23+
assertEquals(
24+
"24-56",
25+
new AgeRangeCompatibilityEquation(35).solution()
26+
);
27+
assertEquals(
28+
"9-11",
29+
new AgeRangeCompatibilityEquation(10).solution()
30+
);
31+
}
32+
33+
}

0 commit comments

Comments
 (0)