001 package ps4;
002
003 /**
004 * Class overview to be written by student.
005 */
006 public class StreetNumberSet {
007
008 /**
009 * Creates a StreetNumberSet containing the numbers indicated in the
010 * argument.
011 *
012 * @requires numbers != null && numbers is a space-free comma-delimited list
013 * of zero or more disjoint parity ranges. Two parity ranges
014 * are disjoint if they share no elements.
015 * For example, 10-20 and 19-21 are disjoint: as
016 * one only contains even elements and the other contains odd.
017 * By contrast, 1-5 and 3-7 overlap, as they both contain 3 and 5.
018 *
019 * <p>
020 * A parity range is either a single nonnegative integer "n" or a
021 * hyphen-separated pair of nonnegative integers "m-n", where m and n have
022 * the same parity and m is no greater than n. A range m-n represents the
023 * set of all numbers from m to n, inclusive, which are the same parity as m
024 * and n.
025 *
026 * <p>
027 * For instance, legal arguments to this constructor include
028 * "", "5", "22,253", "3-101", and "1914-1918,1939-1945".
029 */
030 public StreetNumberSet(String numbers) {
031 }
032
033 /**
034 * @return true if other is a StreetNumberSet that contains the same
035 * numbers as this. In particular, this expression evaluates to true:
036 * <pre>new StreetNumberSet("1-9").equals(new StreetNumberSet("1-3,5-9"))</pre>
037 */
038 public boolean equals(Object other) {
039 throw new RuntimeException("StreetNumberSet.equals() unimplemented!");
040 }
041
042 /** @return true iff i is in this */
043 public boolean contains(int i) {
044 throw new RuntimeException("StreetNumberSet.contains() unimplemented!");
045 }
046
047 /** @return the number of elements less than i in this */
048 public int orderStatistic(int i) {
049 throw new RuntimeException("StreetNumberSet.orderStatistic() unimplemented!");
050 }
051
052 }