From 569c90e5035bd0fbfc62dfd81479cea91d46fa61 Mon Sep 17 00:00:00 2001
From: hobbs <hobbs>
Date: Tue, 21 Dec 1999 23:58:22 +0000
Subject: 	* tests/cmdIL.test: 	* generic/tclCmdIL.c: added -unique
 option to lsort

---
 tests/cmdIL.test | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/tests/cmdIL.test b/tests/cmdIL.test
index f4fc9a3..7e53974 100644
--- a/tests/cmdIL.test
+++ b/tests/cmdIL.test
@@ -8,7 +8,7 @@
 # See the file "license.terms" for information on usage and redistribution
 # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 #
-# RCS: @(#) $Id: cmdIL.test,v 1.9 1999/06/26 03:54:11 jenn Exp $
+# RCS: @(#) $Id: cmdIL.test,v 1.10 1999/12/21 23:58:22 hobbs Exp $
 
 if {[lsearch [namespace children] ::tcltest] == -1} {
     package require tcltest
@@ -20,7 +20,7 @@ test cmdIL-1.1 {Tcl_LsortObjCmd procedure} {
 } {1 {wrong # args: should be "lsort ?options? list"}}
 test cmdIL-1.2 {Tcl_LsortObjCmd procedure} {
     list [catch {lsort -foo {1 3 2 5}} msg] $msg
-} {1 {bad option "-foo": must be -ascii, -command, -decreasing, -dictionary, -increasing, -index, -integer, or -real}}
+} {1 {bad option "-foo": must be -ascii, -command, -decreasing, -dictionary, -increasing, -index, -integer, -real, or -unique}}
 test cmdIL-1.3 {Tcl_LsortObjCmd procedure, default options} {
     lsort {d e c b a \{ d35 d300}
 } {a b c d d300 d35 e \{}
@@ -75,6 +75,13 @@ test cmdIL-1.18 {Tcl_LsortObjCmd procedure, bogus list} {
 test cmdIL-1.19 {Tcl_LsortObjCmd procedure, empty list} {
     lsort {}
 } {}
+test cmdIL-1.22 {Tcl_LsortObjCmd procedure, unique sort} {
+    lsort -integer -unique {3 1 2 3 1 4 3}
+} {1 2 3 4}
+test cmdIL-1.23 {Tcl_LsortObjCmd procedure, unique sort with index} {
+    # lsort -unique should return the last unique item
+    lsort -unique -index 0 {{a b} {c b} {a c} {d a}}
+} {{a c} {c b} {d a}}
 
 # Can't think of any good tests for the MergeSort and MergeLists
 # procedures, except a bunch of random lists to sort.
@@ -84,12 +91,12 @@ test cmdIL-2.1 {MergeSort and MergeLists procedures} {
     set r 1435753299
     proc rand {} {
 	global r
-	set r [expr (16807 * $r) % (0x7fffffff)]
+	set r [expr {(16807 * $r) % (0x7fffffff)}]
     }
     for {set i 0} {$i < 150} {incr i} {
 	set x {}
 	for {set j 0} {$j < $i} {incr j} {
-	    lappend x [expr [rand] & 0xfff]
+	    lappend x [expr {[rand] & 0xfff}]
 	}
 	set y [lsort -integer $x]
 	set old -1
@@ -181,7 +188,7 @@ test cmdIL-3.17 {SortCompare procedure, -command option, non-integer result} {
 } {1 {-compare command returned non-numeric result}}
 test cmdIL-3.18 {SortCompare procedure, -command option} {
     proc cmp {a b} {
-	expr $b - $a
+	expr {$b - $a}
     }
     lsort -command cmp {48 6 18 22 21 35 36}
 } {48 36 35 22 21 18 6}
-- 
cgit v0.12