package gw.rating.impact uses java.math.BigDecimal uses java.util.List class ImpactTestingResultBucket { var _shortLabel : String as ShortLabel var _category : String as Category var _values : List as Data var _minBoundary : BigDecimal as MinBoundary var _maxBoundary : BigDecimal as MaxBoundary construct(shLabel : String, cat : String, min : BigDecimal, max : BigDecimal) { ShortLabel = shLabel Category = cat MinBoundary = min MaxBoundary = max Data = {} } function matches(num : BigDecimal) : boolean { if (MinBoundary == null and num < MaxBoundary) { return true } else if (MaxBoundary == null and MinBoundary <= num) { return true } else if (MinBoundary == MaxBoundary) { return MinBoundary == num } else if (MinBoundary <= num and num < MaxBoundary) { return true } else { return false } } property get AvgDiffValue() : BigDecimal { if (Data.Count > 0) { return Data.map(\v ->v.DiffInValue).average() } else { return 0 } } property get DiffTotal() : BigDecimal { if (Data.Count > 0) { return Data.map(\v ->v.DiffInValue).sum() } else { return 0 } } }