Список равенства с использованием комбинаторов парсера - PullRequest
1 голос
/ 13 июля 2011

Я получил код разбора Scala CSV отсюда:

Использование комбинатора синтаксического анализатора Scala для анализа файлов CSV

А потом я попытался написать для него базовый тест:

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

И это не удалось, с сообщением:

java.lang.AssertionError: ожидается: scala.collection.immutable. $ Colon $ двоеточие, но было: scala.collection.immutable. $ Colon $ colon

Есть идеи? Выходные данные из CSV.parse - это пустой List [List [String]], но, похоже, он имеет хэш-код, отличный от List (Nil) или ListList [String] и т. Д. Я не могу найти какой-либо способ составить список, который равно выходу 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())>

1 Ответ

2 голосов
/ 13 июля 2011

Отредактировано: Я попробовал парсер, который вы указали в ссылке:

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

Так что, очевидно, он возвращает не список с пустым списком, а список сСписок с пустой строкой.Так что ваш тест должен провалиться.

...