Fix qcheck to work with the current time structure that

Estimated hours taken: 1.0
Branches: main

extras/quickcheck/qcheck.m:
	Fix qcheck to work with the current time structure that
	time__localtime returns.

extras/quickcheck/Mmakefile:
extras/quickcheck/test_qcheck.m:
extras/quickcheck/nrev.m:
	Add a makefile and a simple testcase for qcheck.
This commit is contained in:
Tyson Dowd
2001-07-31 13:47:32 +00:00
parent e9d95ada12
commit a447cb44bb
4 changed files with 73 additions and 2 deletions

View File

@@ -0,0 +1,17 @@
#-----------------------------------------------------------------------------#
# Copyright (C) 2001 The University of Melbourne.
# This file may only be copied under the terms of the GNU Library General
# Public License - see the file COPYING.LIB in the Mercury distribution.
#-----------------------------------------------------------------------------#
-include ../Mmake.params
MAIN_TARGET = all
all: test_qcheck
depend: test_qcheck.depend
.PHONY: check
check:
true

19
extras/quickcheck/nrev.m Normal file
View File

@@ -0,0 +1,19 @@
%---------------------------------------------------------------------------%
% Copyright (C) 2001 The University of Melbourne.
% This file may only be copied under the terms of the GNU General
% Public License - see the file COPYING in the Mercury distribution.
%---------------------------------------------------------------------------%
:- module nrev.
:- interface.
:- import_module list.
:- func nrev(list(T)) = list(T).
:- mode nrev(in) = out is det.
:- implementation.
nrev([]) = [].
nrev([X|Xs]) = Ys :-
list__append(nrev(Xs), [X], Ys).

View File

@@ -326,8 +326,8 @@ qcheck(TestFunction, Name, TestCount, SpecificFrequency,
:- func generate_seed_from_time(time_t) = int.
:- mode generate_seed_from_time(in) = out.
generate_seed_from_time(CurrentTime) = Seed :-
tm(Seconds, Minutes, Hours, _Weekday, Yearday, _Month, Year, _DST)
= time__localtime(CurrentTime),
tm(Year, _Month, _MonthDay, Hours, Minutes, Seconds, Yearday,
_Weekday, _DST) = time__localtime(CurrentTime),
TotalSecs = ((( integer(Year) * integer(365) + integer(Yearday))
* integer(24) + integer(Hours))
* integer(60) + integer(Minutes))

View File

@@ -0,0 +1,35 @@
%---------------------------------------------------------------------------%
% Copyright (C) 2001 The University of Melbourne.
% This file may only be copied under the terms of the GNU General
% Public License - see the file COPYING in the Mercury distribution.
%---------------------------------------------------------------------------%
:- module test_qcheck.
:- interface.
:- use_module io.
:- pred main(io__state, io__state).
:- mode main(di, uo) is det.
%---------------------------------------------------------------------------%
:- implementation.
:- import_module int, list.
:- import_module qcheck, nrev.
%---------------------------------------------------------------------------%
main -->
qcheck(qcheck__f(testing), "sample testing").
%------------------------------------------------------------------------------%
% Invariant test functions
%------------------------------------------------------------------------------%
:- func testing(list(int), list(int)) = property.
testing(Xs, Ys) =
nrev(Xs ++ Ys) `===` (nrev(Ys) ++ nrev(Xs)).