-------------------------------------------------------------------------------
  Test 1: Check simple requests using basic HTTP methods
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >           POST /pass                                     ... ok
  >            PUT /pass                                     ... ok
  >         DELETE /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 2: Check simple requests using arbitrary alphanumeric methods
-------------------------------------------------------------------------------

  >       zFw2g9Lm /pass                                     ... ok
  >       YTevr6hu /pass                                     ... ok
  >       F63uxhHS /pass                                     ... ok
  >       IQtPHwFG /pass                                     ... ok
  >       sauT8DrW /pass                                     ... ok
  >       q7foHTeF /pass                                     ... ok
  >       GGCcoAgm /pass                                     ... ok
  >       YJv3vyGZ /pass                                     ... ok
  >       WwrIy0xL /pass                                     ... ok
  >       f1ferwRK /pass                                     ... ok
  >       w0axBkzb /pass                                     ... ok
  >       KBGOAtql /pass                                     ... ok
  >       ZdfOjnys /pass                                     ... ok
  >       UNcg7RtV /pass                                     ... ok
  >       4zZcHhkb /pass                                     ... ok
  >       BUDEiViB /pass                                     ... ok
  >       UeBR4oY3 /pass                                     ... ok
  >       Ym8P7GIJ /pass                                     ... ok
  >       bN7cBQFx /pass                                     ... ok
  >       K0lTRfcF /pass                                     ... ok
  >       XGRMWoMS /pass                                     ... ok
  >       RpWfBVWE /pass                                     ... ok
  >       JRztLAUj /pass                                     ... ok
  >       dlf5hs29 /pass                                     ... ok
  >       TCBPrDty /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 3: Check that route methods are not case-sensitive
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >            get /pass                                     ... ok
  >            gEt /pass                                     ... ok
  >            GeT /pass                                     ... ok
  >            GEt /pass                                     ... ok
  >            gET /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 4: Check single path accessible via several simple HTTP methods
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >           POST /pass                                     ... ok
  >            PUT /pass                                     ... ok
  >         DELETE /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 5: Check that method of request is not altered by the router
-------------------------------------------------------------------------------

  >            GET /pass                                     ... ok
  >           POST /pass                                     ... ok
  >            PUT /pass                                     ... ok
  >         DELETE /pass                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 6: Check that common paths were not hard-coded
-------------------------------------------------------------------------------

  >            GET /                                         ... ok
  >            GET /index.html                               ... ok
  >            GET /feed                                     ... ok
  >            GET /threads                                  ... ok
  >            GET /threads/thread                           ... ok
  >            GET /threads/0                                ... ok
  >            GET /threads/1                                ... ok
  >            GET /users/user/recent                        ... ok
  >            GET /users/amit/recent                        ... ok
  >            GET /users/kap/recent                         ... ok
  >            GET /users/will/recent                        ... ok
  >           POST /                                         ... ok
  >           POST /index.html                               ... ok
  >           POST /feed                                     ... ok
  >           POST /threads/thread                           ... ok
  >           POST /threads/0                                ... ok
  >           POST /threads/1                                ... ok
  >           POST /threads/2                                ... ok
  >           POST /users/new                                ... ok
  >           POST /users/user/follow                        ... ok
  >           POST /users/amit/follow                        ... ok
  >           POST /users/kap/follow                         ... ok
  >           POST /users/will/follow                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 7: Check simple requests to long paths with multiple directories
-------------------------------------------------------------------------------

  >            GET /path/to/file                             ... ok
  >            GET /it/was/the/best/of/times                 ... ok
  >            GET /it/was/the/worst/of/times                ... ok
  >            GET /vagrant/assignments/assignment2/http_router ... ok
  >            GET /a/b/c/d/e/f/g/h/i/j/k/l                  ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 8: Check simple requests to very short paths
-------------------------------------------------------------------------------

  >            GET                                           ... ok
  >            GET /                                         ... ok
  >            GET /a                                        ... ok
  >            GET /a1                                       ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 9: Check that leading and trailing slashes are ignored
-------------------------------------------------------------------------------

  >            GET path                                      ... ok
  >            GET /path                                     ... ok
  >            GET path/                                     ... ok
  >            GET /path/                                    ... ok
  >            GET path/to/file                              ... ok
  >            GET /path/to/file                             ... ok
  >            GET path/to/file/                             ... ok
  >            GET /path/to/file/                            ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 10: Check that paths are case-sensitive
-------------------------------------------------------------------------------

  >            GET /PATH                                     ... ok
  >            GET /Path                                     ... ok
  >            GET /pAth                                     ... ok
  >            GET /paTH                                     ... ok
  >            GET /PAth                                     ... ok
  >            GET /PATh                                     ... ok
  >            GET /PaTh                                     ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 11: Check that adding a route more than once updates its handler.
-------------------------------------------------------------------------------

  >            GET /pathA                                    ... ok
  >            GET /pathB                                    ... ok
  >            GET /pathC                                    ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 12: Ensure nonexistant paths don't resolve to ancestors or descendants
-------------------------------------------------------------------------------

  >            GET /a                                        ... ok
  >            GET /a/b                                      ... ok
  >            GET /a/b/c                                    ... ok
  >            GET /a/b/c/d                                  ... ok
  >            GET /a/b/c/d/e                                ... ok
  >            GET /a/b/c/d/e/f                              ... ok
  >            GET /a/b/c/d/e/f/g                            ... ok
  >            GET /a/b/c/d/e/f/g/h                          ... ok
  >            GET /a/b/c/d/e/f/g/h/i                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 13: Check that router finds the longest possible matching path
-------------------------------------------------------------------------------

  >            GET /a                                        ... ok
  >            GET /a/b                                      ... ok
  >            GET /a/b/c                                    ... ok
  >            GET /a/b/c/d                                  ... ok
  >            GET /a/b/c/d/e                                ... ok
  >            GET /a/b/c/d/e/f                              ... ok
  >            GET /a/b/c/d/e/f/g                            ... ok
  >            GET /a/b/c/d/e/f/g/h                          ... ok
  >            GET /a/b/c/d/e/f/g/h/i                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 14: Check that router can have subdirectories with same name as parent
-------------------------------------------------------------------------------

  >            GET /a                                        ... ok
  >            GET /a/a                                      ... ok
  >            GET /a/a/a                                    ... ok
  >            GET /a/a/a/a                                  ... ok
  >            GET /a/a/a/a/a                                ... ok
  >            GET /a/a/a/a/a/a                              ... ok
  >            GET /a/a/a/a/a/a/a                            ... ok
  >            GET /a/a/a/a/a/a/a/a                          ... ok
  >            GET /a/a/a/a/a/a/a/a/a                        ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 15: Check that routes with simple captures can be resolved at all
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET eve                                       ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 16: Check simple captures yield correct keys in query string
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: key
    Received: 404 page not found

  >            GET eve                                       ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 17: Check simple captures yield correct keys in query string
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: value
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: alice
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: bob
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: charlie
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: denise
    Received: 404 page not found

  >            GET eve                                       ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 18: Check that basic capture yields correct keys and values
-------------------------------------------------------------------------------

  >            GET value                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /value HTTP/1.1
    Expected: key=value
    Received: 404 page not found

  >            GET alice                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /alice HTTP/1.1
    Expected: key=alice
    Received: 404 page not found

  >            GET bob                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /bob HTTP/1.1
    Expected: key=bob
    Received: 404 page not found

  >            GET charlie                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /charlie HTTP/1.1
    Expected: key=charlie
    Received: 404 page not found

  >            GET denise                                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key
    Request:  GET /denise HTTP/1.1
    Expected: key=denise
    Received: 404 page not found

  >            GET eve                                       ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 19: Check that capture works at the end of a long path
-------------------------------------------------------------------------------

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/value            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/value HTTP/1.1
    Expected: key=value
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/alice            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/alice HTTP/1.1
    Expected: key=alice
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/bob              ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/bob HTTP/1.1
    Expected: key=bob
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/charlie          ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/charlie HTTP/1.1
    Expected: key=charlie
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/denise           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/g/h/i/j/k/l/:key
    Request:  GET /a/b/c/d/e/f/g/h/i/j/k/l/denise HTTP/1.1
    Expected: key=denise
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/g/h/i/j/k/l/eve              ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 20: Check that capture works in the middle of a long path
-------------------------------------------------------------------------------

  >            GET /a/b/c/d/e/f/value/g/h/i/j/k/l/           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/value/g/h/i/j/k/l HTTP/1.1
    Expected: key=value
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/alice/g/h/i/j/k/l/           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/alice/g/h/i/j/k/l HTTP/1.1
    Expected: key=alice
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/bob/g/h/i/j/k/l/             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/bob/g/h/i/j/k/l HTTP/1.1
    Expected: key=bob
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/charlie/g/h/i/j/k/l/         ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/charlie/g/h/i/j/k/l HTTP/1.1
    Expected: key=charlie
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/denise/g/h/i/j/k/l/          ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/c/d/e/f/:key/g/h/i/j/k/l/
    Request:  GET /a/b/c/d/e/f/denise/g/h/i/j/k/l HTTP/1.1
    Expected: key=denise
    Received: 404 page not found

  >            GET /a/b/c/d/e/f/eve/g/h/i/j/k/l/             ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 21: Check that captures support any directory, not just the key name
-------------------------------------------------------------------------------

  >            GET /:capture                                 ... ok
  >            GET /pass                                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:capture
    - Method: GET   	Path: /path/:capture2
    Request:  GET /pass HTTP/1.1
    Expected: PASS
    Received: 404 page not found

  >            GET /path/:capture2                           ... ok
  >            GET /path/pass                                ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:capture
    - Method: GET   	Path: /path/:capture2
    Request:  GET /path/pass HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 22: Check that several captures can appear in one route
-------------------------------------------------------------------------------

  >            GET /person/Alice/11                          ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Alice/11 HTTP/1.1
    Expected: age=11&name=Alice
    Received: 404 page not found

  >            GET /person/Bob/22                            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Bob/22 HTTP/1.1
    Expected: age=22&name=Bob
    Received: 404 page not found

  >            GET /person/Charlie/33                        ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Charlie/33 HTTP/1.1
    Expected: age=33&name=Charlie
    Received: 404 page not found

  >            GET /person/Dave/44                           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Dave/44 HTTP/1.1
    Expected: age=44&name=Dave
    Received: 404 page not found

  >            GET /person/Eve/55                            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /person/:name/:age
    - Method: GET   	Path: /add/:a/:b/:c/:d
    - Method: GET   	Path: /sub/:e/:f/:g/:h/other/path/info
    Request:  GET /person/Eve/55 HTTP/1.1
    Expected: age=55&name=Eve
    Received: 404 page not found

  >            GET /add/1/2/3/4                              ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 23: Check that multiple values can be captured under a single key
-------------------------------------------------------------------------------

  >            GET a/b                                       ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /a/b HTTP/1.1
    Expected: a&b
    Received: 404 page not found

  >            GET foo/bar                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /foo/bar HTTP/1.1
    Expected: bar&foo
    Received: 404 page not found

  >            GET 123/456                                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /123/456 HTTP/1.1
    Expected: 123&456
    Received: 404 page not found

  >            GET alice/bob                                 ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /alice/bob HTTP/1.1
    Expected: alice&bob
    Received: 404 page not found

  >            GET value/value                               ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:key/:key
    Request:  GET /value/value HTTP/1.1
    Expected: value&value
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 24: Tests that keys are overwritten when adding several capturing routes
-------------------------------------------------------------------------------

  >            GET /foo                                      ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: :alice
    - Method: GET   	Path: :bob
    - Method: GET   	Path: :charlie
    - Method: GET   	Path: :dave
    - Method: GET   	Path: :eve
    - Method: GET   	Path: /user/:alice/files
    - Method: GET   	Path: /user/:bob/files
    - Method: GET   	Path: /user/:charlie/files
    - Method: GET   	Path: /user/:dave/files
    - Method: GET   	Path: /user/:eve/files
    Request:  GET /foo HTTP/1.1
    Expected: eve
    Received: 404 page not found

  >            GET /user/foo/files                           ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: :alice
    - Method: GET   	Path: :bob
    - Method: GET   	Path: :charlie
    - Method: GET   	Path: :dave
    - Method: GET   	Path: :eve
    - Method: GET   	Path: /user/:alice/files
    - Method: GET   	Path: /user/:bob/files
    - Method: GET   	Path: /user/:charlie/files
    - Method: GET   	Path: /user/:dave/files
    - Method: GET   	Path: /user/:eve/files
    Request:  GET /user/foo/files HTTP/1.1
    Expected: eve
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 25: Check that non-capturing routes have precedence over capturing ones
-------------------------------------------------------------------------------

  >            GET /path/to/value                            ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /path/to/:file
    - Method: GET   	Path: /path/to/file
    Request:  GET /path/to/value HTTP/1.1
    Expected: value
    Received: 404 page not found

  >            GET /path/to/null                             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /path/to/:file
    - Method: GET   	Path: /path/to/file
    Request:  GET /path/to/null HTTP/1.1
    Expected: null
    Received: 404 page not found

  >            GET /path/to/test                             ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /path/to/:file
    - Method: GET   	Path: /path/to/file
    Request:  GET /path/to/test HTTP/1.1
    Expected: test
    Received: 404 page not found

  >            GET /path/to/file                             ... ok
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 26: Check non-capturing route precedence with ambiguous routes.
-------------------------------------------------------------------------------

  >            GET /animals/reptiles/images                  ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /animals/mammals/:species
    - Method: GET   	Path: /animals/:type/images
    Request:  GET /animals/reptiles/images HTTP/1.1
    Expected: reptiles
    Received: 404 page not found

  >            GET /animals/birds/images                     ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /animals/mammals/:species
    - Method: GET   	Path: /animals/:type/images
    Request:  GET /animals/birds/images HTTP/1.1
    Expected: birds
    Received: 404 page not found

  >            GET /animals/amphibians/images                ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /animals/mammals/:species
    - Method: GET   	Path: /animals/:type/images
    Request:  GET /animals/amphibians/images HTTP/1.1
    Expected: amphibians
    Received: 404 page not found

  >            GET /animals/mammals/lions                    ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /animals/mammals/:species
    - Method: GET   	Path: /animals/:type/images
    Request:  GET /animals/mammals/lions HTTP/1.1
    Expected: lions
    Received: 404 page not found

  >            GET /animals/mammals/tigers                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /animals/mammals/:species
    - Method: GET   	Path: /animals/:type/images
    Request:  GET /animals/mammals/tigers HTTP/1.1
    Expected: tigers
    Received: 404 page not found

  >            GET /animals/mammals/bears                    ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 27: Check non-capturing route precedence with very ambiguous routes.
