summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/pdf-sync.ert50
-rw-r--r--test/pdf-util.ert44
2 files changed, 94 insertions, 0 deletions
diff --git a/test/pdf-sync.ert b/test/pdf-sync.ert
new file mode 100644
index 0000000..544f99b
--- /dev/null
+++ b/test/pdf-sync.ert
@@ -0,0 +1,50 @@
+
+
+;; * ================================================================== *
+;; * Tests for pdf-sync.el
+;; * ================================================================== *
+
+(require 'ert)
+(require 'pdf-sync)
+
+(ert-deftest pdf-sync-backward--source-strip-comments ()
+ (should-not (cl-remove-if
+ (lambda (ch)
+ (memq ch '(?\\ ?\s ?\n)))
+ (append (pdf-sync-backward--source-strip-comments
+ (concat "%comment\n"
+ " %comment\n"
+ "\\\\%comment\n"
+ "\\\\ %comment\n"
+ " \\\\ %comment\n"
+ " \\\\%comment\n"))
+ nil)))
+ (let ((source (concat "\\%comment\n"
+ " \\%comment\n"
+ "\\ %comment\n"
+ " \\ %comment\n"
+ " \\%comment\n")))
+ (should (equal (pdf-sync-backward--source-strip-comments source)
+ source))))
+
+(ert-deftest pdf-sync-backward--get-text-context ()
+ (pdf-test-with-test-pdf
+ (should (= 3 (length (pdf-sync-backward--get-text-context 1 0.5 0.25))))
+ ;; Empty page
+ (should (equal '(-1 0 nil)
+ (pdf-sync-backward--get-text-context 6 0.5 0.5)))))
+
+(ert-deftest pdf-sync-backward--get-source-context ()
+ (with-temp-buffer
+ (should-not (pdf-sync-backward--get-source-context))
+ (insert "\\begin{foo}\nsource\n\\end{foo}")
+ (should (cl-every 'stringp (pdf-sync-backward--get-source-context)))))
+
+(ert-deftest pdf-sync-backward--find-position ()
+ (let ((context '(3 2 ("000" "1111" "222222" "333333" "4444" "55555")))
+ (prefix "000 XXXX 222222 YYYY 333")
+ (suffix "333 4444 XXXX"))
+ (with-temp-buffer
+ (insert prefix suffix)
+ (should (progn (pdf-sync-backward--find-position 1 -1 context)
+ (eq (length prefix) (point)))))))
diff --git a/test/pdf-util.ert b/test/pdf-util.ert
new file mode 100644
index 0000000..2136e45
--- /dev/null
+++ b/test/pdf-util.ert
@@ -0,0 +1,44 @@
+
+
+;; * ================================================================== *
+;; * Tests for pdf-util.el
+;; * ================================================================== *
+
+(require 'ert)
+
+(ert-deftest pdf-util-seq-alignment ()
+ (let ((s1 '(?a ?b ?c))
+ (s2 '(?a ?b ?c ?d))
+ (s3 '(-1 ?a ?b ?c))
+ (s4 '(?e ?f ?g))
+ (s5 '(?A ?B ?C))
+ (s6 '(?b)))
+ (should (equal '(2 . ((?a . ?a) (?b . ?b) (?c . ?c) (nil . ?d)))
+ (pdf-util-seq-alignment s1 s2)))
+
+ (should (equal '(3 . ((?a . ?a) (?b . ?b) (?c . ?c) (nil . ?d)))
+ (pdf-util-seq-alignment s1 s2 nil 'prefix)))
+
+ (should (equal '(3 . ((nil . -1) (?a . ?a) (?b . ?b) (?c . ?c)))
+ (pdf-util-seq-alignment s1 s3 nil 'suffix)))
+
+ (should (equal '(3 . ((nil . -1) (?a . ?a) (?b . ?b) (?c . ?c)))
+ (pdf-util-seq-alignment s1 s3 nil 'infix)))
+
+ (should (equal '(1 . ((nil . ?a) (?b . ?b) (nil . ?c)))
+ (pdf-util-seq-alignment s6 s1 nil 'infix)))
+
+ (should (equal '(-3 . ((?a . ?e) (?b . ?f) (?c . ?g)))
+ (pdf-util-seq-alignment s1 s4 nil)))
+
+ (should (equal '(3 . ((?a . ?e) (?b . ?f) (?c . ?g)))
+ (pdf-util-seq-alignment
+ s1 s4 (lambda (a b) 1))))
+ (should (equal '(3 . ((?A . ?a) (?B . ?b) (?C . ?c)))
+ (pdf-util-seq-alignment
+ s5 s1 (lambda (a b)
+ (if (equal (downcase a)
+ (downcase b))
+ 1
+ -1)))))))
+