[stdlib] Improve EnumEntries

* Provide short-circuit methods for contract "EnumEntries contains all
  enum entries"
* Make EnumEntries serializable
* Introduce more convenient overload for other backends

#KT-53152


Merge-request: KT-MR-6867
Merged-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>
This commit is contained in:
Vsevolod Tolstopyatov
2022-08-22 16:50:28 +00:00
committed by Space
parent cc00dcc038
commit 5054e301be
10 changed files with 209 additions and 21 deletions
@@ -24,6 +24,18 @@ public fun <T> CompareContext<List<T>>.listBehavior() {
propertyEquals { indexOf(elementAtOrNull(0)) }
propertyEquals { lastIndexOf(elementAtOrNull(0)) }
for (element in expected) {
propertyEquals { this.indexOf(element) }
propertyEquals { this.lastIndexOf(element) }
}
val nonExisting = object {}
propertyEquals { this.indexOf(nonExisting as Any?) }
propertyEquals { this.lastIndexOf(nonExisting as Any?) }
propertyEquals { this.indexOf(null as Any?) }
propertyEquals { this.lastIndexOf(null as Any?) }
propertyFails { subList(0, size + 1) }
propertyFails { subList(-1, 0) }
propertyEquals { subList(0, size) }