-------------------------------------------------------------------------------

  >            GET /a/b/c/d/e                                ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /a/b/:c/:d/:e
    - Method: GET   	Path: /a/:b/c/:d/e
    - Method: GET   	Path: /:a/b/c/d/:e
    - Method: GET   	Path: /:a/b/:c/d/:e
    - Method: GET   	Path: /a/:b/c/:d/e
    Request:  GET /a/b/c/d/e HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 28: Check that greedy resolution doesn't cause you to ignore valid routes
-------------------------------------------------------------------------------

  >            GET /this/path/willnot/work                   ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /this/path/:will/work
    - Method: GET   	Path: /this/path/willnot/
    Request:  GET /this/path/willnot/work HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 29: Check precedence and greedy resolution with ambiguous routes.
-------------------------------------------------------------------------------

  >            GET /a/b/c/d/e                                ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:a/b/c/d/e
    - Method: GET   	Path: /a/:b/c/d/e
    - Method: GET   	Path: /a/b/:c/d/e
    - Method: GET   	Path: /a/b/c/:d/f
    Request:  GET /a/b/c/d/e HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 30: Check precedence and greedy resolution with very ambiguous routes.
-------------------------------------------------------------------------------

  >            GET /a/b/c/d/e                                ... FAIL

    ********* TEST FAILED *********
    Routes:
    - Method: GET   	Path: /:a/b/c/d/:e
    - Method: GET   	Path: /:a/:b/c/d/e
    - Method: GET   	Path: /:a/:b/:c/d/f
    - Method: GET   	Path: /:a/:b/:c/:d/e
    - Method: GET   	Path: /a/b/c/:d/f
    Request:  GET /a/b/c/d/e HTTP/1.1
    Expected: PASS
    Received: 404 page not found

###
                               -- test failed (-1.0) --

--------------------------------------------------------------
Results
--------------------------------------------------------------
>     ========================================================
>        Test summary:
>            Passed  14 / 30  tests     (16 failed)
>            Passed 125 / 199 subtests  (74 failed)
>
>        Score:
>            14.00 points of a possible 30.00  (46.67%)
>     ========================================================


Copy of this build can be found at
https://builds.myetherwallet.com/build/9d3fe5d7fae0a53014ce47309eac62c14c5b8eee/index.html
                       https://www.cloudflare-ipfs.com/ipfs/QmTh2yNFjZhrtz2q8roxLgabJubDWDs12C8jCf6pVx7EHN
                       Virus Total analysis
                       https://www.virustotal.com/file/9cb0f8c07edb1bf54812768461c5abdf55c85068610f5cf75a0c80895f8c0658/analysis/1564432234/


Ah sorry, it looks like I forgot to refresh this page (and also missed the notification email), I'm only now seeing your latest comment :)

Anyway, in the module args, you should never use the alias name when querying them, only the real option's name. Ansible makes sure that the real option's name is used when the option is specified. (Also, depending on the type of the option, the alias might be the unprocessed value, as opposed to the processed value stored in the option's real name.)


VERY GOOD!!!


Successfully aliased the URL <https://count-bf9yt30xv.now.sh> to the following aliases:

* https://count.kikobeats.com
* https://count.kikobeats.now.sh
* https://count-git-master.kikobeats.now.sh


Successfully aliased the URL <https://demo-sync-moltin-to-shipengine-3oye165rm.now.sh> to the following aliases:

* https://particular-sync-moltin-to-shipengine.now.sh
* https://demo-sync-moltin-to-shipengine.particular.now.sh
* https://demo-sync-moltin-to-shipengine-git-master.particular.now.sh


Successfully aliased the URL <https://venia-dvtw0a3to.now.sh> to the following aliases:

* https://magento-venia-develop.now.sh
* https://venia.magento-research1.now.sh
* https://venia-git-develop.magento-research1.now.sh


@mikhio почему 900?


Successfully aliased the URL <https://mtnalonsocom-3d0stynue.now.sh> to the following aliases:

* https://mtnalonso.com
* https://mtnalonsocom.mtnalonso.now.sh
* https://mtnalonsocom-git-master.mtnalonso.now.sh


Implemented counter caching by adding reviews_count column in books table


Successfully aliased the URL <https://breathecode-projects-pwm4xsbcb.now.sh> to the following aliases:

* https://breathecode-projects.breathecode.now.sh
* https://breathecode-projects-git-master.breathecode.now.sh


-------------------------------------------------------------------------------
  Test 1: Send a short message from student client to reference server
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 2: Send a random alphanumeric message from S client to R server
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 3: Send random binary message from S client to R server.
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 4: Send full text of Moby Dick from S client to R server.
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 5: Try using a different port for S client and R server
-------------------------------------------------------------------------------

    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
    \ No newline at end of file
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 6: Try using a different IP for S client and R server
-------------------------------------------------------------------------------

###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 7: Send a short message from reference client to student server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1056) - No such process
    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 8: Send a random alphanumeric message from R client to S server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1094) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 9: Send random binary message from R client to S server.
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1130) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 10: Send full text of Moby Dick from R client to S server.
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1165) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 11: Open multiple sequential connections from R client to S server
-------------------------------------------------------------------------------

    Terminated
    Terminated
    /app/assignment1/grading_scripts/run-single-test.sh: line 135: kill: (1198) - No such process
    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1,3 +0,0 @@
    -Line 1
    -Line 2
    -Line 3
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 12: Open multiple concurrent connections from R client to S server
-------------------------------------------------------------------------------

    2019/07/29 20:34:22 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:22 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:23 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:23 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:24 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:24 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:25 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:25 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:26 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/29 20:34:26 dial tcp 127.0.0.1:10001: connect: connection refused
    /app/assignment1/grading_scripts/run-single-test.sh: line 170: kill: (1254) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 13: Try using a different port for R client and S server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 69: kill: (1407) - No such process
    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
    \ No newline at end of file
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 14: Send a short message from student client to student server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 15: Send a random alphanumeric message from S client to S server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 16: Send random binary message from S client to S server.
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 17: Send full text of Moby Dick from S client to S server.
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 18: Open multiple sequential connections from S client to S server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1,3 +0,0 @@
    -Line 1
    -Line 2
    -Line 3
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 19: Open multiple concurrent connections from S client to S server
-------------------------------------------------------------------------------

    /app/assignment1/grading_scripts/run-single-test.sh: line 170: kill: (1636) - No such process
    FAIL
    Message received doesn't match message sent.
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 20: Try using a different port for S client and S server
-------------------------------------------------------------------------------

    FAIL
    Message received doesn't match message sent.
    Differences:
    +++ test_output.txt
    @@ -1 +0,0 @@
    -Go Tigers!
    \ No newline at end of file
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 21: Try using a different IP for S client and S server
-------------------------------------------------------------------------------

    PASS
    No message received

