From 73b746a02c05148c8749f346d851c33a537bfea8 Mon Sep 17 00:00:00 2001
From: pfdietz <pfdietz@localhost>
Date: Sat, 7 May 2005 18:02:14 +0000
Subject: [PATCH] Begin adding tests for decode-universal-time,
 encode-universal-time

---
 ansi-tests/decode-universal-time.lsp | 69 ++++++++++++++++++++++++++++
 ansi-tests/load-environment.lsp      |  2 +
 2 files changed, 71 insertions(+)
 create mode 100644 ansi-tests/decode-universal-time.lsp

diff --git a/ansi-tests/decode-universal-time.lsp b/ansi-tests/decode-universal-time.lsp
new file mode 100644
index 00000000..dd8eb7a1
--- /dev/null
+++ b/ansi-tests/decode-universal-time.lsp
@@ -0,0 +1,69 @@
+;-*- Mode:     Lisp -*-
+;;;; Author:   Paul Dietz
+;;;; Created:  Sat May  7 07:00:58 2005
+;;;; Contains: Tests of DECODE-UNIVERSAL-TIME
+
+(in-package :cl-test)
+
+(deftest decode-universal-time.1
+  (decode-universal-time 0 0)
+  0 0 0 1 1 1900 0 nil 0)
+
+(deftest decode-universal-time.2
+  (decode-universal-time 0 -1)
+  0 0 1 1 1 1900 0 nil -1)
+
+(deftest decode-universal-time.3
+  (let ((count 0))
+    (loop for time = (random 10000000000)
+	  for tz = (- (random 49) 24)
+	  for (second minute hour date month year day daylight-p zone)
+	  = (multiple-value-list (decode-universal-time time tz))
+	  for time2 = (encode-universal-time second minute hour date month year zone)
+	  repeat 1000
+	  unless (and (eql tz zone) (eql time time2) (null daylight-p))
+	  collect (progn (incf count)
+			 (list time tz (list second minute hour date month year day daylight-p zone) time2))
+	  until (>= count 100)))
+  nil)
+
+(deftest decode-universal-time.4
+  (let ((count 0))
+    (loop for time = (random 10000000000)
+	  for tz = (/ (- (random (1+ (* 48 3600))) (* 24 3600)) 3600)
+	  for (second minute hour date month year day daylight-p zone)
+	  = (multiple-value-list (decode-universal-time time tz))
+	  for time2 = (encode-universal-time second minute hour date month year zone)
+	  repeat 1000
+	  unless (and (eql tz zone) (eql time time2) (null daylight-p))
+	  collect (progn (incf count)
+			 (list time tz (list second minute hour date month year day daylight-p zone) time2))
+	  until (>= count 100)))
+  nil)
+
+(deftest decode-universal-time.5
+  (let ((count 0))
+    (loop for time = (let ((x (random 10000000000))) (print x) x)
+	  for (second minute hour date month year day daylight-p zone)
+	  = (multiple-value-list (decode-universal-time time))
+	  for time2 = (encode-universal-time second minute hour date month year)
+	  repeat 1000
+	  unless (eql time time2)
+	  collect (progn (incf count)
+			 (list time (list second minute hour date month year day daylight-p zone) time2))
+	  until (>= count 100)))
+  nil)
+
+;;; Error tests
+
+(deftest decode-universal-time.error.1
+  (signals-error (decode-universal-time) program-error)
+  t)
+
+(deftest decode-universal-time.error.2
+  (signals-error (decode-universal-time 0 0 nil) program-error)
+  t)
+
+
+
+
diff --git a/ansi-tests/load-environment.lsp b/ansi-tests/load-environment.lsp
index 255792e8..f5e9c58a 100644
--- a/ansi-tests/load-environment.lsp
+++ b/ansi-tests/load-environment.lsp
@@ -12,3 +12,5 @@
 (load "time.lsp")
 (load "trace.lsp")
 (load "user-homedir-pathname.lsp")
+
+(load "decode-universal-time.lsp")
-- 
GitLab