Skip to content

Commit 82fead2

Browse files
committed
refactor: Change BigDecimal normalized() to 0-1 range and add stripTrailingZeros()
1 parent 249fb9f commit 82fead2

File tree

4 files changed

+49
-2
lines changed

4 files changed

+49
-2
lines changed

fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/arbitrary/BigDecimalCombinableArbitrary.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,13 @@ public interface BigDecimalCombinableArbitrary extends CombinableArbitrary<BigDe
6969
*/
7070
BigDecimalCombinableArbitrary percentage();
7171

72+
/**
73+
* Generates a BigDecimalCombinableArbitrary which produces BigDecimals as score values (0-100).
74+
*
75+
* @return the BigDecimalCombinableArbitrary producing score BigDecimals
76+
*/
77+
BigDecimalCombinableArbitrary score();
78+
7279
/**
7380
* Generates a BigDecimalCombinableArbitrary which produces BigDecimals as score values within the specified range.
7481
*
@@ -95,13 +102,19 @@ public interface BigDecimalCombinableArbitrary extends CombinableArbitrary<BigDe
95102
BigDecimalCombinableArbitrary withScale(int scale);
96103

97104
/**
98-
* Generates a BigDecimalCombinableArbitrary which produces normalized BigDecimals.
99-
* Normalized BigDecimals have trailing zeros removed and scale adjusted accordingly.
105+
* Generates a BigDecimalCombinableArbitrary which produces normalized BigDecimals (0.0 to 1.0).
100106
*
101107
* @return the BigDecimalCombinableArbitrary producing normalized BigDecimals
102108
*/
103109
BigDecimalCombinableArbitrary normalized();
104110

111+
/**
112+
* Generates a BigDecimalCombinableArbitrary which produces BigDecimals with trailing zeros removed.
113+
*
114+
* @return the BigDecimalCombinableArbitrary producing BigDecimals without trailing zeros
115+
*/
116+
BigDecimalCombinableArbitrary stripTrailingZeros();
117+
105118
@Override
106119
default BigDecimalCombinableArbitrary filter(Predicate<BigDecimal> predicate) {
107120
return this.filter(DEFAULT_MAX_TRIES, predicate);

fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/arbitrary/BigDecimalCombinableArbitraryDelegator.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ public BigDecimalCombinableArbitrary percentage() {
6666
return CombinableArbitrary.bigDecimals().percentage();
6767
}
6868

69+
@Override
70+
public BigDecimalCombinableArbitrary score() {
71+
return CombinableArbitrary.bigDecimals().score();
72+
}
73+
6974
@Override
7075
public BigDecimalCombinableArbitrary score(BigDecimal min, BigDecimal max) {
7176
return CombinableArbitrary.bigDecimals().score(min, max);
@@ -86,6 +91,11 @@ public BigDecimalCombinableArbitrary normalized() {
8691
return CombinableArbitrary.bigDecimals().normalized();
8792
}
8893

94+
@Override
95+
public BigDecimalCombinableArbitrary stripTrailingZeros() {
96+
return CombinableArbitrary.bigDecimals().stripTrailingZeros();
97+
}
98+
8999
@Override
90100
public void clear() {
91101
delegate.clear();

fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/jqwik/JqwikBigDecimalCombinableArbitrary.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,13 @@ public BigDecimalCombinableArbitrary percentage() {
8686
);
8787
}
8888

89+
@Override
90+
public BigDecimalCombinableArbitrary score() {
91+
return new JqwikBigDecimalCombinableArbitrary(
92+
Arbitraries.bigDecimals().between(BigDecimal.ZERO, BigDecimal.valueOf(100))
93+
);
94+
}
95+
8996
@Override
9097
public BigDecimalCombinableArbitrary score(BigDecimal min, BigDecimal max) {
9198
return withRange(min, max);
@@ -107,6 +114,13 @@ public BigDecimalCombinableArbitrary withScale(int scale) {
107114

108115
@Override
109116
public BigDecimalCombinableArbitrary normalized() {
117+
return new JqwikBigDecimalCombinableArbitrary(
118+
Arbitraries.bigDecimals().between(BigDecimal.ZERO, BigDecimal.ONE)
119+
);
120+
}
121+
122+
@Override
123+
public BigDecimalCombinableArbitrary stripTrailingZeros() {
110124
return new JqwikBigDecimalCombinableArbitrary(
111125
this.bigDecimalArbitrary.map(BigDecimal::stripTrailingZeros)
112126
);

fixture-monkey-kotest/src/main/kotlin/com/navercorp/fixturemonkey/kotest/KotestBigDecimalCombinableArbitrary.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ class KotestBigDecimalCombinableArbitrary(
6565
Arb.bigDecimal().filter { it >= BigDecimal.ZERO && it <= BigDecimal.valueOf(100) }
6666
)
6767

68+
override fun score(): BigDecimalCombinableArbitrary =
69+
KotestBigDecimalCombinableArbitrary(
70+
Arb.bigDecimal().filter { it >= BigDecimal.ZERO && it <= BigDecimal.valueOf(100) }
71+
)
72+
6873
override fun score(min: BigDecimal, max: BigDecimal): BigDecimalCombinableArbitrary =
6974
withRange(min, max)
7075

@@ -79,6 +84,11 @@ class KotestBigDecimalCombinableArbitrary(
7984
)
8085

8186
override fun normalized(): BigDecimalCombinableArbitrary =
87+
KotestBigDecimalCombinableArbitrary(
88+
Arb.bigDecimal().filter { it >= BigDecimal.ZERO && it <= BigDecimal.ONE }
89+
)
90+
91+
override fun stripTrailingZeros(): BigDecimalCombinableArbitrary =
8292
KotestBigDecimalCombinableArbitrary(
8393
Arb.bigDecimal().map { it.stripTrailingZeros() }
8494
)

0 commit comments

Comments
 (0)