###
                               -- test failed (-1.0) --

--------------------------------------------------------------
Results
--------------------------------------------------------------
>     ========================================================
>        Test summary:
>            Passed   1 / 21  tests     (20 failed)
>
>        Score:
>            1.00 points of a possible 21.00  (4.76%)
>     ========================================================


7174-AddSETOutput (RKStrand) - x86_64-Linux-Ubuntu-18.04-gcc-7.4: OK (2490 of 2493 tests passed, 3 test warnings)

Messages:\n
 * 3 tests had: AUD diffs.
 * 3 tests had: RDD diffs.
 * 3 tests had: EIO diffs.
 * 3 tests had: ESO big diffs.
 * 1 test had: MTR big diffs.
 * 3 tests had: Table big diffs.
 * 2 tests had: MTR small diffs.

Failures:\n

regression Test Summary
 * Passed: 679
 * Failed: 3

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-99.88%25-yellow.png)


good catch on the "!important"


-------------------------------------------------------------------------------
  Test 1: Check that new LRUs are initialized with correct storage and size
-------------------------------------------------------------------------------

  >     MaxStorage()                   == 16                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 16
    Received: 0
  >     RemainingStorage()             == 16                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 16
    Received: 0
  >     Len()                          == 0                  ... ok
  >     MaxStorage()                   == 64                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 64
    Received: 0
  >     RemainingStorage()             == 64                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 64
    Received: 0
  >     Len()                          == 0                  ... ok
  >     MaxStorage()                   == 256                ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 256
    Received: 0
  >     RemainingStorage()             == 256                ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 256
    Received: 0
  >     Len()                          == 0                  ... ok
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     RemainingStorage()             == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1024
    Received: 0
  >     Len()                          == 0                  ... ok
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 2: Test storage and size of a small LRU
-------------------------------------------------------------------------------

  >     Set("1234",'1234')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("1234",'1234')
    Expected: true
    Received: false
  >     MaxStorage()                   == 16                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 16
    Received: 0
  >     RemainingStorage()             == 8                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 8
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     Set("1234",'1234')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("1234",'1234')
    Expected: true
    Received: false
  >     MaxStorage()                   == 64                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 64
    Received: 0
  >     RemainingStorage()             == 56                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 56
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     Set("1234",'1234')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("1234",'1234')
    Expected: true
    Received: false
  >     MaxStorage()                   == 256                ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 3: Check that Get fails when called on an empty LRU
-------------------------------------------------------------------------------

  >     Get("hello_world")             == cache_miss         ... ok
  >     Get("key")                     == cache_miss         ... ok
  >     Get("value")                   == cache_miss         ... ok
  >     Get("Get")                     == cache_miss         ... ok
  >     Get("LRU")                     == cache_miss         ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 4: Add single binding to an LRU and check its validity
-------------------------------------------------------------------------------

  >     RemainingStorage()             == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1024
    Received: 0
  >     Set("Hello_World",'barbaz')    == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("Hello World",'barbaz')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1007               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1007
    Received: 0
  >     Get("Hello_World")             == cache_hit:<'barbaz'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("Hello World")
    Expected: cache hit:<'barbaz'>
    Received: cache miss
  >     RemainingStorage()             == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1024
    Received: 0
  >     Set("Abracadabra",'Alakazam')  == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("Abracadabra",'Alakazam')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1005               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1005
    Received: 0
  >     Get("Abracadabra")             == cache_hit:<'Alakazam'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("Abracadabra")
    Expected: cache hit:<'Alakazam'>
    Received: cache miss
  >     RemainingStorage()             == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1024
    Received: 0
  >     Set("Key",'Value')             == true               ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 5: Add many bindings to one LRU, check that resulting state is valid
-------------------------------------------------------------------------------

    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 10240
    Received: 0
    ***** Operation failed! *****
    Command:  lru.Set("Hello World0",'barbaz')
    Expected: true
    Received: false
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 10222
    Received: 0
    ***** Operation failed! *****
    Command:  lru.Set("Hello World1",'barbaz')
    Expected: true
    Received: false
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 10204
    Received: 0
    ***** Operation failed! *****
    Command:  lru.Set("Hello World2",'barbaz')
    Expected: true
    Received: false
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 10186
    Received: 0
    ***** Operation failed! *****
    Command:  lru.Set("Hello World3",'barbaz')
    Expected: true
    Output truncated after 40 lines ...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 6: Check items can be added to a 'full' LRU if there's enough memory
