Ho questo (not (some #(= (:length %1) 0) %))
come post-condizione. Scritto in questo modo è abbastanza chiaro, ma quando questa condizione non viene soddisfatta ottengo questo:Posso includere un messaggio in pre e post-condizioni
Assert failed: (not (some (fn* [p1__17852#] (= (:length p1__17852#) 0)) %))
Quale non è molto leggibile. C'è un modo per definire il messaggio per una postcondizione o per una precondizione?
Edit 1:
seguito noahlz e suggestione noisesmiths, (ma utilizzando una funzione denominata esterna):
(defn not-zero-length
[evseq]
(not (some (fn [item] (= (:length item) 0)) evseq)))
(defn my-func
[evseq]
{:post [(not-zero-length %)]}
evseq)
(my-func '({:length 3}{:length 0}))
dà:
AssertionError Assert failed: (not-zero-length %)
Che è alot più chiara.
Quel filo è di due anni e mezzo di età, e non è stato commentato da chiunque con qualsiasi potere decisionale. Non direi che questa funzione è stata considerata per l'inclusione. – amalloy
Sembra che la soluzione non sia l'uso di nomi di funzioni più descrittivi nei propri asserti (non funzioni inline). – noahlz
Risposta aggiornata per riflettere cosa ha notato amalloy. –