+ (cs-fixture
+ ;; FIXME assumes that light context is a subset of the heavy context?
+ (let ((major-mode 'foo-mode))
+ (should (eq (company-statistics-score-calc-light "foo") 2))
+ (should (eq (company-statistics-score-calc-light "bar") 2))
+ (should (eq (company-statistics-score-calc-light "baz") 1))
+ (should (eq (company-statistics-score-calc-light "quux") 1)))
+ (let ((major-mode 'baz-mode))
+ (should (eq (company-statistics-score-calc-light "foo") 1))
+ (should (eq (company-statistics-score-calc-light "bar") 1))
+ (should (eq (company-statistics-score-calc-light "baz") 2))
+ (should (eq (company-statistics-score-calc-light "quux") 2)))))
+
+(ert-deftest c-s-score-change-heavy ()
+ "Test a few things about the heavy score updates."
+ (let ((major-mode 'foobar-mode))
+ (should (equal (company-statistics-score-change-heavy "dummy")
+ '((nil . 1) (foobar-mode . 1))))
+ (let ((company-statistics--context
+ '((:keyword "kwd")
+ nil ;deliberately omit parent symbol
+ (:file "test-file.XYZ"))))
+ (should (equal (company-statistics-score-change-heavy "dummy")
+ '((nil . 1) (foobar-mode . 1)
+ ((:keyword "kwd") . 1)
+ ((:file "test-file.XYZ") . 1)))))))
+
+(ert-deftest c-s-score-calc-heavy ()
+ "Test heavy score calculation."