@Override public BigDecimal magnitude(Object value) { return delegate.magnitude(value); } }
@Override public BigDecimal magnitude(Object value) { int length = Array.getLength(value); if (length == 0) return ZERO; BigDecimal elementsMagnitude = IntStream.range(0, length) .mapToObj(i -> component.magnitude(Array.get(value, i))) .reduce(ZERO, BigDecimal::add); return BigDecimal.valueOf(length).multiply(elementsMagnitude); }
@Override public BigDecimal magnitude(Object value) { List<Weighted<Generator<?>>> shrinkers = composed.stream() .filter(w -> w.item.canShrink(value)) .collect(toList()); return shrinkers.get(0).item.magnitude(value); }
public BigDecimal magnitude(Object value) { return generator.canShrink(value) ? generator.magnitude(value).abs() : ZERO; }
@Override public BigDecimal magnitude(Object value) { Collection<?> narrowed = narrow(value); if (narrowed.isEmpty()) return ZERO; BigDecimal elementsMagnitude = narrowed.stream() .map(e -> componentGenerators().get(0).magnitude(e)) .reduce(ZERO, BigDecimal::add); return BigDecimal.valueOf(narrowed.size()).multiply(elementsMagnitude); }
@Override public BigDecimal magnitude(Object value) { Map<?, ?> narrowed = narrow(value); if (narrowed.isEmpty()) return BigDecimal.ZERO; BigDecimal keysMagnitude = narrowed.keySet().stream() .map(e -> componentGenerators().get(0).magnitude(e)) .reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal valuesMagnitude = narrowed.values().stream() .map(e -> componentGenerators().get(1).magnitude(e)) .reduce(BigDecimal.ZERO, BigDecimal::add); return BigDecimal.valueOf(narrowed.size()) .multiply(keysMagnitude) .add(valuesMagnitude); }
@Override public BigDecimal magnitude(Object value) { ArrayList<?> narrowed = narrow(value); if (narrowed.isEmpty()) return ZERO; BigDecimal elementsMagnitude = narrowed.stream() .map(e -> componentGenerators().get(0).magnitude(e)) .reduce(ZERO, BigDecimal::add); return BigDecimal.valueOf(narrowed.size()).multiply(elementsMagnitude); } }
@Override public BigDecimal magnitude(Object value) { HashMap<?, ?> narrowed = narrow(value); if (narrowed.isEmpty()) return ZERO; BigDecimal keysMagnitude = narrowed.keySet().stream() .map(e -> componentGenerators().get(0).magnitude(e)) .reduce(ZERO, BigDecimal::add); BigDecimal valuesMagnitude = narrowed.values().stream() .map(e -> componentGenerators().get(1).magnitude(e)) .reduce(ZERO, BigDecimal::add); return BigDecimal.valueOf(narrowed.size()) .multiply(keysMagnitude) .add(valuesMagnitude); } }
@Override public BigDecimal magnitude(Object value) { return componentGenerators().get(0).magnitude(((Box) value).contents()); }
@Override public BigDecimal magnitude(Object value) { int length = Array.getLength(value); if (length == 0) return ZERO; BigDecimal elementsMagnitude = IntStream.range(0, length) .mapToObj(i -> component.magnitude(Array.get(value, i))) .reduce(ZERO, BigDecimal::add); return BigDecimal.valueOf(length).multiply(elementsMagnitude); }
public BigDecimal magnitude(Object value) { return generator.canShrink(value) ? generator.magnitude(value).abs() : ZERO; }
@Override public BigDecimal magnitude(Object value) { List<Weighted<Generator<?>>> shrinkers = composed.stream() .filter(w -> w.item.canShrink(value)) .collect(toList()); return shrinkers.get(0).item.magnitude(value); }
@Override public BigDecimal magnitude(Object value) { Collection<?> narrowed = narrow(value); if (narrowed.isEmpty()) return ZERO; BigDecimal elementsMagnitude = narrowed.stream() .map(e -> componentGenerators().get(0).magnitude(e)) .reduce(ZERO, BigDecimal::add); return BigDecimal.valueOf(narrowed.size()).multiply(elementsMagnitude); }
@Override public BigDecimal magnitude(Object value) { Map<?, ?> narrowed = narrow(value); if (narrowed.isEmpty()) return BigDecimal.ZERO; BigDecimal keysMagnitude = narrowed.keySet().stream() .map(e -> componentGenerators().get(0).magnitude(e)) .reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal valuesMagnitude = narrowed.values().stream() .map(e -> componentGenerators().get(1).magnitude(e)) .reduce(BigDecimal.ZERO, BigDecimal::add); return BigDecimal.valueOf(narrowed.size()) .multiply(keysMagnitude) .add(valuesMagnitude); }