Submission
Submission time	Wed-27-Mar 00:17:51
Raw Score	88.74 / 100.00
Feedback	See the Assessment Guide for information on how to read this report.
Assessment Summary

Compilation:  PASSED
Style:        PASSED
Findbugs:     No potential bugs found.
API:          PASSED

Correctness:  30/31 tests passed
Memory:       1/2 tests passed
Timing:       5/6 tests passed

Raw score: 88.74% [Correctness: 65%, Memory: 10%, Timing: 25%, Style: 0%]

Assessment Details

files submitted
----------------------------------
total 24K
-rw-rw-r-- 1 1.7K Mar 27 03:18 Outcast.java
-rw-rw-r-- 1 4.8K Mar 27 03:18 SAP.java
-rw-rw-r-- 1 3.7K Mar 27 03:18 studentSubmission.zip
-rw-rw-r-- 1 5.7K Mar 27 03:18 WordNet.java


******************************************************************************
*  compiling
******************************************************************************


% javac SAP.java
*-----------------------------------------------------------
================================================================

% javac WordNet.java
*-----------------------------------------------------------
================================================================

% javac Outcast.java
*-----------------------------------------------------------
================================================================



% checkstyle *.java
*-----------------------------------------------------------
================================================================


% findbugs *.class
*-----------------------------------------------------------
================================================================


Testing the APIs of your programs.
*-----------------------------------------------------------
SAP:

WordNet:

Outcast:

================================================================


******************************************************************************
*  executing
******************************************************************************

Testing methods in SAP
*-----------------------------------------------------------
Running 18 total tests.

Test 1: test length() and ancestor() on fixed digraphs
  *  digraph1.txt
  *  digraph2.txt
  *  digraph3.txt
  *  digraph4.txt
  *  digraph5.txt
  *  digraph6.txt
  *  digraph-ambiguous-ancestor.txt
==> passed

Test 2: WordNet digraph
  *  100 random vertex pairs in digraph-wordnet.txt
==> passed

Test 3: directed paths
  *  5
  *  10
  *  20
  *  50
  *  100
==> passed

Test 4: directed cycles
  *  5
  *  10
  *  20
  *  50
  *  100
==> passed

Test 5: complete graph
  *  5
  *  10
  *  20
  *  50
==> passed

Test 6: tournament
  *  5
  *  10
  *  20
  *  50
==> passed

Test 7: complete binary tree
  *  5
  *  10
  *  20
  *  50
  *  100
==> passed

Test 8: random DAG
  *  5 vertices, 8 edges
  *  10 vertices, 40 edges
  *  20 vertices, 100 edges
==> passed

Test 9: random rooted-in DAG
  *  5 vertices, 8 edges
  *  10 vertices, 40 edges
  *  20 vertices, 100 edges
==> passed

Test 10: random rooted-out DAG
  *  5 vertices, 8 edges
  *  10 vertices, 40 edges
  *  20 vertices, 100 edges
==> passed

Test 11: random rooted-in tree
  *  5 vertices
  *  10 vertices
  *  20 vertices
==> passed

Test 12: random rooted-out tree
  *  5 vertices
  *  10 vertices
  *  20 vertices
==> passed

Test 13: random simple digraph
  *  5 vertices, 8 edges
  *  10 vertices, 40 edges
  *  20 vertices, 100 edges
==> passed

Test 14: check whether two SAP objects can be created at the same time
  *  digraph1.txt and digraph2.txt
  *  digraph3.txt and digraph4.txt
  *  digraph5.txt and digraph6.txt
  *  digraph2.txt and digraph1.txt
==> passed

Test 15: check whether SAP is immutable
  *  digraph1.txt
     -  after adding edges (v, 0) to G
     -  v = 0, w = 3
     -  student length before = 2
     -  student length after  = 1
  *  digraph2.txt
     -  after adding edges (v, 0) to G
     -  v = 0, w = 2
     -  student length before = 4
     -  student length after  = 1
  *  digraph3.txt
     -  after adding edges (v, 0) to G
     -  v = 0, w = 1
     -  student length before = -1
     -  student length after  = 1
  *  digraph4.txt
     -  after adding edges (v, 0) to G
     -  v = 0, w = 1
     -  student length before = 3
     -  student length after  = 1
  *  digraph5.txt
     -  after adding edges (v, 0) to G
     -  v = 0, w = 1
     -  student length before = -1
     -  student length after  = 1
  *  digraph6.txt
     -  after adding edges (v, 0) to G
     -  v = 0, w = 2
     -  student length before = 2
     -  student length after  = 1
  *  digraph-ambiguous-ancestor.txt
     -  after adding edges (v, 0) to G
     -  v = 0, w = 2
     -  student length before = 2
     -  student length after  = 1
