add tests for add-diagonal-angles
1 files changed, 51 insertions(+), 0 deletions(-)

M sand.tests.el
M sand.tests.el +51 -0
@@ 205,5 205,56 @@ Like this:
 
    (should (sand//at 2 1))))
 
+
+(ert-deftest add-angle-row/left ()
+  (sand//with-new-board
+   (sand//add-diagonal-angles 5 10 3 t)
+   (should (equal (sand//at 5 10)
+                  'angle-right))
+   (should (equal (sand//at 4 9)
+                  'angle-right))
+   (should (equal (sand//at 3 8)
+                  'angle-right))
+   (let ((non-nil 0))
+     (dotimes (row sand/board-height)
+       (dotimes (column sand/board-width)
+         (when (sand//at row column)
+           (setf non-nil (1+ non-nil)))))
+     (should (equal non-nil 3)))))
+
+(ert-deftest add-angle-row/right ()
+  (sand//with-new-board
+   (sand//add-diagonal-angles 5 10 4 nil)
+   (should (equal (sand//at 5 10)
+                  'angle-left))
+   (should (equal (sand//at 4 11)
+                  'angle-left))
+   (should (equal (sand//at 3 12)
+                  'angle-left))
+   (should (equal (sand//at 2 13)
+                  'angle-left))
+   (let ((non-nil 0))
+     (dotimes (row sand/board-height)
+       (dotimes (column sand/board-width)
+         (when (sand//at row column)
+           (setf non-nil (1+ non-nil)))))
+     (should (equal non-nil 4)))))
+
+(ert-deftest add-angle-row/at-edge ()
+  (sand//with-new-board
+   (sand//add-diagonal-angles 5 2 4 t)
+   (should (equal (sand//at 5 2)
+                  'angle-right))
+   (should (equal (sand//at 4 1)
+                  'angle-right))
+   (should (equal (sand//at 3 0)
+                  'angle-right))
+   (let ((non-nil 0))
+     (dotimes (row sand/board-height)
+       (dotimes (column sand/board-width)
+         (when (sand//at row column)
+           (setf non-nil (1+ non-nil)))))
+     (should (equal non-nil 3)))))
+
 (provide 'sand-tests)
 ;;; sand.tests.el ends here