2011-07-13 74 views
1

我抓起一些Scala的CSV解析代碼從這裏:列表平等

Use Scala parser combinator to parse CSV files

然後我試着寫了它的基本測試:

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

這失敗,帶消息:

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

任何想法? CSV.parse的輸出是一個空List [List [String]],但似乎有一個不同於List(Nil)或ListList [String]等的hashCode。我似乎無法找到任何方式來組成一個列表,它是等於CSV.parse(「」)的輸出。

UPDATE:

這裏是失敗使用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())> 

回答

2

編輯:我想你的鏈接提供的解析器:

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

因此很明顯,它不返回帶有空列表的列表,而是帶有空字符串的帶列表的列表。所以你的測試應該失敗。

+0

是的,試過了。 –

+0

好,趕快,謝謝,多數民衆贊成它。令我困惑的是,println(List(List)(「」))和println(List [List [String]](Nil))具有相同的輸出,所以在我的println調用中,以及在JUnit失敗中,兩邊的值相同 –

+0

我還沒有理解REPL如何顯示與toString不同的輸出。 –