public DisjointRangeDomainHistogram addDisjunction(StatisticRange other)
    {
        Set<Range<Double>> ranges = ImmutableSet.<Range<Double>>builder()
                .addAll(this.ranges)
                .add(other.toRange())
                .build();
        return new DisjointRangeDomainHistogram(source, ranges);
    }
@Test
    public void testAddDisjunction()
    {
        ConnectorHistogram source = new UniformDistributionHistogram(0, 100);
        DisjointRangeDomainHistogram constrained = disjunction(source, Range.open(-1d, 2d));
        assertEquals(constrained.getRanges().size(), 1);
        assertEquals(ranges(constrained).get(0), Range.closedOpen(0d, 2d));
        constrained = disjunction(constrained, Range.open(1d, 10d));
        assertEquals(ranges(constrained).size(), 1);
        assertEquals(ranges(constrained).get(0), Range.closedOpen(0d, 10d));
        constrained = disjunction(constrained, Range.closedOpen(50d, 100d));
        assertEquals(ranges(constrained).size(), 2);
        assertEquals(ranges(constrained).get(0), Range.closedOpen(0d, 10d));
        assertEquals(ranges(constrained).get(1), Range.closedOpen(50d, 100d));
    }