diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml new file mode 100644 index 0000000..3218000 --- /dev/null +++ b/.idea/checkstyle-idea.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml new file mode 100644 index 0000000..dad027a --- /dev/null +++ b/.idea/dbnavigator.xml @@ -0,0 +1,466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/org/eidecker/mapreduce/DistanceCounter.java b/src/org/eidecker/mapreduce/DistanceCounter.java new file mode 100644 index 0000000..f299d28 --- /dev/null +++ b/src/org/eidecker/mapreduce/DistanceCounter.java @@ -0,0 +1,57 @@ +package org.eidecker.mapreduce; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; +import java.util.stream.IntStream; +import org.junit.jupiter.api.Test; + +/** + * @author seidecke. + */ +public class DistanceCounter { + + private static Integer komplizierteBerechnungMitRestCall(Integer strecke, Integer strecke2) { + return strecke2 - strecke; + } + + @Test + public void testDistanceSum() { + assertEquals(55, distanceSum(orte())); + } + + private Integer distanceSum(List orte) { + Optional distanceSum = orte.stream() + .map(Stopp::getWichtigeDingeZurBerechnung) + .reduce(DistanceCounter::komplizierteBerechnungMitRestCall); + + return distanceSum.orElse(0); + } + + + + + + private List orte() { + return IntStream.rangeClosed(1,10).boxed().map(Stopp::new).collect(Collectors.toList()); + } + +// private BinaryOperator distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert(); +// +// private BiFunction distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert(); + + class Stopp { + Integer wert; + + public Stopp(Integer wert) { + this.wert = wert; + } + + public Integer getWichtigeDingeZurBerechnung() { + return wert; + } + } + +} diff --git a/src/org/eidecker/oca8lernen/general/CastExceptions.java b/src/org/eidecker/oca8lernen/general/CastExceptions.java new file mode 100644 index 0000000..f491790 --- /dev/null +++ b/src/org/eidecker/oca8lernen/general/CastExceptions.java @@ -0,0 +1,46 @@ +package org.eidecker.oca8lernen.general; + +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +/** + * @author seidecke. + */ +public class CastExceptions { + + @Test + public void testCastExceptions() { + + OberCast eigentlichUnter = new UnterCast(); + OberCast wirklichOber = new OberCast(); + UnterCast purUnter = new UnterCast(); + + Außerhalb außerhalb = new Außerhalb(); + + OberCast ober = purUnter; + + UnterCast unter = (UnterCast) eigentlichUnter; + + // Runtime-Exception, da innerhalb der Typenhierarchie + assertThrows(ClassCastException.class, () -> { + UnterCast unter3 = (UnterCast) wirklichOber; + }); + + // Compilefehler, da Versuch des Casts außerhalb der Typenhierarchie + // UnterCast unter2 = (UnterCast) außerhalb; + + } +} + +class OberCast { + +} + +class UnterCast extends OberCast { + +} + +class Außerhalb { + +} diff --git a/src/org/eidecker/oca8lernen/general/Interfaces.java b/src/org/eidecker/oca8lernen/general/Interfaces.java index 0390702..7d7db10 100644 --- a/src/org/eidecker/oca8lernen/general/Interfaces.java +++ b/src/org/eidecker/oca8lernen/general/Interfaces.java @@ -1,8 +1,6 @@ package org.eidecker.oca8lernen.general; -import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils; import java.io.IOException; -import java.nio.file.AccessDeniedException; import org.junit.jupiter.api.Test; class TestInterfaces { diff --git a/src/org/eidecker/oca8lernen/general/Overloading.java b/src/org/eidecker/oca8lernen/general/Overloading.java index 53b09be..67403c8 100644 --- a/src/org/eidecker/oca8lernen/general/Overloading.java +++ b/src/org/eidecker/oca8lernen/general/Overloading.java @@ -1,14 +1,18 @@ package org.eidecker.oca8lernen.general; -import org.junit.jupiter.api.Test; +import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_BYTE; +import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_CHAR; +import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_CHARACTER; +import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_INT; +import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_INTEGER; +import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_LONG_PRIMITIVE; +import static org.eidecker.oca8lernen.general.PrimitiveOverloading.VARIANTE_LONG_WRAPPER; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; - -import static org.eidecker.oca8lernen.general.PrimitiveOverloading.*; -import static org.eidecker.oca8lernen.general.Overloading.*; -import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; class OverloadingTester { @@ -21,6 +25,9 @@ class OverloadingTester { SubOverloading subOverloading = new SubOverloading(); System.out.println(subOverloading.staticString); System.out.println(subOverloading.overrideStatic()); + + List l = null; + subOverloading.overloadMe(l); } } diff --git a/src/org/eidecker/oca8lernen/general/StringIndex.java b/src/org/eidecker/oca8lernen/general/StringIndex.java new file mode 100644 index 0000000..5df9bde --- /dev/null +++ b/src/org/eidecker/oca8lernen/general/StringIndex.java @@ -0,0 +1,67 @@ +package org.eidecker.oca8lernen.general; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import org.junit.jupiter.api.Test; + +/** + * @author seidecke. + */ +public class StringIndex { + + private static String testString = "1234567890"; + + @Test + public void testSomeStrings() { + assertEquals('3', testString.charAt(2)); + assertEquals("67890", testString.substring(5)); + assertEquals("67", testString.substring(5,7)); + assertEquals("", testString.substring(5,5)); + assertEquals(10, testString.length()); + assertThrows(IndexOutOfBoundsException.class, () -> testString.substring(-1)); + assertThrows(IndexOutOfBoundsException.class, () -> testString.substring(5,4)); + assertThrows(IndexOutOfBoundsException.class, () -> testString.substring(5,11)); + + String s = "123456"; + assertEquals("1234567", s += "7"); + } + + @Test + public void testSomeStringBuilders() { + StringBuilder testStringBuilder = new StringBuilder("1234567890"); + + assertEquals('3', testStringBuilder.charAt(2)); + testStringBuilder = new StringBuilder("1234567890"); + assertEquals("67890", testStringBuilder.substring(5)); + testStringBuilder = new StringBuilder("1234567890"); + assertEquals("67", testStringBuilder.substring(5,7)); + testStringBuilder = new StringBuilder("1234567890"); + assertEquals("", testStringBuilder.substring(5,5)); + testStringBuilder = new StringBuilder("1234567890"); + assertEquals(10, testStringBuilder.length()); + testStringBuilder = new StringBuilder("1234567890"); + assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").substring(-1)); + testStringBuilder = new StringBuilder("1234567890"); + assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").substring(5,4)); + testStringBuilder = new StringBuilder("1234567890"); + assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").substring(5,11)); + + testStringBuilder = new StringBuilder("1234567890"); + assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").delete(13,1)); + testStringBuilder = new StringBuilder("1234567890"); + assertThrows(IndexOutOfBoundsException.class, () -> new StringBuilder("1234567890").insert(11,"Hallo")); + + // null direkt nicht moeglich, da ueberladene Methode nicht bestimmt werden kann + // testStringBuilder.insert(1, null); + + testStringBuilder = new StringBuilder("1234567890"); + assertEquals("12345890", testStringBuilder.delete(5,7).toString()); + testStringBuilder = new StringBuilder("1234567890"); + assertEquals("71234567890", testStringBuilder.insert(0,7).toString()); + testStringBuilder = new StringBuilder("1234567890"); + assertEquals("1true234567890", testStringBuilder.insert(1,true).toString()); + } + + +} diff --git a/src/org/eidecker/test/OptionalAPI.java b/src/org/eidecker/test/OptionalAPI.java new file mode 100644 index 0000000..21d16e7 --- /dev/null +++ b/src/org/eidecker/test/OptionalAPI.java @@ -0,0 +1,30 @@ +package org.eidecker.test; + +import java.util.Optional; +import org.junit.jupiter.api.Test; + +/** + * @author seidecke. + */ +public class OptionalAPI { + + @Test + public void testOptionalMapping() { + + + + + } + +} + + +class DataHolder { + public Optional value; + + public DataHolder() { + value = Optional.empty(); + } + + +}