Skip to content

Commit cbe67a6

Browse files
committed
add ScaledBigDecimal and reorder methods
1 parent b822d67 commit cbe67a6

3 files changed

Lines changed: 61 additions & 33 deletions

File tree

src/main/java/it/aboutbits/springboot/testing/validation/source/BiggerThanValueSource.java

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package it.aboutbits.springboot.testing.validation.source;
22

33
import it.aboutbits.springboot.testing.validation.core.ValueSource;
4+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
45
import org.jetbrains.annotations.NotNull;
56

67
import java.math.BigDecimal;
@@ -18,16 +19,17 @@ public class BiggerThanValueSource implements ValueSource {
1819
TYPE_SOURCES.put(Integer.class, BiggerThanValueSource::getIntegerStream);
1920
TYPE_SOURCES.put(int.class, BiggerThanValueSource::getIntegerStream);
2021

21-
TYPE_SOURCES.put(Float.class, BiggerThanValueSource::getFloatStream);
22-
TYPE_SOURCES.put(float.class, BiggerThanValueSource::getFloatStream);
23-
2422
TYPE_SOURCES.put(Long.class, BiggerThanValueSource::getLongStream);
2523
TYPE_SOURCES.put(long.class, BiggerThanValueSource::getLongStream);
2624

25+
TYPE_SOURCES.put(Float.class, BiggerThanValueSource::getFloatStream);
26+
TYPE_SOURCES.put(float.class, BiggerThanValueSource::getFloatStream);
27+
2728
TYPE_SOURCES.put(Double.class, BiggerThanValueSource::getDoubleStream);
2829
TYPE_SOURCES.put(double.class, BiggerThanValueSource::getDoubleStream);
2930

3031
TYPE_SOURCES.put(BigDecimal.class, BiggerThanValueSource::getBigDecimalStream);
32+
TYPE_SOURCES.put(ScaledBigDecimal.class, BiggerThanValueSource::getScaledBigDecimalStream);
3133
}
3234