-------------------------------------------------------------------------------

  >     Len()                          == 0                  ... ok
  >     Set("____0",'____0')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    0",'    0')
    Expected: true
    Received: false
  >     Set("____1",'____1')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    1",'    1')
    Expected: true
    Received: false
  >     Set("____2",'____2')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    2",'    2')
    Expected: true
    Received: false
  >     Set("____3",'____3')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    3",'    3')
    Expected: true
    Received: false
  >     Len()                          == 3                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 3
    Received: 0
  >     Set("____4",'____4')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    4",'    4')
    Expected: true
    Received: false
  >     Len()                          == 3                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 3
    Received: 0
  >     Set("____5",'____5')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    5",'    5')
    Expected: true
    Received: false
  >     Len()                          == 3                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 3
    Received: 0
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 7: Check that bindings too large for the LRU are rejected
-------------------------------------------------------------------------------

  >     Set(">_____0<",'>_____0<')     == false              ... ok
  >     Get(">_____0<")                == cache_miss         ... ok
  >     Set(">_____1<",'>_____1<')     == false              ... ok
  >     Get(">_____1<")                == cache_miss         ... ok
  >     Set(">_____2<",'>_____2<')     == false              ... ok
  >     Get(">_____2<")                == cache_miss         ... ok
  >     Set(">_____3<",'>_____3<')     == false              ... ok
  >     Get(">_____3<")                == cache_miss         ... ok
  >     Set(">_____4<",'>_____4<')     == false              ... ok
  >     Get(">_____4<")                == cache_miss         ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 8: Attempt to construct and add bindings to a 0-capacity LRU
-------------------------------------------------------------------------------

  >     Set("hello",'world')           == false              ... ok
  >     Set("abra",'kadabra')          == false              ... ok
  >     Set("foo",'bar')               == false              ... ok
  >     Set("key",'val')               == false              ... ok
  >     Set("",'')                     == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("",'')
    Expected: true
    Received: false
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 9: Check that the empty string can be used as a valid key
-------------------------------------------------------------------------------

  >     Set("",'Value')                == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("",'Value')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1019               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1019
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Get("")                        == cache_hit:<'Value'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("")
    Expected: cache hit:<'Value'>
    Received: cache miss
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 10: Check that the empty []byte can be used as a valid value
-------------------------------------------------------------------------------

  >     Set("key",'')                  == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1021               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1021
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Get("key")                     == cache_hit:<''>     ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<''>
    Received: cache miss
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 11: Check that nil can be used as a valid value
-------------------------------------------------------------------------------

  >     Set("key",'')                  == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1021               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1021
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Get("key")                     == cache_hit:<''>     ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<''>
    Received: cache miss
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 12: Check that values can be non-ASCII (binary)
-------------------------------------------------------------------------------

  >     Set("key",'\x00\x01�\x15�')    == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'��')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1016               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1016
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Get("key")                     == cache_hit:<'\x00\x01�\x15�'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'��'>
    Received: cache miss
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 13: Check that keys can be non-ASCII (Unicode)
-------------------------------------------------------------------------------

  >     Set("😂_🚀",'✔_🚗')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("😂 🚀",'✔ 🚗')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1007               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1007
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Get("😂_🚀")                     == cache_hit:<'✔_🚗'>  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("😂 🚀")
    Expected: cache hit:<'✔ 🚗'>
    Received: cache miss
  >     Set("🚩_🆗",'©_☀')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("🚩 🆗",'© ☀')
    Expected: true
    Received: false
  >     RemainingStorage()             == 1009               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1009
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Get("🚩_🆗")                     == cache_hit:<'©_☀'>  ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 14: Test that values are overwritten when Set() called with same key
-------------------------------------------------------------------------------

  >     Set("key",'old')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'old')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'old'>  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'old'>
    Received: cache miss
  >     Set("key",'new')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'new')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'new'>  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'new'>
    Received: cache miss
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 15: Test that internal state correctly updated when values overwritten
-------------------------------------------------------------------------------

  >     Set("key",'old')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'old')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'old'>  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'old'>
    Received: cache miss
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     RemainingStorage()             == 1018               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1018
    Received: 0
  >     Set("key",'nw')                == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'nw')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'nw'>   ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'nw'>
    Received: cache miss
  >     MaxStorage()                   == 1024               ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 1024
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     RemainingStorage()             == 1019               ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 16: Check that removed bindings are no longer accessible
-------------------------------------------------------------------------------

  >     Set("key",'value')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'value')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'value'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'value'>
    Received: cache miss
  >     Remove("key")                  == cache_hit:<'value'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Remove("key")
    Expected: cache hit:<'value'>
    Received: cache miss
  >     Get("key")                     == cache_miss         ... ok
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 17: Check that removed bindings no longer consume storage
-------------------------------------------------------------------------------

  >     Set("__0",'__0')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("  0",'  0')
    Expected: true
    Received: false
  >     Set("__1",'__1')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("  1",'  1')
    Expected: true
    Received: false
  >     Set("__2",'__2')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("  2",'  2')
    Expected: true
    Received: false
  >     Set("__3",'__3')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("  3",'  3')
    Expected: true
    Received: false
  >     Remove("__0")                  == cache_hit:<'__0'>  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Remove("  0")
    Expected: cache hit:<'  0'>
    Received: cache miss
  >     Len()                          == 3                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 3
    Received: 0
  >     RemainingStorage()             == 1006               ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 1006
    Received: 0
  >     Remove("__1")                  == cache_hit:<'__1'>  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Remove("  1")
    Expected: cache hit:<'  1'>
    Received: cache miss
  >     Len()                          == 2                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 2
    Received: 0
  >     RemainingStorage()             == 1012               ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 18: Check that overwriting values doesn't affect removal
-------------------------------------------------------------------------------

  >     Set("key",'old')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'old')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'old'>  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'old'>
    Received: cache miss
  >     Set("key",'value')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'value')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'value'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'value'>
    Received: cache miss
  >     Remove("key")                  == cache_hit:<'value'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Remove("key")
    Expected: cache hit:<'value'>
    Received: cache miss
  >     Get("key")                     == cache_miss         ... ok
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 19: Attempt to remove a binding from an empty LRU
-------------------------------------------------------------------------------

  >     Remove("key")                  == cache_miss         ... ok
  >     Remove("nada")                 == cache_miss         ... ok
  >     Remove("foo")                  == cache_miss         ... ok
  >     Remove("bar")                  == cache_miss         ... ok
###
                               -- test passed --

-------------------------------------------------------------------------------
  Test 20: Attempt to remove a binding not in the LRU
