                             (let [surface (morph expr)
                                   parsed (reduce concat (map :parses (parse surface)))]
                               (if (not (empty? parsed))
-                                (log/info (str "parse OK:" surface))
-                                (log/error (str "parse failed: " surface)))
+                                (log/info (str "roundtrip-present: " surface))
+                                (log/error (str "parse failed: " surface ": italiano:"
+                                                (dag_unify.core/strip-refs
+                                                 (get-in expr
+                                                         [:italiano])))))
                               (is (not (empty? parsed)))))
                           expressions))))))
 

                                  parsed (reduce concat (map :parses
                                                             (parse surface (np-grammar))))]
                              (if (not (empty? parsed))
                                (log/info (str "parse OK:" surface))
                                (log/error (str "parse failed: " surface)))
                              (is (not (empty? parsed)))))
                          expressions))))))

    (is (or (= "il gatto rosso si è alzato"
               (morph (first result)))
            (= "il rosso gatto si è alzato"
               (morph (first result))))))
  (log/info (str "ending test: the-red-cat-woke-up")))
            
;; tricky tokenization of 'la sua' and 'la loro' as lexemes.
(deftest parsing
