lean2/src/emacs/test/lean-cmd-test.el
2014-10-02 17:30:03 -07:00

134 lines
6.1 KiB
EmacsLisp

;; Copyright (c) 2014 Microsoft Corporation. All rights reserved.
;; Released under Apache 2.0 license as described in the file LICENSE.
;;
;; Author: Soonho Kong
;;
(require 'ert)
(require 'lean-cmd)
(ert-deftest lean-test-cmd-get ()
"Test lean-cmd-*-get-*"
(should (string= (lean-cmd-load-get-file-name (lean-cmd-load "nat.lean"))
"nat.lean"))
(should (string= (lean-cmd-visit-get-file-name (lean-cmd-visit "nat.lean"))
"nat.lean"))
(should (string=
(lean-cmd-load-get-file-name (lean-cmd-load "library/standard/bool.lean"))
"library/standard/bool.lean"))
(should (string=
(lean-cmd-load-get-file-name (lean-cmd-load "~/work/lean/basic.lean"))
"~/work/lean/basic.lean"))
(should (string=
(lean-cmd-visit-get-file-name (lean-cmd-visit "library/standard/bool.lean"))
"library/standard/bool.lean"))
(should (string=
(lean-cmd-visit-get-file-name (lean-cmd-visit "~/work/lean/basic.lean"))
"~/work/lean/basic.lean"))
(should (= (lean-cmd-replace-get-line-number
(lean-cmd-replace 34 "∀ (n : nat), ne (succ n) zero"))
34))
(should (string= (lean-cmd-replace-get-line
(lean-cmd-replace 34 "∀ (n : nat), ne (succ n) zero"))
"∀ (n : nat), ne (succ n) zero"))
(should (= (lean-cmd-insert-get-line-number
(lean-cmd-insert 34 "∀ (n : nat), ne (succ n) zero"))
34))
(should (string= (lean-cmd-insert-get-line
(lean-cmd-insert 34 "∀ (n : nat), ne (succ n) zero"))
"∀ (n : nat), ne (succ n) zero"))
(should (= (lean-cmd-insert-get-line-number (lean-cmd-remove 34))
34))
(should (= (lean-cmd-info-get-line-number (lean-cmd-info 34))
34))
(should (= (lean-cmd-info-get-column-number (lean-cmd-info 34 11))
11))
(should (= (lean-cmd-check-get-line-number
(lean-cmd-check 34 "∀ (n : nat), ne (succ n) zero"))
34))
(should (string= (lean-cmd-check-get-line
(lean-cmd-replace 34 "∀ (n : nat), ne (succ n) zero"))
"∀ (n : nat), ne (succ n) zero"))
(should (string= (lean-cmd-set-get-option-name
(lean-cmd-set "pp.implicit" "true"))
"pp.implicit"))
(should (string= (lean-cmd-set-get-option-value
(lean-cmd-set "pp.implicit" "true"))
"true"))
(should (string= (lean-cmd-eval-get-lean-cmd
(lean-cmd-eval "print 3"))
"print 3"))
(should (= (lean-cmd-findp-get-line-number
(lean-cmd-findp 10 "iff_"))
10))
(should (string= (lean-cmd-findp-get-prefix
(lean-cmd-findp 10 "iff_"))
"iff_"))
(should (= (lean-cmd-findg-get-line-number
(lean-cmd-findg 48 10 "+intro -and -elim"))
48))
(should (= (lean-cmd-findg-get-column-number
(lean-cmd-findg 48 10 "+intro -and -elim"))
10))
(should (string= (lean-cmd-findg-get-patterns
(lean-cmd-findg 48 10 "+intro -and -elim"))
"+intro -and -elim"))
(should (= (lean-cmd-sync-get-num-lines
(lean-cmd-sync '("line 1"
"line 2"
"line 3")))
3))
(should (equal (lean-cmd-sync-get-lines
(lean-cmd-sync '("line 1"
"line 2"
"line 3")))
'("line 1"
"line 2"
"line 3"))))
(ert-deftest lean-test-cmd-to-string ()
"Test lean-cmd-to-string"
(should (string= (lean-cmd-to-string (lean-cmd-load "~/work/lean/basic.lean"))
(concat "LOAD " (expand-file-name "~/work/lean/basic.lean"))))
(should (string= (lean-cmd-to-string (lean-cmd-visit "~/work/lean/basic.lean"))
(concat "VISIT " (expand-file-name "~/work/lean/basic.lean"))))
(should (string= (lean-cmd-to-string (lean-cmd-replace 42 "∀ (n : nat), ne (succ n) zero"))
(concat "REPLACE 42" "\n" "∀ (n : nat), ne (succ n) zero")))
(should (string= (lean-cmd-to-string (lean-cmd-insert 42 "∀ (n : nat), ne (succ n) zero"))
(concat "INSERT 42" "\n" "∀ (n : nat), ne (succ n) zero")))
(should (string= (lean-cmd-to-string (lean-cmd-remove 42))
(concat "REMOVE 42")))
(should (string= (lean-cmd-to-string (lean-cmd-info 42))
(concat "INFO 42")))
(should (string= (lean-cmd-to-string (lean-cmd-info 42 11))
(concat "INFO 42 11")))
(should (string= (lean-cmd-to-string (lean-cmd-check 42 "∀ (n : nat), ne (succ n) zero"))
(concat "CHECK 42" "\n" "∀ (n : nat), ne (succ n) zero")))
(should (string= (lean-cmd-to-string (lean-cmd-set "pp.implicit" "true"))
(concat "SET" "\n" "pp.implicit true" )))
(should (string= (lean-cmd-to-string (lean-cmd-eval "check 3"))
(concat "EVAL" "\n" "check 3" )))
(should (string= (lean-cmd-to-string (lean-cmd-options))
(concat "OPTIONS")))
(should (string= (lean-cmd-to-string (lean-cmd-clear-cache))
(concat "CLEAR_CACHE")))
(should (string= (lean-cmd-to-string (lean-cmd-show))
(concat "SHOW")))
(should (string= (lean-cmd-to-string (lean-cmd-valid))
(concat "VALID")))
(should (string= (lean-cmd-to-string (lean-cmd-findp 42 "iff_"))
(concat "FINDP 42" "\n" "iff_")))
(should (string= (lean-cmd-to-string (lean-cmd-findg 48 10 "+intro -and -elim"))
(concat "FINDG 48 10" "\n" "+intro -and -elim")))
(should (string= (lean-cmd-to-string (lean-cmd-wait))
(concat "WAIT")))
(should (string= (lean-cmd-to-string (lean-cmd-sync '("line 1"
"line 2"
"line 3")))
(concat "SYNC 3\n"
"line 1\n"
"line 2\n"
"line 3"))))