DateTimeIntervalSet::normalize() not always normalize fully:
use Dogma\Time\DateTime;
use Dogma\Time\Interval\DateTimeInterval;
use Dogma\Time\Interval\DateTimeIntervalSet;
$i1 = new DateTimeInterval(new DateTime('2024-09-01'), new DateTime('2024-09-10'));
$i2 = new DateTimeInterval(new DateTime('2024-08-01'), new DateTime('2024-08-10'));
$i3 = new DateTimeInterval(new DateTime('2024-07-20'), new DateTime('2024-09-02'));
$s = new DateTimeIntervalSet([$i1, $i2, $i3]);
var_dump(count($s->getIntervals())); // 3
$s = $s->normalize();
var_dump(count($s->getIntervals())); // 2
$s = $s->normalize();
var_dump(count($s->getIntervals())); // 1
DateTimeIntervalSet::normalize()
not always normalize fully: