Gemeinsames Lernen

This commit is contained in:
Sebastian Eidecker
2019-11-13 22:19:42 +01:00
parent 5f6fd402cc
commit baa3ff518a
8 changed files with 694 additions and 7 deletions

View File

@@ -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<Stopp> orte) {
Optional<Integer> distanceSum = orte.stream()
.map(Stopp::getWichtigeDingeZurBerechnung)
.reduce(DistanceCounter::komplizierteBerechnungMitRestCall);
return distanceSum.orElse(0);
}
private List<Stopp> orte() {
return IntStream.rangeClosed(1,10).boxed().map(Stopp::new).collect(Collectors.toList());
}
// private BinaryOperator<Ort> distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert();
//
// private BiFunction<Ort, Ort, Integer> distanceAdder = (ort, ort2) -> ort2.getWert() - ort.getWert();
class Stopp {
Integer wert;
public Stopp(Integer wert) {
this.wert = wert;
}
public Integer getWichtigeDingeZurBerechnung() {
return wert;
}
}
}

View File

@@ -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 {
}

View File

@@ -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 {

View File

@@ -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);
}
}

View File

@@ -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());
}
}

View File

@@ -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<String> value;
public DataHolder() {
value = Optional.empty();
}
}