Skip to content

Commit d5ba0a2

Browse files
authored
Simplify JavaIntegerConstraint structure to align with decimal constraint improvements (#1156)
1 parent 8db84b4 commit d5ba0a2

File tree

8 files changed

+244
-545
lines changed

8 files changed

+244
-545
lines changed

Diff for: fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/constraint/JavaIntegerConstraint.java

+10-30
Original file line numberDiff line numberDiff line change
@@ -28,46 +28,26 @@
2828
@API(since = "0.6.8", status = Status.MAINTAINED)
2929
public final class JavaIntegerConstraint {
3030
@Nullable
31-
private final BigInteger positiveMin;
31+
private final BigInteger min;
3232

3333
@Nullable
34-
private final BigInteger positiveMax;
35-
36-
@Nullable
37-
private final BigInteger negativeMin;
38-
39-
@Nullable
40-
private final BigInteger negativeMax;
34+
private final BigInteger max;
4135

4236
public JavaIntegerConstraint(
43-
@Nullable BigInteger positiveMin,
44-
@Nullable BigInteger positiveMax,
45-
@Nullable BigInteger negativeMin,
46-
@Nullable BigInteger negativeMax
37+
@Nullable BigInteger min,
38+
@Nullable BigInteger max
4739
) {
48-
this.positiveMin = positiveMin;
49-
this.positiveMax = positiveMax;
50-
this.negativeMin = negativeMin;
51-
this.negativeMax = negativeMax;
52-
}
53-
54-
@Nullable
55-
public BigInteger getPositiveMin() {
56-
return positiveMin;
57-
}
58-
59-
@Nullable
60-
public BigInteger getPositiveMax() {
61-
return positiveMax;
40+
this.min = min;
41+
this.max = max;
6242
}
6343

6444
@Nullable
65-
public BigInteger getNegativeMin() {
66-
return negativeMin;
45+
public BigInteger getMin() {
46+
return min;
6747
}
6848

6949
@Nullable
70-
public BigInteger getNegativeMax() {
71-
return negativeMax;
50+
public BigInteger getMax() {
51+
return max;
7252
}
7353
}

Diff for: fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/generator/ValidateArbitraryGenerator.java

+6-24
Original file line numberDiff line numberDiff line change
@@ -243,33 +243,15 @@ public CombinableArbitrary<?> generate(ArbitraryGeneratorContext context) {
243243
}
244244

245245
BigInteger value = toBigInteger(it);
246-
if (value.compareTo(BigInteger.ZERO) < 0) {
247-
if (javaIntegerConstraint.getNegativeMin() != null) {
248-
if (value.compareTo(javaIntegerConstraint.getNegativeMin()) < 0) {
249-
return false;
250-
}
251-
}
252246

253-
if (javaIntegerConstraint.getNegativeMax() != null) {
254-
if (value.compareTo(BigInteger.ZERO) < 0
255-
&& value.compareTo(javaIntegerConstraint.getNegativeMax()) > 0) {
256-
return false;
257-
}
258-
}
247+
if (javaIntegerConstraint.getMin() != null
248+
&& value.compareTo(javaIntegerConstraint.getMin()) < 0) {
249+
return false;
259250
}
260251

261-
if (value.compareTo(BigInteger.ZERO) > 0) {
262-
if (javaIntegerConstraint.getPositiveMin() != null) {
263-
if (value.compareTo(javaIntegerConstraint.getPositiveMin()) < 0) {
264-
return false;
265-
}
266-
}
267-
268-
if (javaIntegerConstraint.getPositiveMax() != null) {
269-
if (value.compareTo(javaIntegerConstraint.getPositiveMax()) > 0) {
270-
return false;
271-
}
272-
}
252+
if (javaIntegerConstraint.getMax() != null
253+
&& value.compareTo(javaIntegerConstraint.getMax()) > 0) {
254+
return false;
273255
}
274256

275257
return true;

Diff for: fixture-monkey-api/src/main/java/com/navercorp/fixturemonkey/api/jqwik/JqwikJavaArbitraryResolver.java

+67-108
Original file line numberDiff line numberDiff line change
@@ -135,30 +135,22 @@ public Arbitrary<Short> shorts(
135135
return shortArbitrary;
136136
}
137137

138-
BigInteger positiveMin = constraint.getPositiveMin();
139-
BigInteger positiveMax = constraint.getPositiveMax();
140-
BigInteger negativeMin = constraint.getNegativeMin();
141-
BigInteger negativeMax = constraint.getNegativeMax();
142-
143-
ShortArbitrary positiveArbitrary = null;
144-
ShortArbitrary negativeArbitrary = null;
145-
if (positiveMin != null) {
146-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> shortArbitrary);
147-
positiveArbitrary = positiveArbitrary.greaterOrEqual(positiveMin.shortValueExact());
148-
}
149-
if (positiveMax != null) {
150-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> shortArbitrary);
151-
positiveArbitrary = positiveArbitrary.lessOrEqual(positiveMax.shortValueExact());
152-
}
153-
if (negativeMin != null) {
154-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> shortArbitrary);
155-
negativeArbitrary = negativeArbitrary.greaterOrEqual(negativeMin.shortValueExact());
156-
}
157-
if (negativeMax != null) {
158-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> shortArbitrary);
159-
negativeArbitrary = negativeArbitrary.lessOrEqual(negativeMax.shortValueExact());
160-
}
161-
return resolveArbitrary(shortArbitrary, positiveArbitrary, negativeArbitrary);
138+
BigInteger min = constraint.getMin();
139+
BigInteger max = constraint.getMax();
140+
141+
ShortArbitrary arbitrary = null;
142+
143+
if (min != null) {
144+
arbitrary = Types.defaultIfNull(arbitrary, () -> shortArbitrary);
145+
arbitrary = arbitrary.greaterOrEqual(min.shortValueExact());
146+
}
147+
148+
if (max != null) {
149+
arbitrary = Types.defaultIfNull(arbitrary, () -> shortArbitrary);
150+
arbitrary = arbitrary.lessOrEqual(max.shortValueExact());
151+
}
152+
153+
return arbitrary != null ? arbitrary : shortArbitrary;
162154
}
163155