==> FAILED

Test 16: test invalid arguments to length() and ancestor() in digraph1.txt
  *  v = -1, w = 0
  *  v = 0, w = -1
  *  v = 13, w = 0
  *  v = 0, w = 13
  *  v = -1 3 6 9 , w = 1 8 10 11 12
  *  v = 3 6 9 , w = -1 1 8 10 11 12
  *  v = 13 3 6 9 , w = 1 8 10 11 12
  *  v = 3 6 9 , w = 13 1 8 10 11 12
==> passed

Test 17: test length() and ancestor() with Iterable arguments
  *  100 random subsets of 1 and 1 vertices in digraph-wordnet.txt
  *  100 random subsets of 1 and 2 vertices in digraph-wordnet.txt
  *  100 random subsets of 2 and 1 vertices in digraph-wordnet.txt
  *  100 random subsets of 2 and 2 vertices in digraph-wordnet.txt
  *  100 random subsets of 3 and 11 vertices in digraph-wordnet.txt
  *  100 random subsets of 11 and 3 vertices in digraph-wordnet.txt
==> passed

Test 18: test WordNet digraph
  *  500 random vertex pairs in digraph-wordnet.txt
  *  2000 random vertex pairs in digraph-wordnet.txt
==> passed


Total: 17/18 tests passed!

================================================================

******************************************************************************
*  executing with reference SAP
******************************************************************************

Testing methods in WordNet
*-----------------------------------------------------------
Running 12 total tests.

Test 1: test distance() of random noun pairs
  *  1000 pairs using synsets = synsets.txt; hypernyms = hypernyms.txt
==> passed

Test 2: test distance() of all noun pairs
  *  synsets = synsets15.txt; hypernyms = hypernymsPath15.txt
  *  synsets = synsets15.txt; hypernyms = hypernymsTree15.txt
  *  synsets = synsets6.txt; hypernyms = hypernyms6TwoAncestors.txt
  *  synsets = synsets11.txt; hypernyms = hypernyms11AmbiguousAncestor.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8ModTree.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8WrongBFS.txt
  *  synsets = synsetsManyPathsOneAncestor.txt; hypernyms = hypernymsManyPathsOneAncestor.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8ManyAncestors.txt
==> passed

Test 3: test distance() of random noun pairs
  *  100 pairs using synsets = synsets.txt; hypernyms = hypernyms100K.txt
  *  100 pairs using synsets = synsets.txt; hypernyms = hypernyms200K.txt
  *  100 pairs using synsets = synsets.txt; hypernyms = hypernyms300K.txt
==> passed

Test 4: test that sap() is consistent with distance() for random noun pairs
  *  synsets = synsets.txt; hypernyms = hypernyms.txt
==> passed

Test 5: test that sap() is consistent with distance() for all noun pairs
  *  synsets = synsets15.txt; hypernyms = hypernymsPath15.txt
  *  synsets = synsets15.txt; hypernyms = hypernymsTree15.txt
  *  synsets = synsets6.txt; hypernyms = hypernyms6TwoAncestors.txt
  *  synsets = synsets11.txt; hypernyms = hypernyms11AmbiguousAncestor.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8ModTree.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8WrongBFS.txt
  *  synsets = synsetsManyPathsOneAncestor.txt; hypernyms = hypernymsManyPathsOneAncestor.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8ManyAncestors.txt
==> passed

Test 6: test that sap() is consistent with distance() for random noun pairs
  *  synsets = synsets.txt; hypernyms = hypernyms100K.txt
  *  synsets = synsets.txt; hypernyms = hypernyms200K.txt
  *  synsets = synsets.txt; hypernyms = hypernyms300K.txt
==> passed

Test 7: check whether WordNet is immutable
  *  synsets = synsets.txt; hypernyms = hypernyms.txt
==> passed

Test 8: check that the constructor throws an IllegalArgumentException when the input is not a rooted DAG
  * synsets3.txt, hypernymsInvalidTwoRoots.txt
  * synsets3.txt, hypernymsInvalidCycle.txt
==> passed

Test 9: check that distance() and sap() methods throw an IllegalArgumentException
when either argument is not a WordNet noun
  * synsets15.txt, hypernymsTree15.txt, invalid noun = invalid
  * synsets15.txt, hypernymsTree15.txt, invalid noun = b
  * synsets15.txt, hypernymsTree15.txt, invalid noun = eleventeen
  * synsets15.txt, hypernymsTree15.txt, invalid noun = INVALID
