clojure.test 失败的输出中的圆括号是什么意思?
What do round brackets mean in the output of clojure.test failures?
我的一个测试中有以下输出:
Assertion failed:
Expected :[[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] ["seq07"] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []]
Actual :[() () () () () () () () () () () () () () () () () () () () () () () () () () ("seq07") () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()]
此输出中的 ()
和 ("seq07")
是什么意思?
()
是列表的表示法,而 []
是向量的表示法
()
是一个空列表,("seq07")
是一个包含单个成员的列表 - 字符串 seq07
您可以阅读有关 Clojure 列表的更多信息here
编辑:刚刚发现这个interesting SO question关于列表与向量
如另一个答案所述,()
是一个空列表,[]
是一个空向量。
但是请注意,=
比较列表和向量的内容,它会忽略容器的类型:
(= '("seq07") ["seq07"]) ;; => true
(= '(()) [[]]) ;; => true
问题中的断言失败是由于 actual
向量的元素少于 expected
向量:
(= ['("seq07")] ['("seq07") '()]) ;; => false
我的一个测试中有以下输出:
Assertion failed:
Expected :[[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] ["seq07"] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []]
Actual :[() () () () () () () () () () () () () () () () () () () () () () () () () () ("seq07") () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()]
此输出中的 ()
和 ("seq07")
是什么意思?
()
是列表的表示法,而 []
是向量的表示法
()
是一个空列表,("seq07")
是一个包含单个成员的列表 - 字符串 seq07
您可以阅读有关 Clojure 列表的更多信息here
编辑:刚刚发现这个interesting SO question关于列表与向量
如另一个答案所述,()
是一个空列表,[]
是一个空向量。
但是请注意,=
比较列表和向量的内容,它会忽略容器的类型:
(= '("seq07") ["seq07"]) ;; => true
(= '(()) [[]]) ;; => true
问题中的断言失败是由于 actual
向量的元素少于 expected
向量:
(= ['("seq07")] ['("seq07") '()]) ;; => false