使用解析器组合器列出相等性

时间:2011-07-13 15:26:43

标签: scala parser-combinators

我从这里抓取了一些Scala CSV解析代码:

Use Scala parser combinator to parse CSV files

然后我尝试为它编写基本测试:

assertEquals(List(List()), CSV.parse(""))

这会失败,并显示消息:

java.lang.AssertionError:expected:scala.collection.immutable。$ colon $ colon但是:scala.collection.immutable。$ colon $ colon

有什么想法吗? CSV.parse的输出是一个空List [List [String]],但似乎有一个不同于List(Nil)或ListList [String]等的hashCode。我似乎无法找到任何方法来组成一个列表等于CSV.parse(“”)的输出。

更新

以下是使用REPL的失败:

scala> assertEquals(List(Nil), CSV.parse("")) 
java.lang.AssertionError: expected: scala.collection.immutable.$colon$colon<List(List())> but was: scala.collection.immutable.$colon$colon<List(List())>

1 个答案:

答案 0 :(得分:2)

编辑:我尝试了您在链接中提供的解析器:

scala> CSV.parse("")
res7: List[List[String]] = List(List(""))

显然,它不会返回带有空List的List,而是返回带有空字符串的List的List。所以你的测试应该失败。