# Interval of items

!distribute items $wims_read_parm into slib_n, slib_type, slib_formula

!if $slib_static_r1=$empty
 slib_r1=!shuffle 101
 !distribute item $slib_r1 into slib_r1, slib_r2
 !if $slib_r1 > $slib_r2
  !exchange slib_r1, slib_r2
 !endif
 slib_static_r1=$[$slib_r1-50]
 slib_static_r2=$[$slib_r2-50]
!endif
!default slib_dir=!randint 1,4
!default slib_semi=!randitem semi-open, semi-closed
slib_data=!line $slib_dir of &#91;,&#93;,closed,0,0\
	&#93;,&#91;,open,1,-1\
	&#91;,&#91;,$slib_semi,0,-1\
	&#93;,&#93;,$slib_semi,1,0
!distribute item $slib_data into slib_left, slib_right, slib_itype, slib_c1, slib_c2
!default slib_static_r3=!randitem 1,2
!if $slib_static_r3=1
 slib_is=belongs to
!else
 slib_is=does not belong to
!endif

slib_list=!item 4 to -1 of $wims_read_parm
slib_test=!values max($slib_static_r1-x,0)+max(x-($slib_static_r2),0)\
	for x in $slib_list
slib_1=!positionof item 0 in $slib_test
!if $slib_static_r3!=1
 slib_all=!makelist x for x=1 to $slib_n
 slib_1=!listcomplement $slib_1 in $slib_all
!endif
!if $slib_formula != $empty
 slib_list=!item 4 to -1 of $wims_read_parm
 slib_list=!item $slib_1 of $slib_list
 slib_sum=!sum $slib_formula for x in $slib_list
!else
 slib_sum=
!endif

slib_tq=!randitem such that, for which, where
slib_2=for indices var_i $slib_tq <tt>var_l[var_i]</tt> $slib_is the interval $slib_itype <tt>$slib_left$slib_static_r1;$slib_static_r2$slib_right</tt>

slib_out=$slib_1\
$slib_2\
$slib_sum

