scala-exercises / exercises-cats

Scala Exercises' lessons for the Cats library
Apache License 2.0
107 stars 100 forks source link

Foldable[T].traverse_ exercises accepts wrong answer as correct #62

Open Fabs opened 6 years ago

Fabs commented 6 years ago

On the exercise of Foldable traverse, it accepts a wrong answer as proper:

import cats.implicits._

def parseInt(s: String): Option[Int] =
  Either.catchOnly[NumberFormatException](s.toInt).toOption

Foldable[List].traverse_(List("1", "2", "3"))(parseInt) should be(Some(42))

Since traverse_ returns G[Unit], correct answer should be Some(()). But it is accepting Some of anything. Maybe it is even a bug on scalatest since on a workspace:

Foldable[List].traverse_(List("1", "2"))(parseInt) == Some(())
Foldable[List].traverse_(List("1", "2"))(parseInt) == Some(42)

Outputs:

true
false

image

FRosner commented 6 years ago

This also applies to the last Traversable exercise:

image