634 {
635
639 assert((IntervalValue(4) / IntervalValue(2)).equals(IntervalValue(2)));
640 assert((IntervalValue(3) / IntervalValue(2)).equals(IntervalValue(1)));
641 assert((IntervalValue(-3) / IntervalValue(2)).equals(IntervalValue(-1)));
642 assert((IntervalValue(1, 3) / IntervalValue(2)).equals(IntervalValue(0, 1)));
643 assert((IntervalValue(2, 7) / IntervalValue(2)).equals(IntervalValue(1, 3)));
644 assert((IntervalValue(-3, 3) / IntervalValue(2)).equals(IntervalValue(-1, 1)));
647 assert((IntervalValue(1, 3) / IntervalValue(1, 2)).equals(IntervalValue(0, 3)));
648 assert((IntervalValue(-3, 3) / IntervalValue(1, 2)).equals(IntervalValue(-3, 3)));
649 assert((IntervalValue(2, 7) / IntervalValue(-2, 3)).equals(IntervalValue(-7, 7)));
650 assert((IntervalValue(-2, 7) / IntervalValue(-2, 3)).equals(IntervalValue(-7, 7)));
653
656 assert((IntervalValue(-6, -3) / IntervalValue(3, 9)).equals(IntervalValue(-2, 0)));
657 assert((IntervalValue(-6, 6) / IntervalValue(3, 9)).equals(IntervalValue(-2, 2)));
658
659
663 assert((IntervalValue(4) % IntervalValue(2)).equals(IntervalValue(0)));
664 assert((IntervalValue(3) % IntervalValue(2)).equals(IntervalValue(1)));
665 assert((IntervalValue(-3) % IntervalValue(2)).equals(IntervalValue(-1)));
666 assert((IntervalValue(1, 3) % IntervalValue(2)).equals(IntervalValue(0, 1)));
667 assert((IntervalValue(2, 7) % IntervalValue(2)).equals(IntervalValue(0, 1)));
668 assert((IntervalValue(-3, 3) % IntervalValue(2)).equals(IntervalValue(-1, 1)));
671 assert((IntervalValue(1, 3) % IntervalValue(1, 2)).equals(IntervalValue(0, 1)));
672 assert((IntervalValue(-3, 3) % IntervalValue(1, 2)).equals(IntervalValue(-1, 1)));
679 assert((IntervalValue(-6, -3) % IntervalValue(3, 9)).equals(IntervalValue(-6, 0)));
680 assert((IntervalValue(-6, 6) % IntervalValue(3, 9)).equals(IntervalValue(-6, 6)));
681
682
689 assert((IntervalValue(0) << IntervalValue(31)).equals(IntervalValue(0)));
690 assert((IntervalValue(0) << IntervalValue(31, 32)).equals(IntervalValue(0)));
695 assert((IntervalValue(0, 0) << IntervalValue(2, 2)).equals(IntervalValue(0, 0)));
696 assert((IntervalValue(2, 2) << IntervalValue(3, 3)).equals(IntervalValue(16, 16)));
697 assert((IntervalValue(-2, -2) << IntervalValue(3, 3)).equals(IntervalValue(-16, -16)));
698
702 assert((IntervalValue(4) << IntervalValue(2)).equals(IntervalValue(16)));
703 assert((IntervalValue(3) << IntervalValue(2)).equals(IntervalValue(12)));
704 assert((IntervalValue(-3) << IntervalValue(2)).equals(IntervalValue(-12)));
706 assert((IntervalValue(1, 3) << IntervalValue(2)).equals(IntervalValue(4, 12)));
707 assert((IntervalValue(2, 7) << IntervalValue(2)).equals(IntervalValue(8, 28)));
708 assert((IntervalValue(-3, 3) << IntervalValue(2)).equals(IntervalValue(-12, 12)));
711 assert((IntervalValue(1, 3) << IntervalValue(1, 2)).equals(IntervalValue(2, 12)));
712 assert((IntervalValue(-3, 3) << IntervalValue(1, 2)).equals(IntervalValue(-12, 12)));
713 assert((IntervalValue(2, 7) << IntervalValue(-2, 3)).equals(IntervalValue(2, 56)));
714 assert((IntervalValue(-2, 7) << IntervalValue(-2, 3)).equals(IntervalValue(-16, 56)));
719 assert((IntervalValue(-6, -3) << IntervalValue(3, 9)).equals(IntervalValue(-3072, -24)));
720 assert((IntervalValue(-6, 6) << IntervalValue(3, 9)).equals(IntervalValue(-3072, 3072)));
723
724
725
733 assert((IntervalValue(0) >> IntervalValue(2)).equals(IntervalValue(0)));
734 assert((IntervalValue(15) >> IntervalValue(2)).equals(IntervalValue(3)));
735 assert((IntervalValue(-15) >> IntervalValue(2)).equals(IntervalValue(-4)));
736
740 assert((IntervalValue(15) >> IntervalValue(2)).equals(IntervalValue(3)));
741 assert((IntervalValue(1) >> IntervalValue(2)).equals(IntervalValue(0)));
742 assert((IntervalValue(-15) >> IntervalValue(2)).equals(IntervalValue(-4)));
744 assert((IntervalValue(1, 3) >> IntervalValue(2)).equals(IntervalValue(0)));
745 assert((IntervalValue(2, 7) >> IntervalValue(2)).equals(IntervalValue(0, 1)));
746 assert((IntervalValue(-15, 15) >> IntervalValue(2)).equals(IntervalValue(-4, 3)));
749 assert((IntervalValue(0, 15) >> IntervalValue(1, 2)).equals(IntervalValue(0, 7)));
750 assert((IntervalValue(-17, 15) >> IntervalValue(1, 2)).equals(IntervalValue(-9, 7)));
751 assert((IntervalValue(2, 7) >> IntervalValue(-2, 3)).equals(IntervalValue(0, 7)));
752 assert((IntervalValue(-2, 7) >> IntervalValue(-2, 3)).equals(IntervalValue(-2, 7)));
757 assert((IntervalValue(-6, -3) >> IntervalValue(2, 3)).equals(IntervalValue(-2, -1)));
758 assert((IntervalValue(-6, 6) >> IntervalValue(2, 3)).equals(IntervalValue(-2, 1)));
761
762
766 assert((IntervalValue(4) & IntervalValue(2)).equals(IntervalValue(0)));
767 assert((IntervalValue(3) & IntervalValue(2)).equals(IntervalValue(2)));
768 assert((IntervalValue(-3) & IntervalValue(2)).equals(IntervalValue(0)));
769 assert((IntervalValue(1, 3) & IntervalValue(2)).equals(IntervalValue(0, 2)));
770 assert((IntervalValue(2, 7) & IntervalValue(2)).equals(IntervalValue(0, 2)));
771 assert((IntervalValue(-3, 3) & IntervalValue(2)).equals(IntervalValue(0, 2)));
774 assert((IntervalValue(1, 3) & IntervalValue(1, 2)).equals(IntervalValue(0, 2)));
775 assert((IntervalValue(-3, 3) & IntervalValue(1, 2)).equals(IntervalValue(0, 2)));
776 assert((IntervalValue(2, 7) & IntervalValue(-2, 3)).equals(IntervalValue(0, 7)));
782 assert((IntervalValue(-6, -3) & IntervalValue(3, 9)).equals(IntervalValue(0, 9)));
783 assert((IntervalValue(-6, 6) & IntervalValue(3, 9)).equals(IntervalValue(0, 9)));
784
785
790 assert((IntervalValue(4) | IntervalValue(2)).equals(IntervalValue(6)));
791 assert((IntervalValue(3) | IntervalValue(2)).equals(IntervalValue(3)));
792 assert((IntervalValue(-3) | IntervalValue(2)).equals(IntervalValue(-1)));
793 assert((IntervalValue(1, 3) | IntervalValue(2)).equals(IntervalValue(0, 3)));
794 assert((IntervalValue(2, 7) | IntervalValue(2)).equals(IntervalValue(0, 7)));
798 assert((IntervalValue(1, 3) | IntervalValue(1, 2)).equals(IntervalValue(0, 3)));
808
809
814 assert((IntervalValue(4) ^ IntervalValue(2)).equals(IntervalValue(6)));
815 assert((IntervalValue(3) ^ IntervalValue(2)).equals(IntervalValue(1)));
816 assert((IntervalValue(-3) ^ IntervalValue(2)).equals(IntervalValue(-1)));
817 assert((IntervalValue(1, 3) ^ IntervalValue(2)).equals(IntervalValue(0, 3)));
818 assert((IntervalValue(2, 7) ^ IntervalValue(2)).equals(IntervalValue(0, 7)));
822 assert((IntervalValue(1, 3) ^ IntervalValue(1, 2)).equals(IntervalValue(0, 3)));
832 }
static BoundedInt minus_infinity()
Get minus infinity -inf.
static IntervalValue bottom()
Create the bottom IntervalValue [+inf, -inf].
static BoundedInt plus_infinity()
Get plus infinity +inf.
static IntervalValue top()
Create the IntervalValue [-inf, +inf].