164156
@Override
@@ -171,30 +163,22 @@ public Arbitrary<Byte> bytes(
171163
return byteArbitrary;
172164
}
173165

174-
BigInteger positiveMin = constraint.getPositiveMin();
175-
BigInteger positiveMax = constraint.getPositiveMax();
176-
BigInteger negativeMin = constraint.getNegativeMin();
177-
BigInteger negativeMax = constraint.getNegativeMax();
166+
BigInteger min = constraint.getMin();
167+
BigInteger max = constraint.getMax();
178168

179-
ByteArbitrary positiveArbitrary = null;
180-
ByteArbitrary negativeArbitrary = null;
181-
if (positiveMin != null) {
182-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> byteArbitrary);
183-
positiveArbitrary = positiveArbitrary.greaterOrEqual(positiveMin.byteValueExact());
184-
}
185-
if (positiveMax != null) {
186-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> byteArbitrary);
187-
positiveArbitrary = positiveArbitrary.lessOrEqual(positiveMax.byteValueExact());
188-
}
189-
if (negativeMin != null) {
190-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> byteArbitrary);
191-
negativeArbitrary = negativeArbitrary.greaterOrEqual(negativeMin.byteValueExact());
169+
ByteArbitrary arbitrary = null;
170+
171+
if (min != null) {
172+
arbitrary = Types.defaultIfNull(arbitrary, () -> byteArbitrary);
173+
arbitrary = arbitrary.greaterOrEqual(min.byteValueExact());
192174
}
193-
if (negativeMax != null) {
194-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> byteArbitrary);
195-
negativeArbitrary = negativeArbitrary.lessOrEqual(negativeMax.byteValueExact());
175+
176+
if (max != null) {
177+
arbitrary = Types.defaultIfNull(arbitrary, () -> byteArbitrary);
178+
arbitrary = arbitrary.lessOrEqual(max.byteValueExact());
196179
}
197-
return resolveArbitrary(byteArbitrary, positiveArbitrary, negativeArbitrary);
180+
181+
return arbitrary != null ? arbitrary : byteArbitrary;
198182
}
199183

200184
@Override
@@ -299,30 +283,22 @@ public Arbitrary<Integer> integers(
299283
return integerArbitrary;
300284
}
301285

302-
BigInteger positiveMin = constraint.getPositiveMin();
303-
BigInteger positiveMax = constraint.getPositiveMax();
304-
BigInteger negativeMin = constraint.getNegativeMin();
305-
BigInteger negativeMax = constraint.getNegativeMax();
286+
BigInteger min = constraint.getMin();
287+
BigInteger max = constraint.getMax();
306288

307-
IntegerArbitrary positiveArbitrary = null;
308-
IntegerArbitrary negativeArbitrary = null;
309-
if (positiveMin != null) {
310-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> integerArbitrary);
311-
positiveArbitrary = positiveArbitrary.greaterOrEqual(positiveMin.intValueExact());
312-
}
313-
if (positiveMax != null) {
314-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> integerArbitrary);
315-
positiveArbitrary = positiveArbitrary.lessOrEqual(positiveMax.intValueExact());
316-
}
317-
if (negativeMin != null) {
318-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> integerArbitrary);
319-
negativeArbitrary = negativeArbitrary.greaterOrEqual(negativeMin.intValueExact());
289+
IntegerArbitrary arbitrary = null;
290+
291+
if (min != null) {
292+
arbitrary = Types.defaultIfNull(arbitrary, () -> integerArbitrary);
293+
arbitrary = arbitrary.greaterOrEqual(min.intValueExact());
320294
}
321-
if (negativeMax != null) {
322-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> integerArbitrary);
323-
negativeArbitrary = negativeArbitrary.lessOrEqual(negativeMax.intValueExact());
295+
296+
if (max != null) {
297+
arbitrary = Types.defaultIfNull(arbitrary, () -> integerArbitrary);
298+
arbitrary = arbitrary.lessOrEqual(max.intValueExact());
324299
}
325-
return resolveArbitrary(integerArbitrary, positiveArbitrary, negativeArbitrary);
300+
301+
return arbitrary != null ? arbitrary : integerArbitrary;
326302
}
327303

