Skip to content

Commit 74b5ae6

Browse files
committed
Merge branch 'mossprescott-more-ASCII'
2 parents 81c4395 + b630aa7 commit 74b5ae6

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

CHANGELOG/0.2.2.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- improve coverage of ASCII characters in Path generators

scalacheck/src/main/scala/pathy/scalacheck/RandomSeg.scala

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,24 @@ import org.scalacheck.Gen
2222

2323
import scalaz.Show
2424

25+
/** Newtype for path segment strings with a generator that produces mostly
26+
* alphanumeric, then any printable ASCII char, with slightly more `.` and `/`
27+
* characters (because they tend to be problematic for encoders), and finally
28+
* an occasional char from anywhere in Unicode. */
2529
private[scalacheck] final case class RandomSeg(str: String) extends AnyVal
2630

2731
private[scalacheck] object RandomSeg {
28-
implicit val randomSegArbitrary: Arbitrary[RandomSeg] =
32+
implicit val arbitrary: Arbitrary[RandomSeg] =
2933
Arbitrary {
3034
Gen.nonEmptyListOf(Gen.frequency(
31-
100 -> Gen.alphaNumChar,
32-
10 -> Gen.const('.'),
33-
10 -> Gen.const('/'),
34-
5 -> Arbitrary.arbitrary[Char]
35+
50 -> Gen.alphaChar,
36+
25 -> Gen.choose(MinPrintableASCII, MaxPrintableASCII),
37+
10 -> Gen.const('.'),
38+
10 -> Gen.const('/'),
39+
5 -> Arbitrary.arbitrary[Char]
3540
)) map (cs => RandomSeg(cs.mkString))
3641
}
3742

38-
implicit val randomSegShow: Show[RandomSeg] =
43+
implicit val show: Show[RandomSeg] =
3944
Show.shows(_.str)
4045
}

scalacheck/src/main/scala/pathy/scalacheck/package.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,7 @@ package object scalacheck {
5757
t <- Gen.resize(r, sizeDistributedListOfNonEmpty(g))
5858
} yield (h :: t)
5959
}
60+
61+
val MinPrintableASCII = '\u0020'
62+
val MaxPrintableASCII = '\u007e'
6063
}

version.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version in ThisBuild := "0.2.1"
1+
version in ThisBuild := "0.2.2"

0 commit comments

Comments
 (0)