Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Algorithms, Part II
- by Kevin Wayne, Robert Sedgewick
- Programming Assignment 5: Burrows-Wheeler | burrows.zip
- Submission time Fri-02-Jan 18:44:03
- Raw Score 94.68 / 100.00
- Feedback See the Assessment Guide for information on how to read this report.
- Assessment Summary
- Compilation: PASSED
- Style: FAILED
- Findbugs: Potential bugs found.
- API: PASSED
- Correctness: 33/35 tests passed
- Memory: 10/10 tests passed
- Timing: 73/78 tests passed
- Aggregate score: 94.68% [Correctness: 65%, Memory: 10%, Timing: 25%, Style: 0%]
- Assessment Details
- The following files were submitted:
- ----------------------------------
- total 36K
- -rw-r--r-- 1 4.0K Jan 3 02:45 BurrowsWheeler.java
- -rw-r--r-- 1 18K Jan 3 02:45 CircularSuffixArray.java
- -rw-r--r-- 1 2.0K Jan 3 02:45 MoveToFront.java
- -rw-r--r-- 1 6.7K Jan 3 02:45 studentSubmission.zip
- ******************************************************************************
- * compiling
- ******************************************************************************
- % javac CircularSuffixArray.java
- *-----------------------------------------------------------
- ================================================================
- % javac BurrowsWheeler.java
- *-----------------------------------------------------------
- ================================================================
- % javac MoveToFront.java
- *-----------------------------------------------------------
- ================================================================
- % checkstyle *.java
- *-----------------------------------------------------------
- CircularSuffixArray.java:40:1: Outer types defined is 2 (max allowed is 1).
- CircularSuffixArray.java:40:1: Redundant import from the java.lang package - java.lang.String.
- CircularSuffixArray.java:42: The name of the outer type and the file do not match.
- CircularSuffixArray.java:42:7: Name 'sais' must match pattern '^[A-Z][a-zA-Z0-9]*$'.
- CircularSuffixArray.java:43:11: Redundant 'static' modifier.
- CircularSuffixArray.java:44:5: Redundant 'public' modifier.
- CircularSuffixArray.java:45:5: Redundant 'public' modifier.
- CircularSuffixArray.java:46:5: Redundant 'public' modifier.
- CircularSuffixArray.java:49:20: Name 'm_A' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:50:17: Name 'm_pos' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:51:51: Only one statement per line allowed.
- CircularSuffixArray.java:53:62: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:54:63: Inner assignments should be avoided.
- CircularSuffixArray.java:57:20: Name 'm_A' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:58:17: Name 'm_pos' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:59:51: Only one statement per line allowed.
- CircularSuffixArray.java:61:62: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:62:63: Inner assignments should be avoided.
- CircularSuffixArray.java:65:21: Name 'm_A' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:66:17: Name 'm_pos' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:67:53: Only one statement per line allowed.
- CircularSuffixArray.java:69:63: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:70:63: Inner assignments should be avoided.
- CircularSuffixArray.java:73:19: Name 'm_A' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:74:17: Name 'm_pos' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:75:49: Only one statement per line allowed.
- CircularSuffixArray.java:78:63: Inner assignments should be avoided.
- CircularSuffixArray.java:81:20: Name 'm_A' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:82:17: Name 'm_pos' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:83:53: Only one statement per line allowed.
- CircularSuffixArray.java:84:41: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:94:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:94:35: Only one statement per line allowed.
- CircularSuffixArray.java:95:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:95:38: Only one statement per line allowed.
- CircularSuffixArray.java:101:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:101:12: Expression can be simplified.
- CircularSuffixArray.java:101:27: 'for' is not followed by whitespace.
- CircularSuffixArray.java:101:53: Only one statement per line allowed.
- CircularSuffixArray.java:101:71: Only one statement per line allowed.
- CircularSuffixArray.java:102:15: 'for' is not followed by whitespace.
- CircularSuffixArray.java:102:41: Only one statement per line allowed.
- CircularSuffixArray.java:102:59: Only one statement per line allowed.
- CircularSuffixArray.java:108:3: Name 'LMSsort' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:108:30: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:112:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:115:18: Inner assignments should be avoided.
- CircularSuffixArray.java:117:31: Avoid inline conditionals.
- CircularSuffixArray.java:118:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:119:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:119:17: Inner assignments should be avoided.
- CircularSuffixArray.java:120:13: 'if' is not followed by whitespace.
- CircularSuffixArray.java:120:18: Inner assignments should be avoided.
- CircularSuffixArray.java:120:55: Only one statement per line allowed.
- CircularSuffixArray.java:120:66: Inner assignments should be avoided.
- CircularSuffixArray.java:122:35: Avoid inline conditionals.
- CircularSuffixArray.java:124:16: 'if' is not followed by whitespace.
- CircularSuffixArray.java:129:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:131:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:131:33: Inner assignments should be avoided.
- CircularSuffixArray.java:132:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:132:17: Inner assignments should be avoided.
- CircularSuffixArray.java:133:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:133:16: Inner assignments should be avoided.
- CircularSuffixArray.java:133:53: Only one statement per line allowed.
- CircularSuffixArray.java:133:64: Inner assignments should be avoided.
- CircularSuffixArray.java:135:35: Avoid inline conditionals.
- CircularSuffixArray.java:142:3: Name 'LMSpostproc' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:142:34: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:149:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:149:19: Inner assignments should be avoided.
- CircularSuffixArray.java:149:46: Only one statement per line allowed.
- CircularSuffixArray.java:150:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:151:10: 'for' is not followed by whitespace.
- CircularSuffixArray.java:152:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:152:15: Inner assignments should be avoided.
- CircularSuffixArray.java:153:31: Only one statement per line allowed.
- CircularSuffixArray.java:154:13: 'if' is not followed by whitespace.
- CircularSuffixArray.java:160:18: Only one statement per line allowed.
- CircularSuffixArray.java:160:30: Only one statement per line allowed.
- CircularSuffixArray.java:161:38: Only one statement per line allowed.
- CircularSuffixArray.java:161:46: Inner assignments should be avoided.
- CircularSuffixArray.java:162:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:163:40: Only one statement per line allowed.
- CircularSuffixArray.java:163:48: Inner assignments should be avoided.
- CircularSuffixArray.java:164:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:165:43: Only one statement per line allowed.
- CircularSuffixArray.java:166:42: Only one statement per line allowed.
- CircularSuffixArray.java:166:50: Inner assignments should be avoided.
- CircularSuffixArray.java:171:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:172:23: Only one statement per line allowed.
- CircularSuffixArray.java:172:48: Only one statement per line allowed.
- CircularSuffixArray.java:173:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:174:12: 'for' is not followed by whitespace.
- CircularSuffixArray.java:174:71: Empty for block.
- CircularSuffixArray.java:175:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:177:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:177:15: Expression can be simplified.
- CircularSuffixArray.java:177:37: Only one statement per line allowed.
- CircularSuffixArray.java:177:47: Only one statement per line allowed.
- CircularSuffixArray.java:187:31: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:191:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:194:18: Inner assignments should be avoided.
- CircularSuffixArray.java:195:48: Avoid inline conditionals.
- CircularSuffixArray.java:196:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:197:24: Only one statement per line allowed.
- CircularSuffixArray.java:198:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:199:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:199:16: Inner assignments should be avoided.
- CircularSuffixArray.java:199:55: Only one statement per line allowed.
- CircularSuffixArray.java:199:66: Inner assignments should be avoided.
- CircularSuffixArray.java:200:52: Avoid inline conditionals.
- CircularSuffixArray.java:204:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:206:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:206:33: Inner assignments should be avoided.
- CircularSuffixArray.java:207:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:207:17: Inner assignments should be avoided.
- CircularSuffixArray.java:208:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:208:16: Inner assignments should be avoided.
- CircularSuffixArray.java:208:55: Only one statement per line allowed.
- CircularSuffixArray.java:208:66: Inner assignments should be avoided.
- CircularSuffixArray.java:209:53: Avoid inline conditionals.
- CircularSuffixArray.java:217:33: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:221:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:224:18: Inner assignments should be avoided.
- CircularSuffixArray.java:225:48: Avoid inline conditionals.
- CircularSuffixArray.java:226:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:227:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:227:17: Inner assignments should be avoided.
- CircularSuffixArray.java:228:22: Inner assignments should be avoided.
- CircularSuffixArray.java:229:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:229:40: Only one statement per line allowed.
- CircularSuffixArray.java:229:51: Inner assignments should be avoided.
- CircularSuffixArray.java:230:52: Avoid inline conditionals.
- CircularSuffixArray.java:231:16: 'if' is not followed by whitespace.
- CircularSuffixArray.java:236:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:238:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:238:33: Inner assignments should be avoided.
- CircularSuffixArray.java:239:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:239:17: Inner assignments should be avoided.
- CircularSuffixArray.java:240:21: Inner assignments should be avoided.
- CircularSuffixArray.java:241:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:241:40: Only one statement per line allowed.
- CircularSuffixArray.java:241:51: Inner assignments should be avoided.
- CircularSuffixArray.java:242:52: Avoid inline conditionals.
- CircularSuffixArray.java:242:61: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:243:16: 'if' is not followed by whitespace.
- CircularSuffixArray.java:256:28: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:262:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:264:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:264:61: Only one statement per line allowed.
- CircularSuffixArray.java:265:53: Only one statement per line allowed.
- CircularSuffixArray.java:266:14: 'if' is not followed by whitespace.
- CircularSuffixArray.java:268:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:268:71: Only one statement per line allowed.
- CircularSuffixArray.java:269:14: 'if' is not followed by whitespace.
- CircularSuffixArray.java:269:67: Only one statement per line allowed.
- CircularSuffixArray.java:270:27: Only one statement per line allowed.
- CircularSuffixArray.java:272:13: Inner assignments should be avoided.
- CircularSuffixArray.java:278:38: Only one statement per line allowed.
- CircularSuffixArray.java:279:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:279:36: Only one statement per line allowed.
- CircularSuffixArray.java:280:15: Only one statement per line allowed.
- CircularSuffixArray.java:280:26: Only one statement per line allowed.
- CircularSuffixArray.java:280:33: Only one statement per line allowed.
- CircularSuffixArray.java:280:41: Only one statement per line allowed.
- CircularSuffixArray.java:281:38: Only one statement per line allowed.
- CircularSuffixArray.java:281:46: Inner assignments should be avoided.
- CircularSuffixArray.java:282:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:283:40: Only one statement per line allowed.
- CircularSuffixArray.java:283:48: Inner assignments should be avoided.
- CircularSuffixArray.java:284:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:285:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:285:37: Only one statement per line allowed.
- CircularSuffixArray.java:285:59: Only one statement per line allowed.
- CircularSuffixArray.java:285:64: Only one statement per line allowed.
- CircularSuffixArray.java:286:42: Only one statement per line allowed.
- CircularSuffixArray.java:286:50: Inner assignments should be avoided.
- CircularSuffixArray.java:289:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:292:14: 'if' is not followed by whitespace.
- CircularSuffixArray.java:301:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:302:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:302:42: Only one statement per line allowed.
- CircularSuffixArray.java:303:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:305:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:306:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:309:10: 'for' is not followed by whitespace.
- CircularSuffixArray.java:310:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:316:20: Only one statement per line allowed.
- CircularSuffixArray.java:316:36: Only one statement per line allowed.
- CircularSuffixArray.java:317:40: Only one statement per line allowed.
- CircularSuffixArray.java:317:48: Inner assignments should be avoided.
- CircularSuffixArray.java:318:10: 'for' is not followed by whitespace.
- CircularSuffixArray.java:319:42: Only one statement per line allowed.
- CircularSuffixArray.java:319:50: Inner assignments should be avoided.
- CircularSuffixArray.java:320:11: 'if' is not followed by whitespace.
- CircularSuffixArray.java:322:44: Only one statement per line allowed.
- CircularSuffixArray.java:322:52: Inner assignments should be avoided.
- CircularSuffixArray.java:326:10: 'for' is not followed by whitespace.
- CircularSuffixArray.java:326:38: Only one statement per line allowed.
- CircularSuffixArray.java:327:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:327:36: Inner assignments should be avoided.
- CircularSuffixArray.java:328:9: 'if' is not followed by whitespace.
- CircularSuffixArray.java:332:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:334:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:336:20: Only one statement per line allowed.
- CircularSuffixArray.java:336:27: Only one statement per line allowed.
- CircularSuffixArray.java:336:43: Only one statement per line allowed.
- CircularSuffixArray.java:338:22: Inner assignments should be avoided.
- CircularSuffixArray.java:339:14: 'while' is not followed by whitespace.
- CircularSuffixArray.java:342:13: 'if' is not followed by whitespace.
- CircularSuffixArray.java:344:21: Inner assignments should be avoided.
- CircularSuffixArray.java:346:12: 'while' is not followed by whitespace.
- CircularSuffixArray.java:348:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:348:14: Expression can be simplified.
- CircularSuffixArray.java:350:17: Only one statement per line allowed.
- CircularSuffixArray.java:358:30: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:359:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:360:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:360:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:360:51: Only one statement per line allowed.
- CircularSuffixArray.java:366:30: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:367:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:368:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:368:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:368:51: Only one statement per line allowed.
- CircularSuffixArray.java:374:31: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:375:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:375:36: '||' should be on a new line.
- CircularSuffixArray.java:376:42: '||' should be on a new line.
- CircularSuffixArray.java:378:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:378:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:378:51: Only one statement per line allowed.
- CircularSuffixArray.java:384:29: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:385:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:385:36: '||' should be on a new line.
- CircularSuffixArray.java:386:42: '||' should be on a new line.
- CircularSuffixArray.java:388:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:388:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:388:51: Only one statement per line allowed.
- CircularSuffixArray.java:394:30: Name 'SA' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z]$'.
- CircularSuffixArray.java:395:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:395:36: '||' should be on a new line.
- CircularSuffixArray.java:397:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:397:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:397:51: Only one statement per line allowed.
- CircularSuffixArray.java:407:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:407:50: '||' should be on a new line.
- CircularSuffixArray.java:409:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:409:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:409:53: Only one statement per line allowed.
- CircularSuffixArray.java:412:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:412:42: Only one statement per line allowed.
- CircularSuffixArray.java:412:50: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:413:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:413:36: Only one statement per line allowed.
- CircularSuffixArray.java:413:44: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:421:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:421:50: '||' should be on a new line.
- CircularSuffixArray.java:423:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:423:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:423:53: Only one statement per line allowed.
- CircularSuffixArray.java:426:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:426:42: Only one statement per line allowed.
- CircularSuffixArray.java:426:50: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:427:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:427:36: Only one statement per line allowed.
- CircularSuffixArray.java:427:44: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:435:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:435:50: '||' should be on a new line.
- CircularSuffixArray.java:436:59: '||' should be on a new line.
- CircularSuffixArray.java:438:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:438:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:438:53: Only one statement per line allowed.
- CircularSuffixArray.java:441:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:441:42: Only one statement per line allowed.
- CircularSuffixArray.java:441:51: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:442:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:442:36: Only one statement per line allowed.
- CircularSuffixArray.java:442:45: 'cast' is not followed by whitespace.
- CircularSuffixArray.java:450:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:450:50: '||' should be on a new line.
- CircularSuffixArray.java:451:59: '||' should be on a new line.
- CircularSuffixArray.java:453:7: 'if' is not followed by whitespace.
- CircularSuffixArray.java:453:20: 'if' is not followed by whitespace.
- CircularSuffixArray.java:453:53: Only one statement per line allowed.
- CircularSuffixArray.java:456:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:456:42: Only one statement per line allowed.
- CircularSuffixArray.java:457:8: 'for' is not followed by whitespace.
- CircularSuffixArray.java:457:36: Only one statement per line allowed.
- CircularSuffixArray.java:478:1: File contains tab characters (this is the first instance).
- CircularSuffixArray.java:484:23: Name 'temp_index' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- CircularSuffixArray.java:509:9: Constructor definition in wrong order.
- BurrowsWheeler.java:2:8: Unused import - java.util.Iterator.
- BurrowsWheeler.java:25:5: File contains tab characters (this is the first instance).
- BurrowsWheeler.java:33:54: Inner assignments should be avoided.
- BurrowsWheeler.java:38:30: 'while' is not followed by whitespace.
- BurrowsWheeler.java:52:25: Name 'encode_sais' must match pattern '^[a-z][a-zA-Z0-9]*$|^[A-Z][A-Z_0-9]*$'.
- BurrowsWheeler.java:82:9: Declaring variables, return values or parameters of type 'Character' is not allowed.
- BurrowsWheeler.java:106:39: Declaring variables, return values or parameters of type 'Character' is not allowed.
- BurrowsWheeler.java:111: Comment matches to-do format 'TODO:'.
- BurrowsWheeler.java:133:17: Inner assignments should be avoided.
- BurrowsWheeler.java:138:63: Declaring variables, return values or parameters of type 'Character' is not allowed.
- MoveToFront.java:13:8: Unused import - java.util.List.
- MoveToFront.java:22:1: File contains tab characters (this is the first instance).
- MoveToFront.java:32:25: Declaring variables, return values or parameters of type 'Byte' is not allowed.
- MoveToFront.java:33:25: Declaring variables, return values or parameters of type 'Short' is not allowed.
- MoveToFront.java:57:25: Declaring variables, return values or parameters of type 'Byte' is not allowed.
- ================================================================
- % checkIO MoveToFront.java BurrowsWheeler.java
- *-----------------------------------------------------------
- MoveToFront.java:87: Calls StdOut.print()
- ================================================================
- % findbugs *.class
- *-----------------------------------------------------------
- M D DLS_DEAD_LOCAL_STORE DLS: Dead store to $L3 in BurrowsWheeler.extractOrder(Character[], char[], int) At BurrowsWheeler.java:[line 133]
- Warnings generated: 1
- ================================================================
- Testing the APIs of your programs.
- *-----------------------------------------------------------
- BurrowsWheeler:
- MoveToFront:
- ================================================================
- ******************************************************************************
- * correctness
- ******************************************************************************
- Testing methods in CircularSuffixArray
- *-----------------------------------------------------------
- Running 11 total tests.
- Test 1: Test index() and length() with random binary strings
- * length = 10
- * length = 100
- * length = 1000
- ==> passed
- Test 2: Test index() and length() with random alphanumeric strings
- * length = 10
- * length = 100
- * length = 1000
- ==> passed
- Test 3: Test index() and length() with random ASCII strings
- * length = 10
- * length = 100
- * length = 1000
- ==> passed
- Test 4: Test index() and length() with random extended ASCII strings
- * length = 10
- * length = 100
- * length = 1000
- ==> passed
- Test 5: Test index() and length() with strings from text files
- * cadabra.txt
- * amendments.txt
- * moby1.txt
- * dickens1000.txt
- ==> passed
- Test 6: Test index() and length() with strings from degenerate text files
- * a.txt
- * nomatch.txt
- * zebra.txt
- * alphanum.txt
- * stars.txt
- * couscous.txt
- ==> passed
- Test 7: Test index() and length() with strings from binary files
- * us.gif
- * CS_bricks.jpg
- * rand1K.bin
- ==> passed
- Test 8: Test index() and length() with random alphanumeric strings of length 0, 1, and 2.
- * length = 0
- * length = 1
- * length = 2
- ==> passed
- Test 9: Test whether index() throws an exception when argument is out of bounds
- * string of length 10
- * string of length 100
- * string of length 2
- * string of length 1
- * string of length 0
- ==> passed
- Test 10: Test whether constructor throws an exception when argument is null
- ==> passed
- Test 11: Test whether two CircularSuffixArray objects can be created at the same time
- * cadabra.txt and amendments.txt
- * amendments.txt and cadabra.txt
- * dickens1000.txt and cadabra.txt
- ==> passed
- Total: 11/11 tests passed!
- ================================================================
- Testing methods in MoveToFront
- *-----------------------------------------------------------
- Running 12 total tests.
- Test 0: test main()
- % java MoveToFront - < abra.txt | java HexDump 16
- 41 42 52 02 44 01 45 01 04 04 02 26
- % java MoveToFront - < abra.txt | java MoveToFront +
- ABRACADABRA!
- ==> passed
- Test 1: test encode() on text input files
- * amendments.txt
- * aesop.txt
- * stars.txt
- * zebra.txt
- * alphanum.txt
- * a.txt
- ==> passed
- Test 2: test decode() on text input files
- * amendments.txt
- * aesop.txt
- * stars.txt
- * zebra.txt
- * alphanum.txt
- * a.txt
- ==> passed
- Test 3: test whether decode(encode()) = original on text input files
- * amendments.txt
- * aesop.txt
- * stars.txt
- * zebra.txt
- * alphanum.txt
- * a.txt
- ==> passed
- Test 4: test encode() on binary input files
- * us.gif
- * CS_bricks.jpg
- * rand10K.bin
- ==> passed
- Test 5: test decode() on binary input files
- * us.gif
- * CS_bricks.jpg
- * rand10K.bin
- ==> passed
- Test 6: test whether decode(encode()) = original on binary input files
- * us.gif
- * CS_bricks.jpg
- * rand10K.bin
- ==> passed
- Test 7: test that encode() calls either close() or flush()
- * amendments.txt
- * aesop.txt
- ==> passed
- Test 8: test that decode() calls either close() or flush()
- * amendments.txt
- * aesop.txt
- ==> passed
- Test 9: test encode() on large input files
- * rand100K.bin
- * world192.txt
- ==> passed
- Test 10: test decode() on large input files
- * rand100K.bin
- * world192.txt
- ==> passed
- Test 11: test whether decode(encode()) = original on large input files
- * rand100K.bin
- * world192.txt
- ==> passed
- Total: 12/12 tests passed!
- ================================================================
- ******************************************************************************
- * correctness (substituting reference CircularSuffixArray.java)
- ******************************************************************************
- Testing methods in BurrowsWheeler
- *-----------------------------------------------------------
- Running 12 total tests.
- Test 0: testing main()
- % java BurrowsWheeler - < abra.txt | java HexDump 16
- 00 00 00 03 41 52 44 21 52 43 41 41 41 41 42 42
- % java BurrowsWheeler - < abra.txt | java BurrowsWheeler +
- ABRACADABRA!
- ==> passed
- Test 1: encode()
- * cadabra.txt
- * amendments.txt
- * zebra.txt
- * alphanum.txt
- * a.txt
- ==> passed
- Test 2: decode()
- * cadabra.txt
- * amendments.txt
- * zebra.txt
- * alphanum.txt
- * a.txt
- * stars.txt
- - Found mismatch at character in location 1
- - Character from stars.txt is 2a
- - Missing character from student
- - First 16 bytes of student : 2a
- - First 16 bytes of stars.txt : 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a
- * couscous.txt
- - Found mismatch at character in location 4
- - Character from couscous.txt is 63
- - Missing character from student
- - First 16 bytes of student : 63 6f 75 73
- - First 16 bytes of couscous.txt : 63 6f 75 73 63 6f 75 73
- ==> FAILED
- Test 3: check that decode(encode()) = original
- * cadabra.txt
- * amendments.txt
- * zebra.txt
- * alphanum.txt
- * a.txt
- * stars.txt
- - Found mismatch at character in location 1
- - Character from stars.txt is 2a
- - Missing character from student
- - First 16 bytes of student : 2a
- - First 16 bytes of stars.txt : 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a
- * couscous.txt
- - Found mismatch at character in location 4
- - Character from couscous.txt is 63
- - Missing character from student
- - First 16 bytes of student : 63 6f 75 73
- - First 16 bytes of couscous.txt : 63 6f 75 73 63 6f 75 73
- ==> FAILED
- Test 4: encode() on binary inputs
- * us.gif
- * CS_bricks.jpg
- * rand10K.bin
- ==> passed
- Test 5: decode() on binary inputs
- * us.gif
- * CS_bricks.jpg
- * rand10K.bin
- ==> passed
- Test 6: check that decode(encode()) = original on binary inputs
- * us.gif
- * CS_bricks.jpg
- * rand10K.bin
- ==> passed
- Test 7: calling close() or flush() in encode()
- * amendments.txt
- ==> passed
- Test 8: calling close() or flush() in decode()
- * amendments.txt
- ==> passed
- Test 9: encode() on large inputs
- * rand100K.bin
- * world192.txt
- ==> passed
- Test 10: decode() on large inputs
- * rand100K.bin
- * world192.txt
- ==> passed
- Test 11: check that decode(encode()) = original on large inputs
- * rand100K.bin
- * world192.txt
- ==> passed
- Total: 10/12 tests passed!
- ================================================================
- ******************************************************************************
- * memory
- ******************************************************************************
- Computing memory of CircularSuffixArray
- *-----------------------------------------------------------
- Running 10 total tests.
- Memory usage of a CircularSuffixArray with a random string of length N.
- Maximum allowed memory is 25x the reference.
- N student (bytes) reference (bytes) ratio
- -----------------------------------------------------------------------
- => passed 10 96 96 1.00
- => passed 20 136 136 1.00
- => passed 50 256 256 1.00
- => passed 100 456 456 1.00
- => passed 200 856 856 1.00
- => passed 500 2056 2056 1.00
- => passed 1000 4056 4056 1.00
- => passed 2000 8056 8056 1.00
- => passed 4000 16056 16056 1.00
- => passed 8000 32056 32056 1.00
- ==> 10/10 tests passed
- Total: 10/10 tests passed!
- Estimated student memory (bytes) = 4.00 N + 56.00 (R^2 = 1.000)
- Estimated reference memory (bytes) = 4.00 N + 56.00 (R^2 = 1.000)
- ================================================================
- ******************************************************************************
- * timing
- ******************************************************************************
- Timing CircularSuffixArray
- *-----------------------------------------------------------
- Tests 1-13: Timing constructor with random ASCII strings of length N
- Max allowed time per constructor call is 10 seconds and <= 3x reference.
- N student reference ratio
- ---------------------------------------------------
- => passed 1000 0.05 0.00 15.67
- => passed 2000 0.01 0.01 1.00
- => passed 4000 0.03 0.02 1.43
- => passed 8000 0.03 0.03 0.87
- => passed 16000 0.06 0.05 1.12
- => passed 32000 0.05 0.02 2.94
- => passed 64000 0.05 0.01 3.50
- => passed 128000 0.08 0.03 2.65
- => passed 256000 0.18 0.07 2.61
- => passed 512000 0.29 0.14 1.98
- => passed 1024000 0.59 0.31 1.89
- => passed 2048000 1.19 0.72 1.67
- => passed 4096000 3.42 1.66 2.06
- Estimated runtime (using last 6 measurements) = 4.12e-07 * N^1.03 (R^2 = 0.99)
- Tests 14-26: Timing constructor with first N character of dickens.txt
- Max allowed time per constructor call is 10 seconds and <= 3x reference.
- N student reference ratio
- ---------------------------------------------------
- => passed 1000 0.00 0.00 -
- => passed 2000 0.00 0.00 2.00
- => passed 4000 0.00 0.00 4.00
- => passed 8000 0.01 0.00 5.00
- => passed 16000 0.01 0.00 2.67
- => passed 32000 0.01 0.01 2.00
- => passed 64000 0.03 0.02 1.65
- => passed 128000 0.05 0.04 1.50
- => passed 256000 0.10 0.07 1.42
- => passed 512000 0.21 0.16 1.32
- => passed 1024000 0.44 0.34 1.31
- => passed 2048000 1.06 0.72 1.47
- => passed 4096000 2.41 1.61 1.49
- Estimated runtime (using last 6 measurements) = 1.13e-07 * N^1.10 (R^2 = 1.00)
- Running 26 total tests.
- Total: 26/26 tests passed!
- ================================================================
- Timing MoveToFront
- *-----------------------------------------------------------
- Running 26 total tests.
- Tests 1-13: Timing encode() with first N character of dickens.txt
- Max allowed time is 10 seconds and <= 2x reference.
- N student reference ratio
- ---------------------------------------------------
- => passed 1000 0.01 0.00 4.67
- => passed 2000 0.01 0.00 3.00
- => passed 4000 0.02 0.00 4.25
- => passed 8000 0.02 0.00 7.00
- => passed 16000 0.02 0.01 1.73
- => passed 32000 0.01 0.00 2.33
- => passed 64000 0.01 0.01 2.00
- => passed 128000 0.03 0.01 1.79
- => passed 256000 0.05 0.03 1.68
- => passed 512000 0.09 0.06 1.62
- => passed 1024000 0.17 0.11 1.58
- => passed 2048000 0.35 0.22 1.58
- => passed 4096000 0.68 0.45 1.53
- Estimated runtime (using last 6 measurements) = 3.14e-07 * N^0.96 (R^2 = 1.00)
- Tests 14-26: Timing decode() with first N character of dickens.txt
- Max allowed time is 10 seconds and <= 2x reference.
- N student reference ratio
- ---------------------------------------------------
- => passed 1000 0.00 0.00 -
- => passed 2000 0.00 0.00 -
- => passed 4000 0.00 0.00 1.00
- => passed 8000 0.00 0.00 2.00
- => passed 16000 0.00 0.00 1.00
- => passed 32000 0.01 0.00 1.67
- => passed 64000 0.01 0.01 1.71
- => passed 128000 0.02 0.01 1.64
- => passed 256000 0.05 0.03 1.48
- => passed 512000 0.09 0.06 1.58
- => passed 1024000 0.18 0.12 1.56
- => FAILED 2048000 0.36 0.14 2.54
- => passed 4096000 0.56 0.29 1.95
- Estimated runtime (using last 6 measurements) = 3.82e-07 * N^0.94 (R^2 = 1.00)
- Total: 25/26 tests passed!
- ================================================================
- ******************************************************************************
- * timing (substituting reference CircularSuffixArray.java)
- ******************************************************************************
- Timing BurrowsWheeler
- *-----------------------------------------------------------
- Running 26 total tests.
- Tests 1-13: Timing encode() with first N character of dickens.txt
- Max allowed time is 10 seconds and <= 2x reference.
- N student reference ratio
- ---------------------------------------------------
- => passed 1000 0.02 0.01 3.00
- => passed 2000 0.03 0.01 2.64
- => passed 4000 0.08 0.01 8.30
- => passed 8000 0.03 0.00 6.75
- => passed 16000 0.02 0.01 4.20
- => passed 32000 0.02 0.01 2.18
- => passed 64000 0.03 0.02 1.35
- => passed 128000 0.04 0.05 0.80
- => passed 256000 0.08 0.09 0.94
- => passed 512000 0.18 0.19 0.91
- => passed 1024000 0.37 0.42 0.88
- => passed 2048000 0.86 0.90 0.96
- => passed 4096000 1.89 1.84 1.03
- Estimated runtime (using last 6 measurements) = 6.25e-08 * N^1.13 (R^2 = 1.00)
- Tests 14-26: Timing decode() with first N character of dickens.txt
- Max allowed time is 10 seconds and <= 2x reference.
- N student reference ratio
- ---------------------------------------------------
- => passed 1000 0.01 0.00 -
- => passed 2000 0.01 0.00 13.00
- => passed 4000 0.01 0.00 14.00
- => passed 8000 0.02 0.00 10.50
- => passed 16000 0.03 0.00 7.50
- => passed 32000 0.07 0.00 69.00
- => passed 64000 0.03 0.00 10.67
- => passed 128000 0.06 0.01 8.00
- => passed 256000 0.05 0.01 3.71
- => FAILED 512000 0.11 0.03 3.65
- => FAILED 1024000 0.51 0.07 7.70
- => FAILED 2048000 1.02 0.25 4.16
- => FAILED 4096000 2.13 0.72 2.97
- Estimated runtime (using last 6 measurements) = 3.24e-08 * N^1.18 (R^2 = 0.95)
- Total: 22/26 tests passed!
- ================================================================
- *********************************************************
- compressing:
- *********************************************************
- Computing compression of BurrowsWheeler and MoveToFront
- CPU limit = 60 seconds
- cat = size (in bytes) of input file
- HUFE = size (in bytes) of Huffman encoding
- burrows = size (in bytes) of BWT, MTF, and Huffman encoding (with a * if wrong size)
- gzip = size (in bytes) of gzip encoding
- Data File cat HUFE burrows gzip
- -----------------------------------------------------------------
- abra.txt 12 15 19 39
- nomatch.txt 73 153 148 105
- world-quarter.txt 622786 393153 166587 187791
- world192.txt 2473400 1558717 604601 724606
- =================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement