001    package ps6.test;
002    
003    import ps6.Address;
004    import ps6.test.TestRecord.TestDB;
005    
006    /**
007     * ValidateQueries contains static fields which hold candidate test queries
008     */
009    public final class ValidateQueries {
010            
011        // test directions when start and end are on the same segment
012        public static final TestRecord testSameSegment = 
013            new TestRecord("testSameSegment", TestDB.TINY,
014                           TestRecord.TestType.DRIVING,
015                           new Address(800, "SE Pioneer Way", "98277"), 
016                           new Address(841,"SE Pioneer Way", "98277"), 
017                           new String[] {
018                               "Turn left onto SE Pioneer Way and go 0.1 miles.",
019                               "841 SE Pioneer Way 98277 is on your right" }, 
020                           "Trip length: 0.1 miles",
021                           0.07472776589129437, null);
022        
023        // test directions when start and end are on the same street
024        public static final TestRecord testSameStreetWalking = 
025            new TestRecord( "testSameStreetWalking", TestDB.TINY,
026                            TestRecord.TestType.WALKING,
027                            new Address(630, "SE Pioneer Way", "98277"),
028                            new Address(940, "SE Pioneer Way", "98277"),
029                            new String[] {
030                                "Turn left onto SE Pioneer Way and walk for 5 minutes.",
031                                "940 SE Pioneer Way 98277 is on your left", },
032                            "Trip time: 5 minutes",
033                            0.232764928811733, null);
034    
035        // test directions when start and end are on the same street
036        public static final TestRecord testSameStreetDriving = 
037            new TestRecord("testSameStreetDriving", TestDB.TINY,
038                           TestRecord.TestType.DRIVING,
039                           new Address(630, "SE Pioneer Way", "98277"),
040                           new Address(940, "SE Pioneer Way", "98277"),
041                           new String[] {
042                               "Turn left onto SE Pioneer Way and go 0.2 miles.",
043                               "940 SE Pioneer Way 98277 is on your left", },
044                           "Trip length: 0.2 miles",
045                           0.232764928811733, null);
046    
047        // test directions when start and end are on the same zip
048        public static final TestRecord testSameZip = 
049            new TestRecord( "testSameZip", TestDB.TINY,
050                            TestRecord.TestType.DRIVING,
051                            new Address(841, "SE Pioneer Way", "98277"),
052                            new Address(1403, "Monroe Landing Rd", "98277"),
053                            new String[] {
054                                "Turn left onto SE Pioneer Way and go 0.5 miles.",
055                                "Continue onto W Pioneer Way and go 0.6 miles.",
056                                "Turn slight left onto State Route 20 and go 1.6 miles.",
057                                "Turn left onto Monroe Landing Rd and go 0.2 miles.", 
058                                "1403 Monroe Landing Rd 98277 is on your right",},
059                            "Trip length: 2.9 miles",
060                            2.9145611963146507, null);
061    
062        // test the first example from the assignment handout
063        public static final TestRecord testExamplePath1 = 
064            new TestRecord( "testExamplePath1", TestDB.TINY,
065                            TestRecord.TestType.WALKING,
066                            new Address(950, "NW 2nd Ave", "98277"),
067                            new Address(473, "SW Fairhaven Dr","98277"),
068                            new String[] {
069                                "Turn left onto NW 2nd Ave and walk for 4 minutes.",
070                                "Turn right onto NW Fairhaven Dr and walk for 2 minutes.",
071                                "Turn slight right onto SW Fairhaven Dr and walk for 7 minutes.",
072                                "473 SW Fairhaven Dr 98277 is on your right",},
073                            "Trip time: 13 minutes",
074                            0.6395505841145289, null);
075        
076        // test the second example from the assignment handout
077        public static final TestRecord testExamplePath2 = 
078            new TestRecord( "testExamplePath2", TestDB.TINY,
079                            TestRecord.TestType.DRIVING,
080                            new Address(841, "SE Pioneer Way", "98277"),
081                            new Address(1403, "Monroe Landing Rd","98277"),
082                            new String[] {
083                                "Turn left onto SE Pioneer Way and go 0.5 miles.",
084                                "Continue onto W Pioneer Way and go 0.6 miles.",
085                                "Turn slight left onto State Route 20 and go 1.6 miles.",
086                                "Turn left onto Monroe Landing Rd and go 0.2 miles.",
087                                "1403 Monroe Landing Rd 98277 is on your right",},
088                            "Trip length: 2.9 miles",
089                            2.9145611963146507, null);
090    
091        // test the second example from the assignment handout
092        public static final TestRecord testExamplePath3 = 
093            new TestRecord( "testExamplePath3", TestDB.TINY,
094                            TestRecord.TestType.DRIVING,
095                            new Address(2430, "Fairway Ln", "98277"),
096                            new Address(1614, "Swantown Rd","98277"),
097                            new String[] {
098                                "Turn left onto Fairway Ln and go 0.2 miles.",
099                                "Turn sharp left onto Swantown Rd and go 1.1 miles.",
100                                "1614 Swantown Rd 98277 is on your right",},
101                            "Trip length: 1.3 miles",
102                            0.3038780471564961, null);
103        
104        
105        // test for an invalid zip code
106        public static final TestRecord testBadZip = 
107            new TestRecord(  "testBadZip", TestDB.TINY,
108                             TestRecord.TestType.INVALID_ADDRESS,
109                             new Address(123, "Bad Zip Code Rd", "12345"), 
110                             new Address(123, "Bad Zip Code Rd", "12345"), 
111                             null,null,Double.NaN,
112                             "No such zipcode: 123 Bad Zip Code Rd 12345");
113    
114        // test for an invalid street
115        public static final TestRecord testBadStreet = 
116            new TestRecord( "testBadStreet", TestDB.TINY,
117                            TestRecord.TestType.INVALID_ADDRESS,
118                            new Address(123, "Fake St", "98277"), 
119                            new Address(123, "Fake St", "98277"),
120                            null,null,Double.NaN,
121                            "No such street: 123 Fake St 98277");
122    
123        // test for an invalid number
124        public static final TestRecord testBadNum = 
125            new TestRecord( "testBadNum", TestDB.TINY,
126                            TestRecord.TestType.INVALID_ADDRESS,
127                            new Address(2000, "Starflower Rd", "98277"), 
128                            new Address(2000,"Starflower Rd", "98277"), 
129                            null,null,Double.NaN,
130                            "No such number: 2000 Starflower Rd 98277");
131    
132        // test for invalid direction type
133        public static final TestRecord testBadDirType = 
134            new TestRecord( "testBadDirType", TestDB.TINY,
135                            TestRecord.TestType.INVALID_DIR_TYPE,
136                            new Address(841, "SE Pioneer Way", "98277"),
137                            new Address(841, "SE Pioneer Way", "98277"),
138                            null,null,Double.NaN,
139                            "Invalid direction type: q");
140        
141        
142        /** All validation queries **/
143        public static final TestRecord[] allQueries = {  
144            testBadZip,
145            testBadStreet,
146            testBadNum,
147            testBadDirType,
148            testSameSegment,
149            testSameZip,
150            testSameStreetWalking,
151            testSameStreetDriving,
152            testExamplePath1,
153            testExamplePath2,
154            testExamplePath3,
155        };
156        
157        //You may want to create other groups of queries, e.g.:
158        //
159        //public static final TestRecord[] badQueries = { 
160        //  testBadZip,
161        //  testBadStreet,
162        //  testBadNum,
163        //  testBadDirType,
164        //};
165    }