import org.checkerframework.common.value.qual.IntRange;
import org.checkerframework.common.value.qual.IntVal;

public class MathMinMax {
    void mathTest1(@IntRange(from = 0, to = 10) int x, @IntRange(from = 5, to = 15) int y) {
        @IntRange(from = 0, to = 10) int min = Math.min(x, y);
        @IntRange(from = 5, to = 15) int max = Math.max(x, y);
    }

    void mathTest2(@IntRange(from = 0, to = 10) int x, @IntRange(from = 11, to = 15) int y) {
        @IntRange(from = 0, to = 10) int min = Math.min(x, y);
        @IntRange(from = 11, to = 15) int max = Math.max(x, y);
    }

    void mathTest3(@IntRange(from = 0, to = 20) int x, @IntRange(from = 5, to = 15) int y) {
        @IntRange(from = 0, to = 15) int min = Math.min(x, y);
        @IntRange(from = 5, to = 20) int max = Math.max(x, y);
        @IntVal(1) int minConst = Math.min(1, 2);
        @IntVal(2) int maxConst = Math.max(-1, 2);
    }

    void mathTest(long x, long y) {
        long min = Math.min(x, y);
        long max = Math.max(x, y);
    }

    void mathTest(double x, double y) {
        double min = Math.min(x, y);
        double max = Math.max(x, y);
    }

    void mathTetMax(@IntRange int x, @IntRange int y) {
        @IntRange int z = Math.min(x, y);
    }
}
