   {:en (morph expr)
    :subj (get-in expr [:synsem :sem :subj :pred])
    :pred (get-in expr [:synsem :sem :pred])
+   :tense (get-in expr [:synsem :sem :tense])
+   :infl (get-in expr [:synsem :infl])
+   :aspect (get-in expr [:synsem :sem :aspect])
    :obj (get-in expr [:synsem :sem :obj :pred])})
 
 (deftest generate-irregular-present-1


(deftest furniture-sentence
  (let [expr (generate {:modified false
                        :comp {:synsem {:agr {:person :3rd}}}
                        :synsem {:cat :verb
                                 :sem {:aspect :progressive
                                       :obj {:pred :table
                                             :mod '()
                                             :number :sing
                                             :spec {:def :def
                                                    :pred :definite}}
                                       :pred :in-front-of
                                       :subj {:pred :chair
                                              :mod '()
                                              :number :sing
                                              :spec {:def :def
                                                     :pred :definite}}
                                       :tense :present}}})]
    (log/info (str "furniture-sentence: " 
                   (display-expression expr)))


              (= surface-form
                 "you all used to go downstairs"))))))

(deftest present-tense-parse
  (let [parses (parse "she sleeps")]
    (is (not (empty? parses)))
    (is (= (get-in (first parses) [:synsem :sem :tense])
           :present))))

(deftest future-tense-parse
  (let [parses (parse "he will speak")]
    (is (not (empty? parses)))
    (is (= (get-in (first parses) [:synsem :sem :tense])
           :future))))

(deftest conditional-parse
  (is (not (empty? (parse "she would speak")))))

(deftest imperfect-parse
  (let [parses (parse "she used to speak")]
    (is (not (empty? parses)))
    (is (= (get-in (first parses) [:synsem :sem :tense])
           :past))
    (is (= (get-in (first parses) [:synsem :sem :aspect])
           :progressive)))
  (let [parses (parse "she was loving")]
    (is (not (empty? parses)))
    (is (= (get-in (first parses) [:synsem :sem :tense])
           :past))
    (is (= (get-in (first parses) [:synsem :sem :aspect])
           :progressive)))
  (let [parses (parse "she was speaking")]
    (is (not (empty? parses)))
    (is (= (get-in (first parses) [:synsem :sem :tense])
           :past))
    (is (= (get-in (first parses) [:synsem :sem :aspect])
           :progressive))))

(deftest parse-with-gender-symbols
  (is (not (empty? (parse "I (♀) speak"))))
