package test3; /** * A class that represents a range of values on the real number line. A range * has two properties: a minimum value and a maximum * value. Range objects always ensure that the following class invariant is * true: * *

* minimum <= maximum * *

* The constructors of the class are responsible for ensuring that the above * class invariant is always true. * * @author EECS1030Z_2014_15W * */ public class Range { private static double DEFAULT_MIN = 0; private static double DEFAULT_MAX = 100; private double min; private double max; /** * Create a range with minimum value 0 and a maximum value 100. */ public Range() { } /** * Create a range with the specified minimum and maximum values. * * @param min * the minimum value of the range * @param max * the maximum value of the range * @throws IllegalArgumentException * if min > max */ public Range(double min, double max) { } /** * Returns the minimum value of the range * * @return the minimum value of the range */ public double getMinimum() { } /** * Returns the maximum value of the range * * @return the maximum value of the range */ public double getMaximum() { } /** * Checks if value is inside this range. A value is considered * inside this range if both * *

* value >= minimum and value <= maximum * *

* are true. * * @param value * the value to check * @return true if value is inside this range, * false otherwise */ public boolean contains(double value) { } /** * Checks if this range overlaps with another range. Two ranges overlap if at * least one double value is contained by both ranges. For * example, the two ranges * *

* [0.1, 0.8] and [0.6, 2.5] overlap because all * values between 0.6 and 0.8 are contained by both * ranges. * *

* The two ranges * *

* [-0.25, 0.33] and [0.33, 1.0] overlap because * both ranges contain the value 0.33 * * * @param other * the other range to check * @return true if this range overlaps with other, * and false otherwise. */ public boolean overlaps(Range other) { } /** * Return a new range that is centered at value and whose total * width is width. For example: * *

* Range.centeredAt(10.0, 5.0) * *

* would return the range [7.5, 12.5]. * * * @param value * the center of the desired range * @param width * the total width of the desired range * @pre. width >= 0 * @return a new Range centered at value and whose * total width is width */ public static Range centeredAt(double value, double width) { } /** * Returns the string representation of a range. The string contains the * minimum and maximum values separated by a comma and space all inside of a * pair of square brackets. For example, the string * *

* [-3.14, 3.14] * *

* represents the range whose minimum value is -3.14 and whose * maximum value is 3.14 * * @return a string representation of the range * @see java.lang.Object#toString() */ @Override public String toString() { } /** * Returns a hash code for this range. * * @return a hash code for this range * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; long temp; temp = Double.doubleToLongBits(max); result = prime * result + (int) (temp ^ (temp >>> 32)); temp = Double.doubleToLongBits(min); result = prime * result + (int) (temp ^ (temp >>> 32)); return result; } /** * Compares this Range to the specified Object. The * result is true if and only if the argument is a Range object * having the same minimum and maximum value as this object. * * @param obj * the object to compare with * @return true if this object is equal to obj; * false otherwise * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } Range other = (Range) obj; if (Double.doubleToLongBits(max) != Double.doubleToLongBits(other.max)) { return false; } if (Double.doubleToLongBits(min) != Double.doubleToLongBits(other.min)) { return false; } return true; } }