# HG changeset patch # User Andre Heinecke # Date 1370535797 -7200 # Node ID 3fea9701d58d948e5a91ffb550bbdf1857ef6b7f # Parent cb536a9a6c17eec63a64bde794d28ad75ca9e284 Fix gauge determination. If we look upstream ( a > b ) we still have to compare the start value of our range against the gauge and not the end value. The start value is always the relevant value as we handle the direction by checking this against A or B of the gauge. Also: I will never compare doubles with == again. I will never compare doubles with == again. I will never compare doubles with == again. I will never compare doubles with == again. I will never compare doubles with == again. diff -r cb536a9a6c17 -r 3fea9701d58d backend/src/main/java/org/dive4elements/river/model/River.java --- a/backend/src/main/java/org/dive4elements/river/model/River.java Thu Jun 06 18:10:19 2013 +0200 +++ b/backend/src/main/java/org/dive4elements/river/model/River.java Thu Jun 06 18:23:17 2013 +0200 @@ -301,19 +301,17 @@ public Gauge determineGauge(double a, double b) { List gauges = determineGauges(a, b); - int idx = a < b ? 0 : gauges.size() - 1; - if (a > b) { for (int i = gauges.size() - 1; i >= 0; i--) { Gauge g = gauges.get(i); - if (g.getRange().getA().doubleValue() == b) + if (KM_CMP.compare(g.getRange().getA().doubleValue(), a) == 0) continue; return g; } } for (Gauge g: gauges) { - if ( g.getRange().getB().doubleValue() == a ) { + if (KM_CMP.compare(g.getRange().getB().doubleValue(), a) == 0) { continue; } return g;