-------------------------------------------------------------------------------

  >     Remove("key")                  == cache_miss         ... ok
  >     Set("key",'value')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("key",'value')
    Expected: true
    Received: false
  >     Get("key")                     == cache_hit:<'value'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("key")
    Expected: cache hit:<'value'>
    Received: cache miss
  >     Remove("key")                  == cache_hit:<'value'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Remove("key")
    Expected: cache hit:<'value'>
    Received: cache miss
  >     Remove("key")                  == cache_miss         ... ok
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 21: Overfill an LRU and check the correct binding is evicted
-------------------------------------------------------------------------------

  >     Set("____0",'____0')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    0",'    0')
    Expected: true
    Received: false
  >     Set("____1",'____1')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    1",'    1')
    Expected: true
    Received: false
  >     Set("____2",'____2')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    2",'    2')
    Expected: true
    Received: false
  >     Set("____3",'____3')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    3",'    3')
    Expected: true
    Received: false
  >     Set("____4",'____4')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    4",'    4')
    Expected: true
    Received: false
  >     Set("____5",'____5')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    5",'    5')
    Expected: true
    Received: false
  >     Set("____6",'____6')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    6",'    6')
    Expected: true
    Received: false
  >     Set("____7",'____7')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    7",'    7')
    Expected: true
    Received: false
  >     Set("____8",'____8')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    8",'    8')
    Expected: true
    Received: false
  >     Set("____9",'____9')           == true               ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 22: Overfill an LRU, Getting some items, then check for correct eviction
-------------------------------------------------------------------------------

  >     Set("____0",'____0')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    0",'    0')
    Expected: true
    Received: false
  >     Set("____1",'____1')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    1",'    1')
    Expected: true
    Received: false
  >     Set("____2",'____2')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    2",'    2')
    Expected: true
    Received: false
  >     Set("____3",'____3')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    3",'    3')
    Expected: true
    Received: false
  >     Set("____4",'____4')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    4",'    4')
    Expected: true
    Received: false
  >     Set("____5",'____5')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    5",'    5')
    Expected: true
    Received: false
  >     Set("____6",'____6')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    6",'    6')
    Expected: true
    Received: false
  >     Set("____7",'____7')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    7",'    7')
    Expected: true
    Received: false
  >     Set("____8",'____8')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("    8",'    8')
    Expected: true
    Received: false
  >     Set("____9",'____9')           == true               ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 23: Ensure that evictions occur in the appropriate order
-------------------------------------------------------------------------------

    ***** Operation failed! *****
    Command:  lru.Set(" 2",' 2')
    Expected: true
    Received: false
    ***** Operation failed! *****
    Command:  lru.Get(" 2")
    Expected: cache hit:<' 2'>
    Received: cache miss
    ***** Operation failed! *****
    Command:  lru.Set(" 3",' 3')
    Expected: true
    Received: false
    ***** Operation failed! *****
    Command:  lru.Get(" 2")
    Expected: cache hit:<' 2'>
    Received: cache miss
    ***** Operation failed! *****
    Command:  lru.Get(" 3")
    Expected: cache hit:<' 3'>
    Received: cache miss
    ***** Operation failed! *****
    Command:  lru.Set(" 4",' 4')
    Expected: true
    Received: false
    ***** Operation failed! *****
    Command:  lru.Get(" 2")
    Expected: cache hit:<' 2'>
    Received: cache miss
    ***** Operation failed! *****
    Command:  lru.Get(" 3")
    Expected: cache hit:<' 3'>
    Output truncated after 40 lines ...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 24: Make sure that values are not evicted before they need to be
-------------------------------------------------------------------------------

  >     Set("0",'0')                   == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("0",'0')
    Expected: true
    Received: false
  >     Set("1",'1')                   == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("1",'1')
    Expected: true
    Received: false
  >     Get("0")                       == cache_hit:<'0'>    ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("0")
    Expected: cache hit:<'0'>
    Received: cache miss
  >     Get("1")                       == cache_hit:<'1'>    ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("1")
    Expected: cache hit:<'1'>
    Received: cache miss
  >     Set("2",'2')                   == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("2",'2')
    Expected: true
    Received: false
  >     Get("1")                       == cache_hit:<'1'>    ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("1")
    Expected: cache hit:<'1'>
    Received: cache miss
  >     Get("2")                       == cache_hit:<'2'>    ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("2")
    Expected: cache hit:<'2'>
    Received: cache miss
  >     Set("3",'3')                   == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("3",'3')
    Expected: true
    Received: false
  >     Get("2")                       == cache_hit:<'2'>    ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("2")
    Expected: cache hit:<'2'>
    Received: cache miss
  >     Get("3")                       == cache_hit:<'3'>    ... FAIL
    Output from additional subtests was suppressed...
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 25: Check that storage is freed correctly when eviction occurs
-------------------------------------------------------------------------------

  >     Set("12345",'12345')           == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("12345",'12345')
    Expected: true
    Received: false
  >     MaxStorage()                   == 10                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 10
    Received: 0
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     RemainingStorage()             == 0                  ... ok
  >     Set("123",'123')               == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("123",'123')
    Expected: true
    Received: false
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     RemainingStorage()             == 4                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 4
    Received: 0
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 26: Check proper length is used when evicting Unicode strings
-------------------------------------------------------------------------------

  >     Set("😂",'🙈')                   == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("😂",'🙈')
    Expected: true
    Received: false
  >     Get("😂")                       == cache_hit:<'🙈'>    ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("😂")
    Expected: cache hit:<'🙈'>
    Received: cache miss
  >     Set("12",'12')                 == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("12",'12')
    Expected: true
    Received: false
  >     Len()                          == 1                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.Len()
    Expected: 1
    Received: 0
  >     RemainingStorage()             == 6                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 6
    Received: 0
  >     Get("😂")                       == cache_miss         ... ok
  >     Get("12")                      == cache_hit:<'12'>   ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("12")
    Expected: cache hit:<'12'>
    Received: cache miss
###
                               -- test failed (-1.0) --

-------------------------------------------------------------------------------
  Test 27: Check that overeviction doesn't occur when updating existing key
-------------------------------------------------------------------------------

  >     MaxStorage()                   == 20                 ... FAIL
    ***** Operation failed! *****
    Command:  lru.MaxStorage()
    Expected: 20
    Received: 0
  >     Set("abcd",'efgh')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("abcd",'efgh')
    Expected: true
    Received: false
  >     Set("1234",'5678')             == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("1234",'5678')
    Expected: true
    Received: false
  >     RemainingStorage()             == 4                  ... FAIL
    ***** Operation failed! *****
    Command:  lru.RemainingStorage()
    Expected: 4
    Received: 0
  >     Set("1234",'12345678')         == true               ... FAIL
    ***** Operation failed! *****
    Command:  lru.Set("1234",'12345678')
    Expected: true
    Received: false
  >     Get("abcd")                    == cache_hit:<'efgh'> ... FAIL
    ***** Operation failed! *****
    Command:  lru.Get("abcd")
    Expected: cache hit:<'efgh'>
    Received: cache miss