328304
@Override
@@ -335,30 +311,22 @@ public Arbitrary<Long> longs(
335311
return longArbitrary;
336312
}
337313

338-
BigInteger positiveMin = constraint.getPositiveMin();
339-
BigInteger positiveMax = constraint.getPositiveMax();
340-
BigInteger negativeMin = constraint.getNegativeMin();
341-
BigInteger negativeMax = constraint.getNegativeMax();
314+
BigInteger min = constraint.getMin();
315+
BigInteger max = constraint.getMax();
342316

343-
LongArbitrary positiveArbitrary = null;
344-
LongArbitrary negativeArbitrary = null;
345-
if (positiveMin != null) {
346-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> longArbitrary);
347-
positiveArbitrary = positiveArbitrary.greaterOrEqual(positiveMin.longValueExact());
348-
}
349-
if (positiveMax != null) {
350-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> longArbitrary);
351-
positiveArbitrary = positiveArbitrary.lessOrEqual(positiveMax.longValueExact());
352-
}
353-
if (negativeMin != null) {
354-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> longArbitrary);
355-
negativeArbitrary = negativeArbitrary.greaterOrEqual(negativeMin.longValueExact());
317+
LongArbitrary arbitrary = null;
318+
319+
if (min != null) {
320+
arbitrary = Types.defaultIfNull(arbitrary, () -> longArbitrary);
321+
arbitrary = arbitrary.greaterOrEqual(min.longValueExact());
356322
}
357-
if (negativeMax != null) {
358-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> longArbitrary);
359-
negativeArbitrary = negativeArbitrary.lessOrEqual(negativeMax.longValueExact());
323+
324+
if (max != null) {
325+
arbitrary = Types.defaultIfNull(arbitrary, () -> longArbitrary);
326+
arbitrary = arbitrary.lessOrEqual(max.longValueExact());
360327
}
361-
return resolveArbitrary(longArbitrary, positiveArbitrary, negativeArbitrary);
328+
329+
return arbitrary != null ? arbitrary : longArbitrary;
362330
}
363331

364332
@Override
@@ -371,31 +339,22 @@ public Arbitrary<BigInteger> bigIntegers(
371339
return bigIntegerArbitrary;
372340
}
373341

374-
BigInteger positiveMin = constraint.getPositiveMin();
375-
BigInteger positiveMax = constraint.getPositiveMax();
376-
BigInteger negativeMin = constraint.getNegativeMin();
377-
BigInteger negativeMax = constraint.getNegativeMax();
342+
BigInteger min = constraint.getMin();
343+
BigInteger max = constraint.getMax();
378344

379-
BigIntegerArbitrary positiveArbitrary = null;
380-
BigIntegerArbitrary negativeArbitrary = null;
381-
if (positiveMin != null) {
382-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> bigIntegerArbitrary);
383-
positiveArbitrary = positiveArbitrary.greaterOrEqual(positiveMin);
384-
}
385-
if (positiveMax != null) {
386-
positiveArbitrary = Types.defaultIfNull(positiveArbitrary, () -> bigIntegerArbitrary);
387-
positiveArbitrary = positiveArbitrary.lessOrEqual(positiveMax);
388-
}
389-
if (negativeMin != null) {
390-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> bigIntegerArbitrary);
391-
negativeArbitrary = negativeArbitrary.greaterOrEqual(negativeMin);
345+
BigIntegerArbitrary arbitrary = null;
346+
347+
if (min != null) {
348+
arbitrary = Types.defaultIfNull(arbitrary, () -> bigIntegerArbitrary);
349+
arbitrary = arbitrary.greaterOrEqual(min);
392350
}
393-
if (negativeMax != null) {
394-
negativeArbitrary = Types.defaultIfNull(negativeArbitrary, () -> bigIntegerArbitrary);
395-
negativeArbitrary = negativeArbitrary.lessOrEqual(negativeMax);
351+
352+
if (max != null) {
353+
arbitrary = Types.defaultIfNull(arbitrary, () -> bigIntegerArbitrary);
354+
arbitrary = arbitrary.lessOrEqual(max);
396355
}
397356

398-
return resolveArbitrary(bigIntegerArbitrary, positiveArbitrary, negativeArbitrary);
357+
return arbitrary != null ? arbitrary : bigIntegerArbitrary;
399358
}
400359

401360
@Override

0 commit comments

Comments
 (0)