==> passed

Test 10: test isNoun()
  *  synsets = synsets.txt; hypernyms = hypernyms.txt
  *  synsets = synsets15.txt; hypernyms = hypernymsPath15.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8ModTree.txt
==> passed

Test 11: test nouns()
  *  synsets = synsets.txt; hypernyms = hypernyms.txt
  *  synsets = synsets15.txt; hypernyms = hypernymsPath15.txt
  *  synsets = synsets8.txt; hypernyms = hypernyms8ModTree.txt
==> passed

Test 12: check whether two WordNet objects can be created at the same time
  *  synsets1 = synsets15.txt; hypernyms1 = hypernymsTree15.txt
     synsets2 = synsets15.txt; hypernyms2 = hypernymsPath15.txt
  *  synsets1 = synsets.txt; hypernyms1 = hypernyms.txt
     synsets2 = synsets15.txt; hypernyms2 = hypernymsPath15.txt
==> passed


Total: 12/12 tests passed!

================================================================

******************************************************************************
*  executing with reference SAP and reference WordNet
******************************************************************************

Testing methods in Outcast
*-----------------------------------------------------------
Running 1 total tests.

Test 1: test outcast() on WordNet digraph
  *  outcast4.txt
  *  outcast5.txt
  *  outcast5a.txt
  *  outcast5.txt
  *  outcast7.txt
  *  outcast8.txt
  *  outcast8a.txt
  *  outcast8b.txt
  *  outcast8c.txt
  *  outcast9.txt
  *  outcast9a.txt
  *  outcast10.txt
  *  outcast10a.txt
  *  outcast11.txt
  *  outcast12.txt
  *  outcast12a.txt
  *  outcast20.txt
  *  outcast29.txt
  *  outcast1.txt
  *  outcast3.txt
==> passed


Total: 1/1 tests passed!

================================================================

******************************************************************************
*  memory usage
******************************************************************************

Computing memory of SAP
*-----------------------------------------------------------
Running 1 total tests.

Student     memory = 9017208 bytes
Reference   memory = 4605456 bytes

vertices = 81426
edges    = 75134

Total: 0/1 tests passed!

================================================================



Computing memory of WordNet
*-----------------------------------------------------------
Running 1 total tests.

Student   memory = 49817024 bytes
Reference memory = 51413056 bytes

vertices = 82192
edges    = 84505

Total: 1/1 tests passed!

================================================================



******************************************************************************
*  timing
******************************************************************************

Timing SAP
*-----------------------------------------------------------
Running 3 total tests.

Timing SAP creation. Max time allowed: 10 seconds.
=> PASSED, 0.26 seconds to build SAP for wordnet graph.

Calling length(v, w) and ancestor(v ,w) for random v and random w.
=> FAILED, 45.6 calls per second.

Calling length(v, w) and ancestor(v ,w) for random arrays v and w, both of length 10.
=> FAILED, 157.2 calls per second.

Total: 2/3 tests passed!

================================================================



******************************************************************************
*  timing
******************************************************************************

Timing WordNet
*-----------------------------------------------------------
Running 2 total tests.

Timing Wordnet construction. Max time allowed: 10 seconds.
=> PASSED, 1.04 seconds to build SAP for wordnet graph.

Calling sap() and distance() with random nouns for 6 seconds, then again for 5 seconds. Timing is for only the last 5 seconds.
=> PASSED, 891.4 calls per second.

Total: 2/2 tests passed!

================================================================



******************************************************************************
*  timing
******************************************************************************

Timing Outcast
*-----------------------------------------------------------
Running 1 total tests.

1.73 seconds to build WordNet

Computing time to find outcasts. Total time must not exceed 5 seconds.


    filename       N     time
-----------------------------
   outcast4.txt    4     0.01
   outcast5.txt    5     0.01
  outcast5a.txt    5     0.04
   outcast5.txt    5     0.01
   outcast7.txt    7     0.02
   outcast8.txt    8     0.02
  outcast8a.txt    8     0.01
  outcast8b.txt    8     0.02
  outcast8c.txt    8     0.02
   outcast9.txt    9     0.02
  outcast9a.txt    9     0.02
  outcast10.txt   10     0.02
 outcast10a.txt   10     0.03
  outcast11.txt   11     0.03
  outcast12.txt   12     0.04
 outcast12a.txt   12     0.04
  outcast20.txt   20     0.11
  outcast29.txt   29     0.23
=> PASSED, total elapsed time: 0.66

Total: 1/1 tests passed!

================================================================

Signed-off-by: huangcd <huangcd.thu@gmail.com>