From fd059a6f88c46f92019fbd746a0cc809877ed2a7 Mon Sep 17 00:00:00 2001 From: Johannes Theiner Date: Mon, 26 Mar 2018 11:40:27 +0200 Subject: [PATCH] Praktikum 1: mehr Tests --- pom.xml | 2 + .../hs/java2/praktikum1/GrosseZahl.java | 50 +++++++++++++------ .../hs/java2/tests/GrosseZahlTest.java | 10 +++- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 2f282c4..d18c9e4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,6 +4,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 + Java 2 + de.joethei.hs java2 1.0-SNAPSHOT diff --git a/src/main/java/de/joethei/hs/java2/praktikum1/GrosseZahl.java b/src/main/java/de/joethei/hs/java2/praktikum1/GrosseZahl.java index 6351a7c..764fcac 100644 --- a/src/main/java/de/joethei/hs/java2/praktikum1/GrosseZahl.java +++ b/src/main/java/de/joethei/hs/java2/praktikum1/GrosseZahl.java @@ -39,14 +39,6 @@ public class GrosseZahl { this.ziffern = ziffern; } - public String toString() { - StringBuilder rueckgabe = new StringBuilder(); - for (int ziffer : ziffern) { - rueckgabe.append(Integer.toString(ziffer)); - } - return rueckgabe.toString(); - } - public boolean less(GrosseZahl b) { if(this.equals(b)) return false; if (this.ziffern.length < b.ziffern.length) return true; @@ -62,13 +54,7 @@ public class GrosseZahl { GrosseZahl big = this.less(b) ? b : this; GrosseZahl small = this.less(b) ? this : b; - int[] array; - if(big.ziffern.length != small.ziffern.length) { - int diff = big.ziffern.length - small.ziffern.length; - array = new int[small.ziffern.length + diff]; - Arrays.fill(array, 0); - - }else array = new int[small.ziffern.length]; + int[] array = fill(big, small); for(int i = small.ziffern.length - 1; i >= 0; i--) { array[array.length - i - 1] = small.ziffern[small.ziffern.length - i - 1]; @@ -90,9 +76,32 @@ public class GrosseZahl { } public GrosseZahl sub(GrosseZahl b) { + GrosseZahl big = this.less(b) ? b : this; + GrosseZahl small = this.less(b) ? this : b; + + int[] array; + array = fill(big, small); + + for(int i = small.ziffern.length - 1; i >= 0; i--) { + array[array.length - i - 1] = small.ziffern[small.ziffern.length - i - 1]; + } - return null; + + logger.info(Arrays.toString(array)); + + return new GrosseZahl(array); + } + + private int[] fill(GrosseZahl big, GrosseZahl small) { + int[] array; + if(big.ziffern.length != small.ziffern.length) { + int diff = big.ziffern.length - small.ziffern.length; + array = new int[small.ziffern.length + diff]; + Arrays.fill(array, 0); + + }else array = new int[small.ziffern.length]; + return array; } public GrosseZahl mult(GrosseZahl b) { @@ -125,6 +134,15 @@ public class GrosseZahl { else return this.sub(b).ggT(b); } + @Override + public String toString() { + StringBuilder result = new StringBuilder(); + for (int ziffer : ziffern) { + result.append(Integer.toString(ziffer)); + } + return result.toString(); + } + @Override public boolean equals(Object o) { if(o instanceof GrosseZahl) { diff --git a/src/test/java/de/joethei/hs/java2/tests/GrosseZahlTest.java b/src/test/java/de/joethei/hs/java2/tests/GrosseZahlTest.java index ef7edb0..7a7afcf 100644 --- a/src/test/java/de/joethei/hs/java2/tests/GrosseZahlTest.java +++ b/src/test/java/de/joethei/hs/java2/tests/GrosseZahlTest.java @@ -14,6 +14,7 @@ class GrosseZahlTest { assertThrows(NumberFormatException.class, exec); assertEquals(new GrosseZahl("1456"), new GrosseZahl(1456)); assertNotEquals(new GrosseZahl("1234"), new GrosseZahl(1233)); + assertNotEquals(new GrosseZahl(14), 15); } @Test @@ -26,13 +27,13 @@ class GrosseZahlTest { assertEquals(new GrosseZahl(4000), new GrosseZahl(500).add(new GrosseZahl(3500))); } - /* @Test void sub() { assertEquals(new GrosseZahl(42), new GrosseZahl(100).sub(new GrosseZahl(58))); assertNotEquals(new GrosseZahl(43), new GrosseZahl(100).sub(new GrosseZahl(58))); } + /* @Test void mult() { assertEquals(new GrosseZahl(15), new GrosseZahl("5").mult(new GrosseZahl(3))); @@ -47,6 +48,13 @@ class GrosseZahlTest { assertFalse(new GrosseZahl("12345").less(new GrosseZahl("1234"))); assertFalse(new GrosseZahl("1234").less(new GrosseZahl("1234"))); assertFalse(new GrosseZahl("1234").less(new GrosseZahl("1233"))); + assertTrue(new GrosseZahl(1233).less(new GrosseZahl(1234))); + } + + @Test + void toStringTest() { + assertEquals("45", new GrosseZahl(45).toString()); + assertEquals("45", new GrosseZahl("45").toString()); } /*