Oh we are calling /activateOrchestrator directly then in the test-harness?

I think it only makes sense patching this on the server side if we expect users to use the endpoint directly rather than the CLI (the prompt sets a default to 1 )


#### NOTE: ONLY THE SHADOWS HAVE BEEN UPDATED. NO ACTUAL FUNCTIONALITY HAS BEEN CHANGED.

## Logic

**BEFORE**
![image](https://user-images.githubusercontent.com/32238504/62226072-4a1db900-b3c2-11e9-9620-a980ee9a0fdf.png)

**AFTER**
![image](https://user-images.githubusercontent.com/32238504/62226096-530e8a80-b3c2-11e9-8062-9000648a7697.png)

## Text

**BEFORE**
![image](https://user-images.githubusercontent.com/32238504/62226165-6cafd200-b3c2-11e9-9461-2e9be6917e45.png)

**AFTER**
![image](https://user-images.githubusercontent.com/32238504/62226181-746f7680-b3c2-11e9-9ab0-ba8931b7e702.png)

## Lists

**BEFORE**
![image](https://user-images.githubusercontent.com/32238504/62226215-805b3880-b3c2-11e9-9986-8b7cf3dc7f45.png)

**AFTER**
![image](https://user-images.githubusercontent.com/32238504/62226230-881add00-b3c2-11e9-908d-9a8bcf16cf31.png)

## Color

**BEFORE**
![image](https://user-images.githubusercontent.com/32238504/62226252-923cdb80-b3c2-11e9-9014-9bc7c7b5c28a.png)

**AFTER**
![image](https://user-images.githubusercontent.com/32238504/62226265-9832bc80-b3c2-11e9-89de-a3d4db2b94cb.png)


Successfully aliased the URL <https://ui-9sac7uc33.now.sh> to the following aliases:

* https://ui.manifold.now.sh
* https://ui-git-master.manifold.now.sh


Successfully aliased the URL <https://ipfs-browser-gateway-niyaofc3t.now.sh> to the following aliases:

* https://ipfs-browser-gateway.now.sh
* https://ipfs-browser-gateway.linonetwo012.now.sh
* https://ipfs-browser-gateway-git-master.linonetwo012.now.sh


I think if we want to see the changes we've made, we either have to set the 'branch' in admin/config.yml to ```netlify-cms``` or merge netlify-cms into master.


Can you please swap this out with our custom person matching rather than using the default Rock person matching?


I think you forgot to update this to get the new values from the request body :) It should get the values for the update query in the same way as you have done in the insert query


@PaintYourDragon `dst_off` can be negative in some caching scenario. Maybe we should expand the `min` to an  actual comparison to make esp compiler happy.


<details>

<summary>Submitting the task to Taskcluster failed. Details</summary>

end of the stream or a document separator is expected at line 11, column 1:
    mozilla
    ^

</details>


This looks good! Thanks 👍


Since this depends on core that depends on 0.33, could Gradle silently ignore this 0.32 and upgrade?


Successfully aliased the URL <https://thibautio-2mcifv6b5.now.sh> to the following aliases:

* https://thibaut.io
* https://thibautio.thib-thib.now.sh
* https://thibautio-git-master.thib-thib.now.sh


That is better try user another sever, becouse is utility in most hosting in all internet, make more, and thing in segurity privice in that code, thing in valor off, external out facebook. Lising my path in - onion sever....Index path.


Typo: **Warning** messages about HTTP Auth key if not set or disabled


@trydyingtolive This is fantastic.  I wish the events and a few other things worked like this.  So much simpler than building custom POCOs and hardcoding a bunch of properties.


Rob, I think this is a misunderstanding of mine: The Migrations contract is created by truffle - I thought it served as a helper for the truffle console?


!important isn't overriding the inherited #fff colour


In Gradle I am not 100% sure but it seems that it overrides version pulled by dependencies.

There is also a test which verifies that 0.32.0 is on the classpath.


AirWallRadiant (mjwitte) - Win64-Windows-10-VisualStudio-16: OK (2444 of 2454 tests passed, 9 test warnings)

Messages:\n
 * 18 tests had: EIO diffs.
 * 10 tests had: Table big diffs.
 * 2 tests had: ERR diffs.
 * 1 test had: ESO big diffs.

Failures:\n

regression Test Summary
 * Passed: 652
 * Failed: 10

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


TeamCity Glyssen / Glyssen pull requests [Build *.*.403.d927a8e226ae648c6a362b049c4138cdc708dadd](https://build.palaso.org/viewLog.html?buildId=158505&buildTypeId=Glyssen_GlyssenPullRequests2) outcome was **FAILURE**
Summary: Tests failed: 1, passed: 2166, ignored: 18 Build time: 00:09:00
### Failed tests
```
GlyssenTests.dll: GlyssenTests.Dialogs.AssignCharacterViewModelTests_Acts.ApplyCurrentReferenceTextMatchup_BlockMatchupAlreadyApplied_ThrowsInvalidOperationException: Test(s) failed. System.InvalidOperationException : Sequence contains no elements
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
   at Glyssen.ReferenceText.MatchVernBlocksToReferenceTextBlocks(IReadOnlyList`1 vernBlockList, String bookId, ScrVers vernacularVersification, Boolean forceMatch) in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\ReferenceText.cs:line 502
   at Glyssen.ReferenceText.GetBlocksForVerseMatchedToReferenceText(BookScript vernacularBook, Int32 iBlock, ScrVers vernacularVersification, UInt32 predeterminedBlockCount, Boolean allowSplitting) in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\ReferenceText.cs:line 237
   at Glyssen.Dialogs.BlockNavigatorViewModel.IsRelevant(Block block, BlockMatchup& lastMatchup, Boolean ignoreExcludeUserConfirmed) in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\Dialogs\BlockNavigatorViewModel.cs:line 1056
   at Glyssen.Dialogs.BlockNavigatorViewModel.PopulateRelevantBlocks() in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\Dialogs\BlockNavigatorViewModel.cs:line 1011
   at Glyssen.Dialogs.AssignCharacterViewModel.PopulateRelevantBlocks() in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\Dialogs\AssignCharacterViewModel.cs:line 194
   at Glyssen.Dialogs.BlockNavigatorViewModel.ResetFilter(Block selectedBlock, Boolean stayOnCurrentBlock) in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\Dialogs\BlockNavigatorViewModel.cs:line 334
   at Glyssen.Dialogs.BlockNavigatorViewModel.SetModeInternal(BlocksToDisplay mode, Boolean stayOnCurrentBlock) in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\Dialogs\BlockNavigatorViewModel.cs:line 327
   at Glyssen.Dialogs.AssignCharacterViewModel.set_Mode(BlocksToDisplay value) in C:\BuildAgent\work\9269096ed6fdb26d\Glyssen\Dialogs\AssignCharacterViewModel.cs:line 67
   at GlyssenTests.Dialogs.AssignCharacterViewModelTests_Acts.ApplyCurrentReferenceTextMatchup_BlockMatchupAlreadyApplied_ThrowsInvalidOperationException() in C:\BuildAgent\work\9269096ed6fdb26d\GlyssenTests\Dialogs\AssignCharacterViewModelTests.cs:line 2104

```


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

* https://ammobinclient.now.sh
* https://ammobin.flyingmonkeydude.now.sh
* https://ammobin-git-master.flyingmonkeydude.now.sh


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

* https://tetris.isthe.link
* https://tetris.rem.now.sh
* https://tetris-git-master.rem.now.sh


Successfully aliased the URL <https://nextjs-express-nowv2-r74inn7j6.now.sh> to the following aliases:

* https://sarpel.now.sh
* https://nextjs-express-nowv2.sarpisik.now.sh
* https://nextjs-express-nowv2-git-master.sarpisik.now.sh


Кортеж
=
Это неизменяемая последовательность, обычно используемая для хранения разных типов объектов. Очень похожа на список.
-

1-й способ создания кортежа (через скобки):
>a = (1, 2, 3, 4,)

2-й способ создания кортежа (без скобок)
>a = 1, 2, 3, 4
> a = 1,

3-й способ - итерабельная последовательность:
>a = 1, 2, 3, 4
>b = tuple ( (1, 2, 3, 4) )


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

* https://petgram.malagon91.now.sh
* https://petgram-git-develop.malagon91.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_7F44nuV3CzH9dKS2KP8f8fuxghyF) to access the non-aliased deployment.


-------------------------------------------------------------------------------
  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%)
>     ========================================================


-------------------------------------------------------------------------------
  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%)
>     ========================================================


@ligi @chr5tphr check it out. i doubled the number of cells by splitting into unicode half blocks. thanks for the tip!


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

    FAIL
    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
-------------------------------------------------------------------------------

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

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

    FAIL
    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.
-------------------------------------------------------------------------------

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

-------------------------------------------------------------------------------
  Test 5: Try using a different port for S client and R 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 6: Try using a different IP for S client and R server
-------------------------------------------------------------------------------

    PASS
    No message received

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

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

    Terminated
    /app/assignment1/run-single-test.sh: line 69: kill: (979) - 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
-------------------------------------------------------------------------------

    Terminated
    /app/assignment1/run-single-test.sh: line 69: kill: (1016) - 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.
-------------------------------------------------------------------------------

    Terminated
    /app/assignment1/run-single-test.sh: line 69: kill: (1051) - 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.
-------------------------------------------------------------------------------

    Terminated
    /app/assignment1/run-single-test.sh: line 69: kill: (1087) - 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
    Terminated
    /app/assignment1/run-single-test.sh: line 135: kill: (1121) - 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
-------------------------------------------------------------------------------

    /app/assignment1/run-single-test.sh: line 157: stdbuf: command not found
    2019/07/31 15:52:32 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:32 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:33 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:33 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:33 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:33 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:34 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:34 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:35 dial tcp 127.0.0.1:10001: connect: connection refused
    2019/07/31 15:52:35 dial tcp 127.0.0.1:10001: connect: connection refused
    /app/assignment1/run-single-test.sh: line 170: kill: (1176) - 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
-------------------------------------------------------------------------------

    Terminated
    /app/assignment1/run-single-test.sh: line 69: kill: (1325) - 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
-------------------------------------------------------------------------------

    /app/assignment1/run-single-test.sh: line 69: kill: (1360) - 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 15: Send a random alphanumeric message from S client to S server
-------------------------------------------------------------------------------

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

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

    /app/assignment1/run-single-test.sh: line 69: kill: (1432) - No such process
    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.
-------------------------------------------------------------------------------

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

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

    /app/assignment1/run-single-test.sh: line 135: kill: (1501) - 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 19: Open multiple concurrent connections from S client to S server
-------------------------------------------------------------------------------

    /app/assignment1/run-single-test.sh: line 157: stdbuf: command not found
    /app/assignment1/run-single-test.sh: line 170: kill: (1556) - 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
-------------------------------------------------------------------------------

    /app/assignment1/run-single-test.sh: line 69: kill: (1701) - 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 21: Try using a different IP for S client and S server
-------------------------------------------------------------------------------

    /app/assignment1/run-single-test.sh: line 201: kill: (1736) - No such process
    PASS
    No message received

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

--------------------------------------------------------------
Results
--------------------------------------------------------------
>     ========================================================
>        Test summary:
>            Passed   0 / 21  tests     (21 failed)
>
>        Score:
>            0.00 points of a possible 21.00  (0.00%)
>     ========================================================


something changes


Successfully aliased the URL <https://community-2oiykeu29.now.sh> to the following aliases:

* https://docs.tver.io
* https://community.tverio.now.sh
* https://community-git-master.tverio.now.sh


var csrf_token = "{{ csrf_token() }}";


Successfully aliased the URL <https://personal-blog-nz22dmaw2.now.sh> to the following aliases:

* https://juancaicedo.com
* https://personal-blog.juancaicedo.now.sh
* https://personal-blog-git-master.juancaicedo.now.sh


This project will always be updated.


Yup, it's PHONY.


PlantMassFlowRatesChangeForTankSourceSide (yzhou601) - x86_64-MacOS-10.13-clang: OK (2450 of 2453 tests passed, 0 test warnings)

Messages:\n
 * 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: 659
 * 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)


Операции кортежей
=

**len** - длинна

**in** - проверка на вхождение

**+** - можно складывать

**"*"** - дублировать

**min** и **max** - выдает максимальное и минимальное значение (_**если однотипные элементы**_)

**sum** - сумма (_**если однотипные элементы**_)

**


Successfully aliased the URL <https://ipfs-browser-gateway-5b9o310vt.now.sh> to the following aliases:

* https://ipfs-browser-gateway.now.sh
* https://ipfs-browser-gateway.linonetwo012.now.sh
* https://ipfs-browser-gateway-git-master.linonetwo012.now.sh


New Windows module to change drive letter(s) for the CDROMs as well as dismounting Windows virtual CDROMs.


@krystian3w See https://github.com/uBlockOrigin/uAssets/issues/6025 & check if your filter breaks image expand on site for you


Incorrect commit message: increased DeviationAccordionBox's title's maxWidth


Deployment failed with the following error:

~~~
You defined 1 build that did not match any source files (please ensure they are NOT defined in .nowignore):
~~~


Added range string parameter here: a32af35ab.

So apparently my prevoius reason was also valid: the `&` is being escaped as per [this comment](https://github.com/JacquesCarette/Drasil/pull/1591#issuecomment-504534661). I pushed a tentative commit 0779b4713 that "resolves" this by changing the `foldlList` to output a String, so that it doesn't need to go through `pSpec`, as it can just be passed to `text`. Is this too hacky? This also means that the strings passed to `foldlList` don't get checked for "<" and ">", but right now the only arguments to `foldlList` are people or page numbers, so I think we're OK.


Dobře! `apply` je univerzální a  `create` a `patch` okrajové, že?


Without startNumber parameter


I'd concede that a _global_ ban is arguably overkill when you consider the factors, but in the position of managing a centralised blacklist, it is not a luxury (or indeed a requirement) of the workflow to engage suspect owners and participants to weigh up both sides to the argument.

For the record, I know nothing of the individuals who manage the estate nor anything about those who proposed, actioned or defended the ban so I have no allegiance or vetted interest; I simply chose to play devil's advocate in a neutral capacity.

I think one issue that is hindering your comments carrying leverage is that you're making assumptions about the skills of all those involved, effectively suggesting that they (and I?) are less skilled than you are; that is unfair and entirely counter-productive.


This change fails the build when FastRTPS is not available:

```
CMake Error at /home/jenkins-agent/workspace/ci_linux/ws/install/ament_cmake_target_dependencies/share/ament_cmake_target_dependencies/cmake/ament_target_dependencies.cmake:52 (message):
  ament_target_dependencies() the passed package name 'rmw_fastrtps_cpp' was
  not found before
```

Please fix asap.


AirWallRadiant (mjwitte) - 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.42%25-green.png)