3335
public static void registerType(Class<?> type, Function<Object[], Stream<?>> source) {
@@ -46,24 +48,13 @@ public <T> Stream<T> values(Class<T> propertyClass, Object... args) {
4648
}
4749

4850
@NotNull
49-
private static Stream<BigDecimal> getBigDecimalStream(Object[] args) {
50-
var minValue = Long.valueOf((long) args[0]).doubleValue() + 0.1d;
51-
var maxValue = Double.MAX_VALUE;
52-
53-
return Stream.concat(
54-
Stream.of(BigDecimal.valueOf(minValue), BigDecimal.valueOf(maxValue)),
55-
RANDOM.doubles(minValue, maxValue).limit(5).boxed().map(BigDecimal::valueOf)
56-
);
57-
}
58-
59-
@NotNull
60-
private static Stream<Double> getDoubleStream(Object[] args) {
61-
var minValue = Long.valueOf((long) args[0]).doubleValue() + 0.1d;
62-
var maxValue = Double.MAX_VALUE;
51+
private static Stream<Integer> getIntegerStream(Object[] args) {
52+
var minValue = Long.valueOf((long) args[0]).intValue() + 1;
53+
var maxValue = Integer.MAX_VALUE;
6354

6455
return Stream.concat(
6556
Stream.of(minValue, maxValue),
66-
RANDOM.doubles(minValue, maxValue).limit(5).boxed()
57+
RANDOM.ints(minValue, maxValue).limit(5).boxed()
6758
);
6859
}
6960

@@ -92,13 +83,35 @@ private static Stream<Float> getFloatStream(Object[] args) {
9283
}
9384

9485
@NotNull
95-
private static Stream<Integer> getIntegerStream(Object[] args) {
96-
var minValue = Long.valueOf((long) args[0]).intValue() + 1;
97-
var maxValue = Integer.MAX_VALUE;
86+
private static Stream<Double> getDoubleStream(Object[] args) {
87+
var minValue = Long.valueOf((long) args[0]).doubleValue() + 0.1d;
88+
var maxValue = Double.MAX_VALUE;
9889

9990
return Stream.concat(
10091
Stream.of(minValue, maxValue),
101-
RANDOM.ints(minValue, maxValue).limit(5).boxed()
92+
RANDOM.doubles(minValue, maxValue).limit(5).boxed()
93+
);
94+
}
95+
96+
@NotNull
97+
private static Stream<ScaledBigDecimal> getScaledBigDecimalStream(Object[] args) {
98+
var minValue = Long.valueOf((long) args[0]).doubleValue() + 0.1d;
99+
var maxValue = Double.MAX_VALUE;
100+
101+
return Stream.concat(
102+
Stream.of(ScaledBigDecimal.valueOf(minValue), ScaledBigDecimal.valueOf(maxValue)),
103+
RANDOM.doubles(minValue, maxValue).limit(5).boxed().map(ScaledBigDecimal::valueOf)
104+
);
105+
}
106+
107+
@NotNull
108+
private static Stream<BigDecimal> getBigDecimalStream(Object[] args) {
109+
var minValue = Long.valueOf((long) args[0]).doubleValue() + 0.1d;
110+
var maxValue = Double.MAX_VALUE;
111+
112+
return Stream.concat(
113+
Stream.of(BigDecimal.valueOf(minValue), BigDecimal.valueOf(maxValue)),
114+
RANDOM.doubles(minValue, maxValue).limit(5).boxed().map(BigDecimal::valueOf)
102115
);
103116
}
104117
}

src/main/java/it/aboutbits/springboot/testing/validation/source/LessThanValueSource.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package it.aboutbits.springboot.testing.validation.source;
22

33
import it.aboutbits.springboot.testing.validation.core.ValueSource;
4+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
45
import org.jetbrains.annotations.NotNull;
56

67
import java.math.BigDecimal;
@@ -19,16 +20,17 @@ public class LessThanValueSource implements ValueSource {
1920
TYPE_SOURCES.put(Integer.class, LessThanValueSource::getIntegerStream);
2021
TYPE_SOURCES.put(int.class, LessThanValueSource::getIntegerStream);
2122

22-
TYPE_SOURCES.put(Float.class, LessThanValueSource::getFloatStream);
23-
TYPE_SOURCES.put(float.class, LessThanValueSource::getFloatStream);
24-
2523
TYPE_SOURCES.put(Long.class, LessThanValueSource::getLongStream);
2624
TYPE_SOURCES.put(long.class, LessThanValueSource::getLongStream);
2725

26+
TYPE_SOURCES.put(Float.class, LessThanValueSource::getFloatStream);
27+
TYPE_SOURCES.put(float.class, LessThanValueSource::getFloatStream);
28+
2829
TYPE_SOURCES.put(Double.class, LessThanValueSource::getDoubleStream);
2930
TYPE_SOURCES.put(double.class, LessThanValueSource::getDoubleStream);
3031

3132
TYPE_SOURCES.put(BigDecimal.class, LessThanValueSource::getBigDecimalStream);
33+
TYPE_SOURCES.put(ScaledBigDecimal.class, LessThanValueSource::getScaledBigDecimalStream);
3234
}
3335

3436
public static void registerType(Class<?> type, Function<Object[], Stream<?>> source) {
@@ -57,6 +59,17 @@ private static Stream<Integer> getIntegerStream(Object[] args) {
5759
);
5860
}
5961

62+
@NotNull
63+
private static Stream<Long> getLongStream(Object[] args) {
64+
var minValue = Long.MIN_VALUE;
65+
var maxValue = (long) args[0] - 1;
66+
67+
return Stream.concat(
68+
Stream.of(minValue, maxValue),
69+
RANDOM.longs(minValue, maxValue).limit(5).boxed()
70+
);
71+
}
72+
6073
@NotNull
6174
private static Stream<Float> getFloatStream(Object[] args) {
6275
var minValue = Float.MAX_VALUE * -1;
@@ -93,13 +106,13 @@ private static Stream<BigDecimal> getBigDecimalStream(Object[] args) {
93106
}
94107

95108
@NotNull
96-
private static Stream<Long> getLongStream(Object[] args) {
97-
var minValue = Long.MIN_VALUE;
98-
var maxValue = (long) args[0] - 1;
109+
private static Stream<ScaledBigDecimal> getScaledBigDecimalStream(Object[] args) {
110+
var minValue = Double.MAX_VALUE * -1;
111+
var maxValue = Long.valueOf((long) args[0]).doubleValue() - 0.1d;
99112

100113
return Stream.concat(
101-
Stream.of(minValue, maxValue),
102-
RANDOM.longs(minValue, maxValue).limit(5).boxed()
114+
Stream.of(ScaledBigDecimal.valueOf(minValue), ScaledBigDecimal.valueOf(maxValue)),
115+
RANDOM.doubles(5).map(d -> minValue + (maxValue - minValue) * d).boxed().map(ScaledBigDecimal::valueOf)
103116
);
104117
}
105118
}

src/main/java/it/aboutbits/springboot/testing/validation/source/ZeroValueSource.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package it.aboutbits.springboot.testing.validation.source;
22

33
import it.aboutbits.springboot.testing.validation.core.ValueSource;
4+
import it.aboutbits.springboot.toolbox.type.ScaledBigDecimal;
45

56
import java.math.BigDecimal;
67
import java.util.HashMap;
@@ -15,16 +16,17 @@ public class ZeroValueSource implements ValueSource {
1516
TYPE_SOURCES.put(Integer.class, (Object[] args) -> Stream.of(0));
1617
TYPE_SOURCES.put(int.class, (Object[] args) -> Stream.of(0));
1718

18-
TYPE_SOURCES.put(Float.class, (Object[] args) -> Stream.of(0F));
19-
TYPE_SOURCES.put(float.class, (Object[] args) -> Stream.of(0F));
20-
2119
TYPE_SOURCES.put(Long.class, (Object[] args) -> Stream.of(0L));
2220
TYPE_SOURCES.put(long.class, (Object[] args) -> Stream.of(0L));
2321

22+
TYPE_SOURCES.put(Float.class, (Object[] args) -> Stream.of(0F));
23+
TYPE_SOURCES.put(float.class, (Object[] args) -> Stream.of(0F));
24+
2425
TYPE_SOURCES.put(Double.class, (Object[] args) -> Stream.of(0D));
2526
TYPE_SOURCES.put(double.class, (Object[] args) -> Stream.of(0D));
2627

2728
TYPE_SOURCES.put(BigDecimal.class, (Object[] args) -> Stream.of(BigDecimal.valueOf(0)));
29+
TYPE_SOURCES.put(ScaledBigDecimal.class, (Object[] args) -> Stream.of(ScaledBigDecimal.valueOf(0)));
2830
}
2931

3032
public static void registerType(Class<?> type, Function<Object[], Stream<?>> source) {

0 commit comments

Comments
 (0)