From 1d68af62396e4ea79dd15e86a3c90324ef588ca0 Mon Sep 17 00:00:00 2001 From: robstoll <5557885+robstoll@users.noreply.github.com> Date: Sun, 15 Sep 2024 14:38:26 +0000 Subject: [PATCH] generate README examples --- README.md | 168 +++++++++++++++++++++++++++--------------------------- 1 file changed, 84 insertions(+), 84 deletions(-) diff --git a/README.md b/README.md index 3e426a8d41..86a6d50026 100644 --- a/README.md +++ b/README.md @@ -176,7 +176,7 @@ import ch.tutteli.atrium.api.verbs.expect val x = 10 expect(x).toEqual(9) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FirstExample.kt#L32)[Output](#ex-first) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FirstExample.kt#L20)[Output](#ex-first) ```text I expected subject: 10 (kotlin.Int <1234789>) @@ -208,7 +208,7 @@ The next section shows how you can define multiple expectations for the same sub // two single expectations, only first evaluated expect(4 + 6).toBeLessThan(5).toBeGreaterThan(10) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L26)[Output](#ex-single) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L15)[Output](#ex-single) ```text I expected subject: 10 (kotlin.Int <1234789>) @@ -246,7 +246,7 @@ expect(4 + 6) { toBeGreaterThan(10) } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L44)[Output](#ex-group) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L33)[Output](#ex-group) ```text I expected subject: 10 (kotlin.Int <1234789>) @@ -343,7 +343,7 @@ expect { throw IllegalArgumentException("name is empty") }.toThrow() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L26)[Output](#ex-toThrow1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L15)[Output](#ex-toThrow1) ```text I expected subject: () -> kotlin.Nothing (readme.examples.ToThrowExamples$ex-toThrow1$1 <1234789>) @@ -352,9 +352,9 @@ I expected subject: () -> kotlin.Nothing (readme.examples.ToThrowExamples ℹ Properties of the unexpected IllegalArgumentException » message: "name is empty" <1234789> » stacktrace: - ⚬ readme.examples.ToThrowExamples$ex-toThrow1$1.invoke(ToThrowExamples.kt:29) - ⚬ readme.examples.ToThrowExamples$ex-toThrow1$1.invoke(ToThrowExamples.kt:27) - ⚬ readme.examples.ToThrowExamples.ex-toThrow1(ToThrowExamples.kt:58) + ⚬ readme.examples.ToThrowExamples$ex-toThrow1$1.invoke(ToThrowExamples.kt:18) + ⚬ readme.examples.ToThrowExamples$ex-toThrow1$1.invoke(ToThrowExamples.kt:16) + ⚬ readme.examples.ToThrowExamples.ex-toThrow1(ToThrowExamples.kt:47) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ⚬ java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) @@ -385,7 +385,7 @@ expect { message { toStartWith("firstName") } } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L34)[Output](#ex-toThrow2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L23)[Output](#ex-toThrow2) ```text I expected subject: () -> kotlin.Nothing (readme.examples.ToThrowExamples$ex-toThrow2$1 <1234789>) @@ -406,7 +406,7 @@ expect { throw IllegalArgumentException() }.toThrow().message.toStartWith("firstName") ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L43)[Output](#ex-toThrow3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L32)[Output](#ex-toThrow3) ```text I expected subject: () -> kotlin.Nothing (readme.examples.ToThrowExamples$ex-toThrow3$1 <1234789>) @@ -429,7 +429,7 @@ expect { throw IllegalArgumentException("name is empty", RuntimeException("a cause")) }.notToThrow() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L50)[Output](#ex-notToThrow) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ToThrowExamples.kt#L39)[Output](#ex-notToThrow) ```text I expected subject: () -> kotlin.Nothing (readme.examples.ToThrowExamples$ex-notToThrow$1 <1234789>) @@ -437,9 +437,9 @@ I expected subject: () -> kotlin.Nothing (readme.examples.ToThrowExamples ℹ Properties of the unexpected IllegalArgumentException » message: "name is empty" <1234789> » stacktrace: - ⚬ readme.examples.ToThrowExamples$ex-notToThrow$1.invoke(ToThrowExamples.kt:53) - ⚬ readme.examples.ToThrowExamples$ex-notToThrow$1.invoke(ToThrowExamples.kt:51) - ⚬ readme.examples.ToThrowExamples.ex-notToThrow(ToThrowExamples.kt:54) + ⚬ readme.examples.ToThrowExamples$ex-notToThrow$1.invoke(ToThrowExamples.kt:42) + ⚬ readme.examples.ToThrowExamples$ex-notToThrow$1.invoke(ToThrowExamples.kt:40) + ⚬ readme.examples.ToThrowExamples.ex-notToThrow(ToThrowExamples.kt:43) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ⚬ java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) @@ -447,7 +447,7 @@ I expected subject: () -> kotlin.Nothing (readme.examples.ToThrowExamples » cause: java.lang.RuntimeException » message: "a cause" <1234789> » stacktrace: - ⚬ readme.examples.ToThrowExamples$ex-notToThrow$1.invoke(ToThrowExamples.kt:53) + ⚬ readme.examples.ToThrowExamples$ex-notToThrow$1.invoke(ToThrowExamples.kt:42) ``` @@ -500,11 +500,11 @@ expect(myPerson) .its { fullName() } // not evaluated anymore, subject String afterwards .toStartWith("rob") // not evaluated anymore ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L44)[Output](#ex-its-single) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L33)[Output](#ex-its-single) ```text I expected subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.FeatureExtractorExamples.Person <1234789>) -◆ ▶ its.definedIn(FeatureExtractorExamples.kt:46): false +◆ ▶ its.definedIn(FeatureExtractorExamples.kt:35): false ◾ to equal: true ``` @@ -545,14 +545,14 @@ Feature extractors follow the common pattern of having two overloads: its { lastName }.toEqual("Dummy") } ``` - ↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L53)[Output](#ex-its-group) + ↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L42)[Output](#ex-its-group) ```text I expected subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.FeatureExtractorExamples.Person <1234789>) - ◆ ▶ its.definedIn(FeatureExtractorExamples.kt:56): "Robert" <1234789> + ◆ ▶ its.definedIn(FeatureExtractorExamples.kt:45): "Robert" <1234789> ◾ to start with: "Pe" <1234789> ◾ to end with: "er" <1234789> - ◆ ▶ its.definedIn(FeatureExtractorExamples.kt:62): "Stoll" <1234789> + ◆ ▶ its.definedIn(FeatureExtractorExamples.kt:51): "Stoll" <1234789> ◾ to equal: "Dummy" <1234789> ``` @@ -573,7 +573,7 @@ expect(myPerson) .feature { f(it::fullName) } // not evaluated anymore, subject String afterwards .toStartWith("rob") // not evaluated anymore ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L68)[Output](#ex-property-methods-single) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L57)[Output](#ex-property-methods-single) ```text I expected subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.FeatureExtractorExamples.Person <1234789>) @@ -616,7 +616,7 @@ expect(myPerson) { // forms an expectation-group feature { f(it::lastName) }.toEqual("Dummy") } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L77)[Output](#ex-property-methods-group) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L66)[Output](#ex-property-methods-group) ```text I expected subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.FeatureExtractorExamples.Person <1234789>) @@ -665,7 +665,7 @@ expect(myPerson) .toEqual("Robert aka. Stoll") // fails .toStartWith("llotS") // not evaluated anymore ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L92)[Output](#ex-methods-args) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L81)[Output](#ex-methods-args) ```text I expected subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.FeatureExtractorExamples.Person <1234789>) @@ -707,7 +707,7 @@ expect(myFamily) .feature("the first member's name") { members.first().name } // subject narrowed to String .toEqual("Peter") ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L110)[Output](#ex-arbitrary-features) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L99)[Output](#ex-arbitrary-features) ```text I expected subject: Family(members=[FamilyMember(name=Robert)]) (readme.examples.FeatureExtractorExamples.Family <1234789>) @@ -755,7 +755,7 @@ expect(listOf(1 to "a", 2 to "b")).get(10) { firstToBe(1) } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L127)[Output](#ex-within-expectation-functions) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/FeatureExtractorExamples.kt#L116)[Output](#ex-within-expectation-functions) ```text I expected subject: [(1, a), (2, b)] (java.util.Arrays.ArrayList <1234789>) @@ -875,7 +875,7 @@ expect(x).toBeAnInstanceOf { feature { f(it::flag) }.toEqual(false) } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L70)[Output](#ex-type-expectations-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L59)[Output](#ex-type-expectations-1) ```text I expected subject: SubType2(word=hello, flag=true) (readme.examples.SubType2 <1234789>) @@ -899,7 +899,7 @@ expect(x).toBeAnInstanceOf() .feature { f(it::number) } .toEqual(2) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L78)[Output](#ex-type-expectations-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L67)[Output](#ex-type-expectations-2) ```text I expected subject: SubType2(word=hello, flag=true) (readme.examples.SubType2 <1234789>) @@ -929,7 +929,7 @@ Let us look at the case where the subject of the expectation has a [nullable typ val slogan1: String? = "postulating expectations made easy" expect(slogan1).toEqual(null) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L85)[Output](#ex-nullable-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L74)[Output](#ex-nullable-1) ```text I expected subject: "postulating expectations made easy" <1234789> @@ -943,7 +943,7 @@ I expected subject: "postulating expectations made easy" <1234789> val slogan2: String? = null expect(slogan2).toEqual("postulating expectations made easy") ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L90)[Output](#ex-nullable-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L79)[Output](#ex-nullable-2) ```text I expected subject: null @@ -964,7 +964,7 @@ expect(slogan2) // subject has type String? .notToEqualNull() // subject is narrowed to String .toStartWith("atrium") ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L96)[Output](#ex-nullable-3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L85)[Output](#ex-nullable-3) ```text I expected subject: null @@ -981,7 +981,7 @@ one without (example above) and one with `assertionCreator`-lambda (example belo ```kotlin expect(slogan2).notToEqualNull { toStartWith("atrium") } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L102)[Output](#ex-nullable-4) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L91)[Output](#ex-nullable-4) ```text I expected subject: null @@ -1023,7 +1023,7 @@ for further examples. ```kotlin expect(listOf(1, 2, 2, 4)).toContain(2, 3) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L24)[Output](#ex-collection-short-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L13)[Output](#ex-collection-short-1) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1061,7 +1061,7 @@ expect(listOf(1, 2, 2, 4)).toContain( { toBeGreaterThan(2).toBeLessThan(4) } ) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L29)[Output](#ex-collection-short-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L18)[Output](#ex-collection-short-2) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1103,7 +1103,7 @@ expect(listOf(1, 2, 3, 4)).toHaveElementsAndAny { toBeLessThan(0) } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L37)[Output](#ex-collection-any) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L26)[Output](#ex-collection-any) ```text I expected subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1121,7 +1121,7 @@ expect(listOf(1, 2, 3, 4)).toHaveElementsAndNone { toBeGreaterThan(2) } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L44)[Output](#ex-collection-none) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L33)[Output](#ex-collection-none) ```text I expected subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1141,7 +1141,7 @@ expect(listOf(1, 2, 3, 4)).toHaveElementsAndAll { toBeGreaterThan(2) } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L51)[Output](#ex-collection-all) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L40)[Output](#ex-collection-all) ```text I expected subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1171,7 +1171,7 @@ Following on the last section we will start with an `inOrder` example: ```kotlin expect(listOf(1, 2, 2, 4)).toContain.inOrder.only.entries({ toBeLessThan(3) }, { toBeLessThan(2) }) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L58)[Output](#ex-collection-builder-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L47)[Output](#ex-collection-builder-1) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1217,7 +1217,7 @@ expect(listOf(1, 2, 2, 4)).toContainExactly( report = { showOnlyFailingIfMoreExpectedElementsThan(2) } ) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L63)[Output](#ex-collection-reportOptions-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L52)[Output](#ex-collection-reportOptions-1) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1248,7 +1248,7 @@ and we happily answer your question there. ```kotlin expect(listOf(1, 2, 2, 4)).toContain.inOrder.only.values(1, 2, 2, 3, 4) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L73)[Output](#ex-collection-builder-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L62)[Output](#ex-collection-builder-2) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1273,7 +1273,7 @@ I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) ```kotlin expect(listOf(1, 2, 2, 4)).toContain.inAnyOrder.atLeast(1).butAtMost(2).entries({ toBeLessThan(3) }) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L78)[Output](#ex-collection-builder-3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L67)[Output](#ex-collection-builder-3) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1290,7 +1290,7 @@ I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) ```kotlin expect(listOf(1, 2, 2, 4)).toContain.inAnyOrder.only.values(1, 2, 3, 4) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L83)[Output](#ex-collection-builder-4) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L72)[Output](#ex-collection-builder-4) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1309,7 +1309,7 @@ I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) ```kotlin expect(listOf(1, 2, 2, 4)).toContain.inAnyOrder.only.values(4, 3, 2, 2, 1) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L88)[Output](#ex-collection-builder-5) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/CollectionExamples.kt#L77)[Output](#ex-collection-builder-5) ```text I expected subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>) @@ -1343,7 +1343,7 @@ for further examples. ```kotlin expect(mapOf("a" to 1, "b" to 2)).toContain("c" to 2, "a" to 1, "b" to 1) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L26)[Output](#ex-map-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L15)[Output](#ex-map-1) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1367,7 +1367,7 @@ expect(mapOf("a" to 1, "b" to 2)).toContain( KeyValue("b") { toBeLessThan(2) } ) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L31)[Output](#ex-map-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L20)[Output](#ex-map-2) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1389,7 +1389,7 @@ Again both overloads are provided, one for key-value `Pair`s: ```kotlin expect(mapOf("a" to 1, "b" to 2)).toContainOnly("b" to 2) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L40)[Output](#ex-map-only-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L29)[Output](#ex-map-only-1) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1414,7 +1414,7 @@ expect(mapOf("a" to 1, "b" to 2)).toContainOnly( KeyValue("b") { toBeLessThan(2) } ) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L45)[Output](#ex-map-only-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L34)[Output](#ex-map-only-2) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1442,7 +1442,7 @@ again provide two overloads, one expecting key-value `Pair`s: ```kotlin expect(mapOf("a" to 1, "b" to 2)).toContain.inOrder.only.entries("b" to 2, "a" to 1) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L54)[Output](#ex-map-builder-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L43)[Output](#ex-map-builder-1) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1469,7 +1469,7 @@ expect(mapOf("a" to 1, "b" to 2)).toContain.inOrder.only.entries( KeyValue("a") { toBeLessThan(2) }, KeyValue("b") { toBeLessThan(2) }) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L59)[Output](#ex-map-builder-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L48)[Output](#ex-map-builder-2) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1506,7 +1506,7 @@ expect(mapOf("bernstein" to bernstein)) feature { f(it::firstName) }.toEqual("Albert") } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L70)[Output](#ex-map-3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L59)[Output](#ex-map-3) ```text I expected subject: {bernstein=Person(firstName=Leonard, lastName=Bernstein, age=50)} (java.util.Collections.SingletonMap <1234789>) @@ -1526,7 +1526,7 @@ expect(mapOf("a" to 1, "b" to 2)) { values { toHaveElementsAndNone { toBeGreaterThan(1) } } } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L84)[Output](#ex-map-4) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L73)[Output](#ex-map-4) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1562,7 +1562,7 @@ expect(linkedMapOf("a" to 1, "b" to 2)).asEntries().toContain.inOrder.only.entri } ) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L92)[Output](#ex-map-5) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MapExamples.kt#L81)[Output](#ex-map-5) ```text I expected subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>) @@ -1600,7 +1600,7 @@ For example, `toExist` will explain which entry was the first one missing: ```kotlin expect(Paths.get("/usr/bin/noprogram")).toExist() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/PathExamples.kt#L43)[Output](#ex-path-exists) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/PathExamples.kt#L31)[Output](#ex-path-exists) ```text I expected subject: /usr/bin/noprogram (sun.nio.fs.UnixPath <1234789>) @@ -1616,7 +1616,7 @@ Atrium will give details about why something cannot be accessed, for example whe ```kotlin expect(Paths.get("/root/.ssh/config")).toBeWritable() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/PathExamples.kt#L48)[Output](#ex-path-writable) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/PathExamples.kt#L36)[Output](#ex-path-writable) ```text I expected subject: /root/.ssh/config (sun.nio.fs.UnixPath <1234789>) @@ -1639,7 +1639,7 @@ val filePointer = Files.createSymbolicLink(directory.resolve("directory"), file) expect(filePointer.resolve("subfolder/file")).toBeARegularFile() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/PathExamples.kt#L53)[Output](#ex-path-symlink-and-parent-not-folder) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/PathExamples.kt#L41)[Output](#ex-path-symlink-and-parent-not-folder) ```text I expected subject: /tmp/atrium-path/directory/subfolder/file (sun.nio.fs.UnixPath <1234789>) @@ -1663,7 +1663,7 @@ expect("filename?") notToContain("?") } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L107)[Output](#ex-because-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L96)[Output](#ex-because-1) ```text I expected subject: "filename?" <1234789> @@ -1724,7 +1724,7 @@ expect(listOf(1, 2, 3, -1)).toHaveElementsAndAll { } } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L35)[Output](#ex-third-party-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L24)[Output](#ex-third-party-1) ```text I expected subject: [1, 2, 3, -1] (java.util.Arrays.ArrayList <1234789>) @@ -1757,7 +1757,7 @@ fun Expect.notToBeNegative() = expect(-10).notToBeNegative() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L45)[Output](#ex-third-party-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L34)[Output](#ex-third-party-2) ```text I expected subject: -10 (kotlin.Int <1234789>) @@ -1770,10 +1770,10 @@ to be greater than or equal to: 0 " <1234789> » stacktrace: - ⚬ readme.examples.ThirdPartyExamples$ex-third-party-2$notToBeNegative$1.invoke(ThirdPartyExamples.kt:49) - ⚬ readme.examples.ThirdPartyExamples$ex-third-party-2$notToBeNegative$1.invoke(ThirdPartyExamples.kt:47) - ⚬ readme.examples.ThirdPartyExamples.ex_third_party_2$notToBeNegative(ThirdPartyExamples.kt:47) - ⚬ readme.examples.ThirdPartyExamples.ex-third-party-2(ThirdPartyExamples.kt:59) + ⚬ readme.examples.ThirdPartyExamples$ex-third-party-2$notToBeNegative$1.invoke(ThirdPartyExamples.kt:38) + ⚬ readme.examples.ThirdPartyExamples$ex-third-party-2$notToBeNegative$1.invoke(ThirdPartyExamples.kt:36) + ⚬ readme.examples.ThirdPartyExamples.ex_third_party_2$notToBeNegative(ThirdPartyExamples.kt:36) + ⚬ readme.examples.ThirdPartyExamples.ex-third-party-2(ThirdPartyExamples.kt:48) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ⚬ java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) @@ -1805,7 +1805,7 @@ fun Expect.notToBeNegative() = expect(-10).notToBeNegative() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L63)[Output](#ex-third-party-3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L52)[Output](#ex-third-party-3) ```text I expected subject: -10 (kotlin.Int <1234789>) @@ -1845,7 +1845,7 @@ expectGrouped { } } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L31)[Output](#ex-data-driven-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L20)[Output](#ex-data-driven-1) ```text my expectations: @@ -1888,7 +1888,7 @@ expectGrouped { } } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L48)[Output](#ex-data-driven-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L37)[Output](#ex-data-driven-2) ```text my expectations: @@ -1933,7 +1933,7 @@ expectGrouped { } } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L87)[Output](#ex-data-driven-nesting) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L76)[Output](#ex-data-driven-nesting) ```text my expectations: @@ -1980,7 +1980,7 @@ expectGrouped { } } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L67)[Output](#ex-data-driven-3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/DataDrivenExamples.kt#L56)[Output](#ex-data-driven-3) ```text my expectations: @@ -2099,7 +2099,7 @@ expect { } }.toThrow { messageToContain("no no no") } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L123)[Output](#ex-add-info-3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L112)[Output](#ex-add-info-3) ```text I expected subject: () -> kotlin.Nothing (readme.examples.MostExamples$ex-add-info-3$1 <1234789>) @@ -2113,9 +2113,9 @@ I expected subject: () -> kotlin.Nothing (readme.examples.MostExamples$ex ℹ Properties of the unexpected IllegalArgumentException » message: "no no no..." <1234789> » stacktrace: - ⚬ readme.examples.MostExamples$ex-add-info-3$1.invoke(MostExamples.kt:128) - ⚬ readme.examples.MostExamples$ex-add-info-3$1.invoke(MostExamples.kt:124) - ⚬ readme.examples.MostExamples.ex-add-info-3(MostExamples.kt:159) + ⚬ readme.examples.MostExamples$ex-add-info-3$1.invoke(MostExamples.kt:117) + ⚬ readme.examples.MostExamples$ex-add-info-3$1.invoke(MostExamples.kt:113) + ⚬ readme.examples.MostExamples.ex-add-info-3(MostExamples.kt:148) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ⚬ java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) @@ -2123,7 +2123,7 @@ I expected subject: () -> kotlin.Nothing (readme.examples.MostExamples$ex » cause: java.lang.UnsupportedOperationException » message: "not supported" <1234789> » stacktrace: - ⚬ readme.examples.MostExamples$ex-add-info-3$1.invoke(MostExamples.kt:126) + ⚬ readme.examples.MostExamples$ex-add-info-3$1.invoke(MostExamples.kt:115) ``` @@ -2144,7 +2144,7 @@ then Atrium reminds us of the possible pitfall. For instance: ```kotlin expect(BigDecimal.TEN).toEqualIncludingScale(BigDecimal("10.0")) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L134)[Output](#ex-pitfall-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L123)[Output](#ex-pitfall-1) ```text I expected subject: 10 (java.math.BigDecimal <1234789>) @@ -2162,7 +2162,7 @@ For instance: ```kotlin expect(listOf(1)).get(0) {} ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L138)[Output](#ex-pitfall-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/MostExamples.kt#L127)[Output](#ex-pitfall-2) ```text I expected subject: [1] (java.util.Collections.SingletonList <1234789>) @@ -2225,7 +2225,7 @@ and its usage: ```kotlin expect(12).toBeAMultipleOf(5) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L45)[Output](#ex-own-boolean-1) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L33)[Output](#ex-own-boolean-1) ```text I expected subject: 12 (kotlin.Int <1234789>) @@ -2273,7 +2273,7 @@ Its usage looks then as follows: ```kotlin expect(13).toBeEven() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L60)[Output](#ex-own-boolean-2) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L48)[Output](#ex-own-boolean-2) ```text I expected subject: 13 (kotlin.Int <1234789>) @@ -2302,7 +2302,7 @@ fun Expect.toComplyValidation() = expect(MyDomainModel(alpha1 = 1204)).toComplyValidation() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L90)[Output](#ex-third-party-10) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/ThirdPartyExamples.kt#L79)[Output](#ex-third-party-10) ```text I expected subject: MyDomainModel(alpha1=1204) (readme.examples.ThirdPartyExamples.MyDomainModel <1234789>) @@ -2310,11 +2310,11 @@ I expected subject: MyDomainModel(alpha1=1204) (readme.examples.ThirdPart ℹ Properties of the unexpected IllegalStateException » message: "threshold value for alpha1 exceeded, expected <= 1000, was 1204" <1234789> » stacktrace: - ⚬ readme.examples.ThirdPartyExamples.validateMaxThreshold(ThirdPartyExamples.kt:86) - ⚬ readme.examples.ThirdPartyExamples$ex-third-party-10$toComplyValidation$1.invoke(ThirdPartyExamples.kt:94) - ⚬ readme.examples.ThirdPartyExamples$ex-third-party-10$toComplyValidation$1.invoke(ThirdPartyExamples.kt:92) - ⚬ readme.examples.ThirdPartyExamples.ex_third_party_10$toComplyValidation(ThirdPartyExamples.kt:92) - ⚬ readme.examples.ThirdPartyExamples.ex-third-party-10(ThirdPartyExamples.kt:98) + ⚬ readme.examples.ThirdPartyExamples.validateMaxThreshold(ThirdPartyExamples.kt:75) + ⚬ readme.examples.ThirdPartyExamples$ex-third-party-10$toComplyValidation$1.invoke(ThirdPartyExamples.kt:83) + ⚬ readme.examples.ThirdPartyExamples$ex-third-party-10$toComplyValidation$1.invoke(ThirdPartyExamples.kt:81) + ⚬ readme.examples.ThirdPartyExamples.ex_third_party_10$toComplyValidation(ThirdPartyExamples.kt:81) + ⚬ readme.examples.ThirdPartyExamples.ex-third-party-10(ThirdPartyExamples.kt:87) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ⚬ java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ⚬ java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) @@ -2409,7 +2409,7 @@ Its usage is then as follows: expect(Person("Susanne", "Whitley", 43, emptyList())) .toHaveNumberOfChildren(2) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L79)[Output](#ex-own-compose-3) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L67)[Output](#ex-own-compose-3) ```text I expected subject: Person(firstName=Susanne, lastName=Whitley, age=43, children=[]) (readme.examples.Person <1234789>) @@ -2445,7 +2445,7 @@ I.e. it fails for a `Person` with 0 children, because such a person does not hav expect(Person("Susanne", "Whitley", 43, emptyList())) .toHaveAdultChildren() ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L98)[Output](#ex-own-compose-4) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L86)[Output](#ex-own-compose-4) ```text I expected subject: Person(firstName=Susanne, lastName=Whitley, age=43, children=[]) (readme.examples.Person <1234789>) @@ -2491,7 +2491,7 @@ expect(Person("Susanne", "Whitley", 43, listOf(Person("Petra", "Whitley", 12, em feature { f(it::age) }.toBeGreaterThan(18) } ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L109)[Output](#ex-own-compose-5) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationFunctions.kt#L97)[Output](#ex-own-compose-5) ```text I expected subject: Person(firstName=Susanne, lastName=Whitley, age=43, children=[Person(firstName=Petra, lastName=Whitley, age=12, children=[])]) (readme.examples.Person <1234789>) @@ -2672,7 +2672,7 @@ Following an example using the expectation verb ```kotlin expect(10).toEqual(9) ``` -↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationVerb.kt#L52)[Output](#ex-own-expectation-verb) +↑ [Example](https://github.com/robstoll/atrium/tree/main/misc/tools/readme-examples/src/main/kotlin/readme/examples/OwnExpectationVerb.kt#L40)[Output](#ex-own-expectation-verb) ```text expected the subject: