Skip to content

Commit 2c86687

Browse files
author
Justin Wetherell
committed
Cleaned up the Interval Tree, KD-Tree, and Matrix test cases
1 parent 2357c81 commit 2c86687

File tree

1 file changed

+44
-4
lines changed

1 file changed

+44
-4
lines changed

src/com/jwetherell/algorithms/data_structures/SegmentTree.java

+44-4
Original file line numberDiff line numberDiff line change
@@ -329,8 +329,28 @@ else if (this.maximum != null && data.maximum == null)
329329
return;
330330
else if (this.maximum == null && data.maximum != null)
331331
this.maximum = data.maximum;
332-
else if (data.maximum.doubleValue() > this.maximum.doubleValue()) {
333-
this.maximum = data.maximum;
332+
else {
333+
/* TODO: This is ugly and how to handle number overflow? */
334+
if (this.maximum instanceof BigDecimal || data.maximum instanceof BigDecimal) {
335+
if (((BigDecimal)data.maximum).compareTo(((BigDecimal)this.maximum))==1)
336+
this.maximum = data.maximum;
337+
} else if (this.maximum instanceof BigInteger || data.maximum instanceof BigInteger) {
338+
if (((BigInteger)data.maximum).compareTo(((BigInteger)this.maximum))==1)
339+
this.maximum = data.maximum;
340+
} else if (this.maximum instanceof Long || data.maximum instanceof Long) {
341+
if (((Long)data.maximum).compareTo(((Long)this.maximum))==1)
342+
this.maximum = data.maximum;
343+
} else if (this.maximum instanceof Double || data.maximum instanceof Double) {
344+
if (((Double)data.maximum).compareTo(((Double)this.maximum))==1)
345+
this.maximum = data.maximum;
346+
} else if (this.maximum instanceof Float || data.maximum instanceof Float) {
347+
if (((Float)data.maximum).compareTo(((Float)this.maximum))==1)
348+
this.maximum = data.maximum;
349+
} else {
350+
// Integer
351+
if (((Integer)data.maximum).compareTo(((Integer)this.maximum))==1)
352+
this.maximum = data.maximum;
353+
}
334354
}
335355
}
336356

@@ -449,8 +469,28 @@ else if (this.minimum != null && data.minimum == null)
449469
return;
450470
else if (this.minimum == null && data.minimum != null)
451471
this.minimum = data.minimum;
452-
else if (data.minimum.doubleValue() < this.minimum.doubleValue()) {
453-
this.minimum = data.minimum;
472+
else {
473+
/* TODO: This is ugly and how to handle number overflow? */
474+
if (this.minimum instanceof BigDecimal || data.minimum instanceof BigDecimal) {
475+
if (((BigDecimal)data.minimum).compareTo(((BigDecimal)this.minimum))==-1)
476+
this.minimum = data.minimum;
477+
} else if (this.minimum instanceof BigInteger || data.minimum instanceof BigInteger) {
478+
if (((BigInteger)data.minimum).compareTo(((BigInteger)this.minimum))==-1)
479+
this.minimum = data.minimum;
480+
} else if (this.minimum instanceof Long || data.minimum instanceof Long) {
481+
if (((Long)data.minimum).compareTo(((Long)this.minimum))==-1)
482+
this.minimum = data.minimum;
483+
} else if (this.minimum instanceof Double || data.minimum instanceof Double) {
484+
if (((Double)data.minimum).compareTo(((Double)this.minimum))==-1)
485+
this.minimum = data.minimum;
486+
} else if (this.minimum instanceof Float || data.minimum instanceof Float) {
487+
if (((Float)data.minimum).compareTo(((Float)this.minimum))==-1)
488+
this.minimum = data.minimum;
489+
} else {
490+
// Integer
491+
if (((Integer)data.minimum).compareTo(((Integer)this.minimum))==-1)
492+
this.minimum = data.minimum;
493+
}
454494
}
455495
}
456496

0 commit comments

Comments
 (0)