7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin########################################################################
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# This software is part of the ast package #
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner# Copyright (c) 1982-2010 AT&T Intellectual Property #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# and is licensed under the #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# Common Public License, Version 1.0 #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# by AT&T Intellectual Property #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# A copy of the License is available at #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# http://www.opensource.org/licenses/cpl1.0.txt #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# Information and Software Systems Research #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# AT&T Research #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# Florham Park NJ #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# David Korn <dgk@research.att.com> #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin# #
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin########################################################################
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinfunction err_exit
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin{
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin print -u2 -n "\t"
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin print -u2 -r ${Command}[$1]: "${@:2}"
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin (( Errors+=1 ))
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin}
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinalias err_exit='err_exit $LINENO'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April ChinCommand=${0##*/}
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chininteger Errors=0
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chintypeset -T Pt_t=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin float x=1
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin float y=0
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin len()
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin {
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin print -r $((sqrt(_.x*_.x + _.y*_.y)))
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin }
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chintypeset -T Rect_t=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin Pt_t ll=(x=0 y=0)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin Pt_t ur=(x=1 y=1)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin area()
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin {
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin print -r $(( abs((_.ur.x-_.ll.x)*(_.ur.y-_.ll.y)) ))
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin }
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinfor ((i=0; i < 100; i++))
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chindo
7c2fbfb345896881c631598ee3852ce9ce33fb07April ChinRect_t r
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin[[ ${r.area} == 1 ]] || err_exit '${r.area} != 1'
7c2fbfb345896881c631598ee3852ce9ce33fb07April ChinRect_t s=(
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin Pt_t ur=(x=9 y=9)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin Pt_t ll=(x=7 y=7)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin)
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin[[ ${s.ur.x} == 9 ]] || err_exit ' ${s.ur.x} != 9'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin(( s.ur.x == 9 ))|| err_exit ' ((s.ur.x)) != 9'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin[[ ${s.ll.y} == 7 ]] || err_exit '${s.ll.y} != 7'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin(( s.area == 4 )) || err_exit 'area of s should be 4'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin[[ ${s.area} == 4 ]] || err_exit '${s.area} != 4'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinunset r s
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chindone
7c2fbfb345896881c631598ee3852ce9ce33fb07April ChinRect_t -A r
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinr[one]=(ur=(x=4 y=4))
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin(( r[one].area == 16 )) || err_exit 'area of r[one] should be 16'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin[[ ${r[one].area} == 16 ]] || err_exit '${r[one].area} should be 16'
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinunset r
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinexit $Errors