8000 2020-12-11 Update: Added "Hex class" and "DNA to RNA Conversion" · fartem/codewars-java@7c25dee · GitHub
[go: up one dir, main page]

Skip to content

Commit 7c25dee

Browse files
committed
2020-12-11 Update: Added "Hex class" and "DNA to RNA Conversion"
1 parent 70eb0e3 commit 7c25dee

File tree

5 files changed

+159
-0
lines changed

5 files changed

+159
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
3434
| Count Odd Numbers below n | [Link](https://www.codewars.com/kata/59342039eb450e39970000a6) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/CountOddNumbersBelowN.java) |
3535
| Count of positives / sum of negatives | [Link](https://www.codewars.com/kata/576bb71bbbcf0951d5000044) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/CountOfPositivesSumOfNegatives.java) |
3636
| Count the Monkeys! | [Link](https://www.codewars.com/kata/56f69d9f9400f508fb000ba7) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/CountTheMonkeys.java) |
37+
| DNA to RNA Conversion | [Link](https://www.codewars.com/kata/5556282156230d0e5e000089) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/DNAToRNAConversion.java) |
3738
| Even or Odd | [Link](https://www.codewars.com/kata/53da3dbb4a5168369a0000fe) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/EvenOrOdd.java) |
3839
| Expressions Matter | [Link](https://www.codewars.com/kata/5ae62fcf252e66d44d00008e) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/ExpressionsMatter.java) |
3940
| Fake Binary | [Link](https://www.codewars.com/kata/57eae65a4321032ce000002d) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/FakeBinary.java) |
@@ -166,6 +167,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
166167
| Find the odd int | [Link](https://www.codewars.com/kata/54da5a58ea159efa38000836) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/FindTheOddInt.java) |
167168
| Find the unique number | [Link](https://www.codewars.com/kata/585d7d5adb20cf33cb000235) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/FindTheUniqueNumber.java) |
168169
| Format words into a sentence | [Link](https://www.codewars.com/kata/51689e27fe9a00b126000004) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/FormatWordsIntoASentence.java) |
170+
| Hex class | [Link](https://www.codewars.com/kata/5483366098aa442def0009af) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/HexClass.java) |
169171
| Highest Scoring Word | [Link](https://www.codewars.com/kata/57eb8fcdf670e99d9b000272) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/HighestScoringWord.java) |
170172
| Is a number prime? | [Link](https://www.codewars.com/kata/5262119038c0985a5b00029f) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/IsANumberPrime.java) |
171173
| Jurassic Word | [Link](https://www.codewars.com/kata/55709dc15ebd283cc9000007) | [Link](./src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/JurassicWord.java) |
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu6;
2+
3+
// https://www.codewars.com/kata/5483366098aa442def0009af
4+
@SuppressWarnings("checkstyle:EqualsHashCode")
5+
public class HexClass {
6+
7+
private final int input;
8+
9+
public HexClass(int input) {
10+
this.input = input;
11+
}
12+
13+
public int valueOf() {
14+
return input;
15+
}
16+
17+
public String toJSON() {
18+
return toString();
19+
}
20+
21+
public String toString() {
22+
return String.format(
23+
"0x%s",
24+
Integer.toHexString(input).toUpperCase()
25+
);
26+
}
27+
28+
@SuppressWarnings("unused")
29+
public HexClass plus(HexClass other) {
30+
return new HexClass(input + other.input);
31+
}
32+
33+
public HexClass plus(int number) {
34+
return new HexClass(input + number);
35+
}
36+
37+
public HexClass minus(HexClass other) {
38+
return new HexClass(input - other.input);
39+
}
40+
41+
public HexClass minus(int number) {
42+
return new HexClass(input - number);
43+
}
44+
45+
public static int parse(String string) {
46+
return Integer.parseInt(
47+
string.startsWith("0x")
48+
? string.substring(2)
49+
: string,
50+
16
51+
);
52+
}
53+
54+
@Override
55+
public boolean equals(Object o) {
56+
if (this == o) {
57+
return true;
58+
}
59+
if (o == null || getClass() != o.getClass()) {
60+
return false;
61+
}
62+
HexClass hex = (HexClass) o;
63+
return input == hex.input;
64+
}
65+
66+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu8;
2+
3+
// https://www.codewars.com/kata/5556282156230d0e5e000089
4+
public class DNAToRNAConversion {
5+
6+
private final String input;
7+
8+
public DNAToRNAConversion(String input) {
9+
this.input = input;
10+
}
11+
12+
public String solution() {
13+
return input.replaceAll("T", "U");
14+
}
15+
16+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
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 HexClassTest {
8+
9+
@Test
10+
public void SampleTests() {
11+
HexClass hexClass = new HexClass(255);
12+
assertEquals(
13+
"0xFF",
14+
hexClass.toString()
15+
);
16+
assertEquals(
17+
256,
18+
hexClass.valueOf() + 1
19+
);
20+
assertEquals(
21+
"0xFF",
22+
hexClass.toJSON()
23+
);
24+
assertEquals(
25+
hexClass,
26+
new HexClass(255)
27+
);
28+
assertEquals(
29+
"0xFE",
30+
hexClass.minus(1).toString()
31+
);
32+
assertEquals(
33+
"0x0",
34+
hexClass.minus(hexClass).toString()
35+
);
36+
assertEquals(
37+
"0xF",
38+
new HexClass(10).plus(5).toString()
39+
);
40+
assertEquals(
41+
32,
42+
HexClass.parse("0x20")
43+
);
44+
assertEquals(
45+
512,
46+
HexClass.parse("200")
47+
);
48+
}
49+
50+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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 DNAToRNAConversionTest {
8+
9+
@Test
10+
public void testDna() {
11+
assertEquals(
12+
"UUUU",
13+
new DNAToRNAConversion("TTTT").solution()
14+
);
15+
}
16+
17+
@Test
18+
public void testDna2() {
19+
assertEquals(
20+
"GCAU",
21+
new DNAToRNAConversion("GCAT").solution()
22+
);
23+
}
24+
25+
}

0 commit comments

Comments
 (0)
0