@Test public void toBoundsForZeroPoints() { final Stream<WayPoint> points = Stream.empty(); final Bounds bounds = points.collect(Bounds.toBounds()); Assert.assertNull(bounds); }
public static <P extends Point> Collector<P, ?, Bounds> toBounds() { return Collector.of( () -> { final double[] a = new double[4]; a[0] = Double.MAX_VALUE; a[1] = Double.MAX_VALUE; a[2] = -Double.MAX_VALUE; a[3] = -Double.MAX_VALUE; return a; }, (a, b) -> { a[0] = min(b.getLatitude().doubleValue(), a[0]); a[1] = min(b.getLongitude().doubleValue(), a[1]); a[2] = max(b.getLatitude().doubleValue(), a[2]); a[3] = max(b.getLongitude().doubleValue(), a[3]); }, (a, b) -> { a[0] = min(a[0], b[0]); a[1] = min(a[1], b[1]); a[2] = max(a[2], b[2]); a[3] = max(a[3], b[3]); return a; }, a -> a[0] == Double.MAX_VALUE ? null : Bounds.of(a[0], a[1], a[2], a[3]) ); }
Bounds implements Serializable { public static <P extends Point> Collector<P, ?, Bounds> toBounds() { return Collector.of( () -> { final double[] a = new double[4]; a[0] = Double.MAX_VALUE; a[1] = Double.MAX_VALUE; a[2] = -Double.MAX_VALUE; a[3] = -Double.MAX_VALUE; return a; }, (a, b) -> { a[0] = min(b.getLatitude().doubleValue(), a[0]); a[1] = min(b.getLongitude().doubleValue(), a[1]); a[2] = max(b.getLatitude().doubleValue(), a[2]); a[3] = max(b.getLongitude().doubleValue(), a[3]); }, (a, b) -> { a[0] = min(a[0], b[0]); a[1] = min(a[1], b[1]); a[2] = max(a[2], b[2]); a[3] = max(a[3], b[3]); return a; }, a -> a[0] == Double.MAX_VALUE ? null : Bounds.of(a[0], a[1], a[2], a[3]) ); } }
Bounds implements Serializable { public static <P extends Point> Collector<P, ?, Bounds> toBounds() { return Collector.of( () -> { final double[] a = new double[4]; a[0] = Double.MAX_VALUE; a[1] = Double.MAX_VALUE; a[2] = -Double.MAX_VALUE; a[3] = -Double.MAX_VALUE; return a; }, (a, b) -> { a[0] = min(b.getLatitude().doubleValue(), a[0]); a[1] = min(b.getLongitude().doubleValue(), a[1]); a[2] = max(b.getLatitude().doubleValue(), a[2]); a[3] = max(b.getLongitude().doubleValue(), a[3]); }, (a, b) -> { a[0] = min(a[0], b[0]); a[1] = min(a[1], b[1]); a[2] = max(a[2], b[2]); a[3] = max(a[3], b[3]); return a; }, a -> a[0] == Double.MAX_VALUE ? null : Bounds.of(a[0], a[1], a[2], a[3]) ); } private  Bounds(
		final Latitude minLatitude,
		final Longitude minLongitude,
		final Latitude maxLatitude,
		final Longitude maxLongitude
	); }
Bounds implements Serializable { public static <P extends Point> Collector<P, ?, Bounds> toBounds() { return Collector.of( () -> { final double[] a = new double[4]; a[0] = Double.MAX_VALUE; a[1] = Double.MAX_VALUE; a[2] = -Double.MAX_VALUE; a[3] = -Double.MAX_VALUE; return a; }, (a, b) -> { a[0] = min(b.getLatitude().doubleValue(), a[0]); a[1] = min(b.getLongitude().doubleValue(), a[1]); a[2] = max(b.getLatitude().doubleValue(), a[2]); a[3] = max(b.getLongitude().doubleValue(), a[3]); }, (a, b) -> { a[0] = min(a[0], b[0]); a[1] = min(a[1], b[1]); a[2] = max(a[2], b[2]); a[3] = max(a[3], b[3]); return a; }, a -> a[0] == Double.MAX_VALUE ? null : Bounds.of(a[0], a[1], a[2], a[3]) ); } private  Bounds(
		final Latitude minLatitude,
		final Longitude minLongitude,
		final Latitude maxLatitude,
		final Longitude maxLongitude
	); Latitude getMinLatitude(); Longitude getMinLongitude(); Latitude getMaxLatitude(); Longitude getMaxLongitude(); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); static Collector<P, ?, Bounds> toBounds(); static Bounds of(
		final Latitude minLatitude,
		final Longitude minLongitude,
		final Latitude maxLatitude,
		final Longitude maxLongitude
	); static Bounds of(
		final double minLatitudeDegree,
		final double minLongitudeDegree,
		final double maxLatitudeDegree,
		final double maxLongitudeDegree
	); }
Bounds implements Serializable { public static <P extends Point> Collector<P, ?, Bounds> toBounds() { return Collector.of( () -> { final double[] a = new double[4]; a[0] = Double.MAX_VALUE; a[1] = Double.MAX_VALUE; a[2] = -Double.MAX_VALUE; a[3] = -Double.MAX_VALUE; return a; }, (a, b) -> { a[0] = min(b.getLatitude().doubleValue(), a[0]); a[1] = min(b.getLongitude().doubleValue(), a[1]); a[2] = max(b.getLatitude().doubleValue(), a[2]); a[3] = max(b.getLongitude().doubleValue(), a[3]); }, (a, b) -> { a[0] = min(a[0], b[0]); a[1] = min(a[1], b[1]); a[2] = max(a[2], b[2]); a[3] = max(a[3], b[3]); return a; }, a -> a[0] == Double.MAX_VALUE ? null : Bounds.of(a[0], a[1], a[2], a[3]) ); } private  Bounds(
		final Latitude minLatitude,
		final Longitude minLongitude,
		final Latitude maxLatitude,
		final Longitude maxLongitude
	); Latitude getMinLatitude(); Longitude getMinLongitude(); Latitude getMaxLatitude(); Longitude getMaxLongitude(); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); static Collector<P, ?, Bounds> toBounds(); static Bounds of(
		final Latitude minLatitude,
		final Longitude minLongitude,
		final Latitude maxLatitude,
		final Longitude maxLongitude
	); static Bounds of(
		final double minLatitudeDegree,
		final double minLongitudeDegree,
		final double maxLatitudeDegree,
		final double maxLongitudeDegree
	);  }