From 081780006503d1f0e0dd6e65fe9e410688071b47 Mon Sep 17 00:00:00 2001 From: Josh Suereth Date: Mon, 11 Aug 2014 14:54:33 -0400 Subject: [PATCH] Fixes flaky no-such-element exception from bad generation of random tests. --- util/collection/src/test/scala/SettingsTest.scala | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/util/collection/src/test/scala/SettingsTest.scala b/util/collection/src/test/scala/SettingsTest.scala index fb5511c99..2f3d9d4ae 100644 --- a/util/collection/src/test/scala/SettingsTest.scala +++ b/util/collection/src/test/scala/SettingsTest.scala @@ -41,10 +41,11 @@ object SettingsTest extends Properties("settings") { final def derivedSettings(nr: Int): Prop = { val genScopedKeys = { - val attrKeys = mkAttrKeys[Int](nr) + val attrKeys = mkAttrKeys[Int](nr).filter(!_.isEmpty) attrKeys map (_ map (ak => ScopedKey(Scope(0), ak))) - } + }.label("scopedKeys") forAll(genScopedKeys) { scopedKeys => + // Note; It's evil to grab last IF you haven't verified the set can't be empty. val last = scopedKeys.last val derivedSettings: Seq[Setting[Int]] = ( for { @@ -65,10 +66,10 @@ object SettingsTest extends Properties("settings") { val nonEmptyAlphaStr = nonEmptyListOf(alphaChar).map(_.mkString).suchThat(_.forall(_.isLetter)) - for { + (for { list <- Gen.listOfN(nr, nonEmptyAlphaStr) suchThat (l => l.size == l.distinct.size) item <- list - } yield AttributeKey[T](item) + } yield AttributeKey[T](item)).label(s"mkAttrKeys($nr)") } property("Derived setting(s) replace DerivedSetting in the Seq[Setting[_]]") = derivedKeepsPosition