;;; This software is being provided to you, the LICENSEE, by the
;;; Massachusetts Institute of Technology (M.I.T.), and the NEC Research
;;; Institute (NECI) under the following license.  By obtaining, using
;;; and/or copying this software, you agree that you have read,
;;; understood, and will comply with these terms and conditions:
;;; 
;;; Permission to use, copy, modify and distribute, including the right to
;;; grant others rights to distribute at any tier, this software and its
;;; documentation for research purposes only and without fee or royalty is
;;; hereby granted, provided that you agree to comply with the following
;;; copyright notice and statements, including the disclaimer, and that
;;; the same appear on ALL copies of the software and documentation,
;;; including modifications that you make for internal use or for
;;; distribution:
;;; 
;;; Copyright 1995 by the Massachusetts Institute of Technology.  All
;;; rights reserved.  Copyright 1995 by NEC Research Institute Inc. All
;;; rights reserved
;;; 
;;; THIS SOFTWARE IS PROVIDED "AS IS", AND M.I.T. and NECI MAKE NO
;;; REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED.  By way of example,
;;; but not limitation, M.I.T. and NECI MAKE NO REPRESENTATIONS OR
;;; WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR
;;; THAT THE USE OF THE LICENSED SOFTWARE OR DOCUMENTATION WILL NOT
;;; INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER
;;; RIGHTS.
;;; 
;;; The name of the Massachusetts Institute of Technology or M.I.T., or
;;; NEC Research Institute, or NECI may NOT be used in advertising or
;;; publicity pertaining to distribution of the software.  Title to
;;; copyright in this software and any associated documentation shall at
;;; all times remain with M.I.T. and NECI, and USER agrees to preserve
;;; same.
;;; 

;;; -*- Mode: LISP; Base: 10; Package: 2DG; Syntax: Common-Lisp -*-
(in-package '2DG)

(defun TEST-THREE-POINTS-COLINEAR (n)
  (let ((p1 (make-point 0 0))
	(p2 (make-point 10 0))
	(p3 (make-point 30 0)))
    (loop for i from 1 to n
	  collecting
      (let ((ang (random *2pi*))
	    (dx (random 100.0))
	    (dy (random 100.0)))
	(three-points-colinear? (rotate (translate p1 dx dy) ang)
				(rotate (translate p2 dx dy) ang)
				(rotate (translate p3 dx dy) ang))))))

(defun TEST-COLINEAR-POINTS (n)
  (let ((p1 (make-point 0 0))
	(p2 (make-point 10 0))
	(p3 (make-point 30 0)))
    (loop for i from 1 to n
	  collecting
      (let ((ang (random *2pi*))
	    (dx (random 100.0))
	    (dy (random 100.0)))
	(colinear-points? (list (rotate (translate p1 dx dy) ang)
				(rotate (translate p2 dx dy) ang)
				(rotate (translate p3 dx dy) ang)))))))

