@@ 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