test/vector-concat.ss
#lang planet chongkai/sml

(* Written by Stephen Weeks (sweeks@acm.org). *)

structure Main =
   struct
      fun doit () =
	 let
	    val len = 100
	    val sum = 2 * len * (len - 1)
	    fun loop n =
	       if n < 0
		  then ()
	       else
		   let val v = Vector.tabulate (len, fn i => (i,i))
		   in
		       if sum = 			   
			   Vector.foldl (fn ((x,y),a) => x+y+a) 0 (Vector.concat [v, v])
			   then loop (n - 1)
		       else raise Fail "bug"
		   end
	    val numTrials = 10000
	 in loop numTrials
	 end
   end

val _ = Main.doit()