###
                               -- test failed (-1.0) --

--------------------------------------------------------------
Results
--------------------------------------------------------------
>     ========================================================
>        Test summary:
>            Passed   3 / 27  tests     (24 failed)
>            Passed  36 / 213 subtests  (177 failed)
>
>        Score:
>            3.00 points of a possible 27.00  (11.11%)
>     ========================================================


Umm, might need to pause and resume syncing? idk


Removing ending space, breaks formating


Gotcha. Black screen definitely works for data collection but not for responsive gui. Ex. Finish level -> overlay shows clear flag -> sit on stats screen for 2 minutes-> exit -> ws message sent.

I guess it all depends on the use of the message and like you said, its simple enough to move it, if/when needed


@masc4ii See if it works! Black level subtraction!!!


[Penar Musaraj posted](https://review.discourse.org/t/fix-remove-all-service-workers-from-apple-devices-again/4746/3):

@Falco what do you think about switching the `isApple` check here to:

```
const isApple = !!navigator.vendor.match(/Apple/i);
```

This would allow service workers on non-Safari browsers in Macs to work, but still block service works for iOS browsers (including Chrome).


Mike, Chloie


need to add end points to get the # of reunions, and # of messages


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://pr-33-aledade.pantheonsite.io/)

Created multidev environment [pr-33](https://dashboard.pantheon.io/sites/533c69ec-70af-4cb2-af59-49d50e7d05f7#pr-33) for aledade.


Successfully aliased the URL <https://count-6y9tvjvnx.now.sh> to the following aliases:

* https://count.kikobeats.com
* https://count.kikobeats.now.sh
* https://count-git-master.kikobeats.now.sh


Moving file


Alternatively, the first amended sentence above could possibly be rephrased as follows:
It is important to note that the sharing and general permissions underlying communication sites are also driven by SharePoint groups.


Successfully aliased the URL <https://count-at1ilrf66.now.sh> to the following aliases:

* https://count.kikobeats.com
* https://count.kikobeats.now.sh
* https://count-git-master.kikobeats.now.sh


Respuestas actualizadas!


still not deleted on github, by the way join "estonica: a reworked estonia" and scroll through general chat to see the truth


back


Ah I see what you mean by "gave wrong debayered areas in bright parts"


Why did you do this? This relates to the right click function, not the fire ice stuff.


[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://ci-290-usittorg.pantheonsite.io/)

Created multidev environment [ci-290](https://dashboard.pantheon.io/sites/bd8bab1d-9fc1-4ed9-8ccf-9224a11e02d8#ci-290) for usittorg.


Successfully aliased the URL <https://olesdev-94npoffj3.now.sh> to the following aliases:

* https://oles.dev
* https://olesdev.omaiboroda.now.sh
* https://olesdev-git-master.omaiboroda.now.sh


7174-AddSETOutput (RKStrand) - Win64-Windows-10-VisualStudio-16: OK (2453 of 2453 tests passed, 3 test warnings)

Messages:\n
 * 3 tests had: AUD diffs.
 * 3 tests had: RDD diffs.

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png)


Copy of this build can be found at
https://builds.myetherwallet.com/build/dc509b523000b366f03bac6bf57d704deab39ab6/index.html
                       https://www.cloudflare-ipfs.com/ipfs/QmNbvSzBMmBCtnSMSbxC1WUBRiqmhc7dAewRUs4ErWN859
                       Virus Total analysis
                       https://www.virustotal.com/file/9c82b496da52cebaab260d6c8b8104f18a9208b71a8e722e05e03f66c7e0d70b/analysis/1564433172/


these are the most confusing bugs ever


Failed to alias the deployment: We could not create a certificate for unclic.pro because HTTP pretest failed. Please ensure the CNAME for unclic.pro points to "alias.zeit.co". You can find more information at https://err.sh/now-cli/cant-solve-challenge.
(Learn more at <https://err.sh/now-cli/cant-solve-challenge>)

[Click here](https://zeit.co/github/deployment?deploymentId=dpl_4Cf89KrnbyG6Mm4u6jpHK9sKnzwR) to access the non-aliased deployment.


Successfully aliased the URL <https://jayfallonportfolio2019bis-poxbtdrom.now.sh> to the following aliases:

* https://portfolio-bis.now.sh
* https://jayfallon-portfolio-2019-bis.jayfallon1.now.sh
* https://jayfallon-portfolio-2019-bis-git-master.jayfallon1.now.sh


Successfully aliased the URL <https://mywebsite-8y9cweggl.now.sh> to the following aliases:

* https://nravichan.com
* https://mywebsite.nravichan.now.sh
* https://mywebsite-git-master.nravichan.now.sh


Successfully aliased the URL <https://hydrus-web-4j0inf1ik.now.sh> to the following aliases:

* https://hydrus.app
* https://hydrus-web.floogulinc.now.sh
* https://hydrus-web-git-master.floogulinc.now.sh


be carefull, lunch throw this error message: `device/xiaomi/platina/device.mk:244: error: missing separator.`


![](https://github.trello.services/images/mini-trello-icon.png) [Server:  add sockets](https://trello.com/c/GAVdK17A/8-server-add-sockets)


Successfully aliased the URL <https://apollo-tutorial-eewnmdn65.now.sh> to the following aliases:

* https://apollo-tutorial.will-wow.now.sh
* https://apollo-tutorial-git-master.will-wow.now.sh


tylko dla brake


works now


Successfully aliased the URL <https://destiny-report-30owpjjp7.now.sh> to the following aliases:

* https://destiny.report
* https://destiny-report.sarkurd.now.sh
* https://destiny-report-git-master.sarkurd.now.sh


![](https://github.trello.services/images/mini-trello-icon.png) [Client:  add sockets](https://trello.com/c/zP2bbXKJ/9-client-add-sockets)


Homework 2


Successfully aliased the URL <https://fme-api-jhanxnf1c.now.sh> to the following aliases:

* https://api.firstmeanseverything.com
* https://fme-api.firstmeanseverything.now.sh
* https://fme-api-git-master.firstmeanseverything.now.sh


¿Why was this done?, I'm running into errors on Bitrise and I think this is why


ok


167576747_Issue7381 (JasonGlazer) - x86_64-Linux-Ubuntu-18.04-gcc-7.4-IntegrationCoverage-Debug: OK (667 of 667 tests passed, 0 test warnings)

![Build Badge](http://img.shields.io/badge/build%20status-passing-green.png) ![Test Badge](http://img.shields.io/badge/tests%20passed-100.0%25-green.png) ![Coverage Badge](http://img.shields.io/badge/coverage%20status-68.45%25-green.png)


Nice!


Successfully aliased the URL <https://jayfallonportfolio2019bis-g02f1ac1m.now.sh> to the following aliases:

* https://portfolio-bis.now.sh
* https://jayfallon-portfolio-2019-bis.jayfallon1.now.sh
* https://jayfallon-portfolio-2019-bis-git-master.jayfallon1.now.sh


This looks wrong - you penalize king attacker that is also attacking enemy knight (???)


@evanphx may i know why you set `env[REMOTE_ADDR]` to local host for unix sockets and how do we override this value, thanks.


Successfully aliased the URL <https://countryexplorer-dmfwitri7.now.sh> to the following aliases:

* https://countryexplorer.flofehrenbacher.now.sh
* https://countryexplorer-git-master.flofehrenbacher.now.sh


`TemporaryPixelShaderRenderStates` no longer exists, so please update all comments that mention it


Successfully aliased the URL <https://breathecode-projects-7w6nmsaxd.now.sh> to the following aliases:

* https://breathecode-projects.breathecode.now.sh
* https://breathecode-projects-git-master.breathecode.now.sh


Failed to alias the deployment: We could not create a certificate for unclic.pro because HTTP pretest failed. Please ensure the CNAME for unclic.pro points to "alias.zeit.co". You can find more information at https://err.sh/now-cli/cant-solve-challenge.
(Learn more at <https://err.sh/now-cli/cant-solve-challenge>)

[Click here](https://zeit.co/github/deployment?deploymentId=dpl_4a4S2xEnrMzvuAdrtrfRrqhyiZ2a) to access the non-aliased deployment.


This change is requiring a bit large number of changes in the codebase. Maybe to have a new constructor NewChunkWithPin(Address,[]byte,uint64) (or NewPinnedChunk) just for setting the pin to some value, and leave NewChunk as it is with pinCounter defaulting to 0? It also makes build fail, currently.


TeamCity Bvcms / Build [Build 1587](https://builds.tpsdb.com/viewLog.html?buildId=7466&buildTypeId=Bvcms_Build) is now running


So, the plan was to penalise a king attacker which is itself attacked (by an enemy). Have I got my "Us" and "Them" the wrong way around?

b & pos.pieces(Us, KNIGHT)


Successfully aliased the URL <https://mtnalonsocom-ky21qpgjf.now.sh> to the following aliases:

* https://mtnalonso.com
* https://mtnalonsocom.mtnalonso.now.sh
* https://mtnalonsocom-git-master.mtnalonso.now.sh


Хорошо


Failed to alias the deployment: We could not create a certificate for unclic.pro because HTTP pretest failed. Please ensure the CNAME for unclic.pro points to "alias.zeit.co". You can find more information at https://err.sh/now-cli/cant-solve-challenge.
(Learn more at <https://err.sh/now-cli/cant-solve-challenge>)

[Click here](https://zeit.co/github/deployment?deploymentId=dpl_3XqbEWrN6DsJCWxBSiC7abvpyoTP) to access the non-aliased deployment.


I just noticed I had a file that is modified locally and forgot to include in that commit. Can you please do an interactive rebase and add the following change to ` backends/module.mk`:
```
ifdef USE_MACOSX_TTS
MODULE_OBJS += \
       text-to-speech/macosx/macosx-text-to-speech.o
endif
```


And also remove the merge commit from the history while you are at it.


Successfully aliased the URL <https://christosportofolio-dkmfm5abq.now.sh> to the following aliases:

* https://christosportofolio.chriskaragounis.now.sh
* https://christosportofolio-git-master.chriskaragounis.now.sh


![](https://github.trello.services/images/mini-trello-icon.png) [Open log file when gz](https://trello.com/c/ZTjH8JBZ/20-open-log-file-when-gz)


Don't forget to remove this debug before opening the pull request.


During synthetic data experiments, when a bipartite planted partition graph is made nearly detectable, the natural agglomerative merge routine introduced in 06dce36ca65150fcff86732e4db4dbccda6fca7e was problematic. It will not be able to find the (Ka, Kb) planted, showing largely under-fit.


Successfully aliased the URL <https://dabas-thing-o7bzzh6oq.now.sh> to the following aliases:

* https://dabas-thing.datner.now.sh
* https://dabas-thing-git-master.datner.now.sh


![](https://github.trello.services/images/mini-trello-icon.png) [Handle the wrong config validation](https://trello.com/c/HQ17HxRk/13-handle-the-wrong-config-validation)


> > I think it's OK to recycle them. What problem could this cause?
>
> There might be no obvious problems.
> I'm just afraid that this causes some kind of confusion. E.g.:
>
> * Vim will show the correct information when someone sees the help
> with `:help E172`, however, when google with E172 it might show old
> information.

Since the user is using Vim at the time, I would expect using :help with
the error number to be used.  On something like stackoverflow they might
still appear perhaps.  I don't think it's that important.

> * Translators might be also confused when they update the message
> files, because the old file and the new file have different messages
> with the same error number.

There are often years between the error number is deleted and it's
re-used.  I actually can't find a recent deletion of an error number.
Must have been in some system-specific code that was deleted perhaps.

> * I often grep the source code with error numbers when I write a
> patch. If I grep with a recycled number, old messages might be found.

How would you find those?  The error numbers are no longer used.

> * We cannot assume anymore that the smaller error numbers are
> introduced in the old source codes and the larger numbers are
> introduced in the newer codes.

I haven't been relying on that anyway, there were also gaps in the
numbers that were never used.

I'm not sure what problems we encounter when starting to use four-digit
error numbers.  Or whether it's worth postponing the inevitable.

--
I recommend ordering large cargo containers of paper towels to make up
whatever budget underruns you have.  Paper products are always useful and they
have the advantage of being completely flushable if you need to make room in
the storage area later.
				(Scott Adams - The Dilbert principle)

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///


I'm not sure for now as I have no experience with appveyor. But CI for windows sounds nice enough to look into it. I'm going to explore the possibilities, but for now I'll try to setup up travis as I found some scripts to get it working with qt.

If you have some experience, I would love to accept some pointers / or even a pull request for qt and opencv in appveyor.