ycl

Artifact [027c3467a2]
Login

Artifact [027c3467a2]

Artifact 027c3467a2efc976eb0379263b2a8247cfdd1aab:


#! /usr/bin/env tclsh

package require {ycl test}

proc suite_main {} {
	package require {ycl proc}
	[yclprefix] proc alias [yclprefix]::proc::alias
	[yclprefix] proc alias aliases [yclprefix] proc aliases

	package require {ycl list list}
	aliases {
		{ycl list} {
			lrange
			lnew new
			sl
		}
	}


	package require {ycl set}
	alias s [yclprefix]::set

	alias [yclprefix]::test::cleanup1
	package require {ycl test data}
	alias [yclprefix]::test::data

	[yclprefix]::test::init

	set setup1 {
		set list1 [data list1]
		set list2 $list1
	}

	set setup2 {
		set list2 [data tclchars]
		lappend list3 [lindex $list2 0]
		lappend list3 [lindex $list2 3]
		lappend list3 [lindex $list2 6]
	}


	test complement {} -setup $setup2 -body {
		[lnew list4] .init list $list2
		[lnew list5] .init list $list3
		s complement list4 list5
	} -cleanup [cleanup1] -result [sl {
		\" {$} {[} \] \} " \"$;\[]{}" "{ \"$;\[]}"
	}]


	test complement_name {} -setup $setup2 -body {
		[lnew list4] .init list $list2
		[lnew list5] .init list $list3
		s complement list4 list5 name comp
		set res {}
		while 1 {
			lappend res [comp]
		}
		return $res
	} -cleanup [cleanup1] -result [sl {
		\" {$} {[} \] \} " \"$;\[]{}" "{ \"$;\[]}"
	}]


	test equal {} -setup $setup2 -body {
		[lnew list4] .init list $list2
		[lnew list5] .init list $list2
		lappend res [s equal list4 list5]
		rename list4 {}
		rename list5 {}

		[lnew list4] .init list $list2
		[lnew list5] .init list $list3
		lappend res [s equal list4 list5]
		rename list4 {}
		rename list5 {}

		return $res
	} -cleanup [cleanup1] -result [sl {
		1 0
	}]


	test subset {} -setup $setup2 -body {
		[lnew list4] .init list $list2
		[lnew list5] .init list $list2
		lappend res [s subset list4 list5]

		list4 cursor -1
		[lnew list5] .init list $list3
		lappend res [s subset list5 list4]

		list4 cursor -1
		list5 cursor -1
		lappend res [s subset list4 list5]

	} -cleanup [cleanup1] -result [sl {
		1 1 0
	}]


	test tail {} -setup $setup1 -body {
		lrange list2 0 3
		[lnew list1] .init list $list1
		[lnew list2] .init list $list2
		s tail list2 list1
	} -cleanup [cleanup1] -result [sl {
		neli " \t\n " 20 010 10 viis 001 01 
	}]


	test tail_name {} -setup $setup1 -body {
		lrange list2 0 3
		[lnew list1] .init list $list1
		[lnew list2] .init list $list2
		s tail list2 list1 name tail1
		while 1 {
			lappend res [tail1]
		}
		return $res
	} -cleanup [cleanup1] -result [sl {
		neli " \t\n " 20 010 10 viis 001 01 
	}]

	cleanupTests
}