File: darray_test.nsc

package info (click to toggle)
ngraph-gtk 6.09.11-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,044 kB
  • sloc: ansic: 114,209; sh: 5,844; ruby: 1,824; makefile: 590; cpp: 373; xml: 216; sed: 39; awk: 11
file content (133 lines) | stat: -rw-r--r-- 3,447 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#! ../src/ngraph -i

STATUS=0
show_result() {
    if [ "$2" = "$3" ]
    then
	echo "OK. ($1)"
    else
	echo "error. ($1)  $2  $3"
	STATUS=1
    fi
}

show_result_val() {
    if [ `iexpr "EQ($2, $3, 14)"` = "1" ]
    then
	echo "OK. ($1)"
    else
	echo "error. ($1)  $2  $3"
	STATUS=1
    fi
}

new darray
darray::@="1 2 3 4 3 2 1"

s="${darray::join}"
show_result "join" "$s" "1.000000000000000e+00,2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00,3.000000000000000e+00,2.000000000000000e+00,1.000000000000000e+00"

darray::rsort
s="${darray::join}"
show_result "rsort" "$s" "4.000000000000000e+00,3.000000000000000e+00,3.000000000000000e+00,2.000000000000000e+00,2.000000000000000e+00,1.000000000000000e+00,1.000000000000000e+00"

darray::sort
s="${darray::join}"
show_result "sort" "$s" "1.000000000000000e+00,1.000000000000000e+00,2.000000000000000e+00,2.000000000000000e+00,3.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"

darray::uniq
s="${darray::join}"
show_result "uniq" "$s" "1.000000000000000e+00,2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"

s="${darray::seq}"
show_result "seq" "$s" "0 1 2 3"

s="${darray::rseq}"
show_result "rseq" "$s" "3 2 1 0"

s="${darray::pop}"
show_result "pop" "$s" "4"

s="${darray::join}"
show_result "pop" "$s" "1.000000000000000e+00,2.000000000000000e+00,3.000000000000000e+00"

darray::push "4"
s="${darray::join}"
show_result "push" "$s" "1.000000000000000e+00,2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"

s="${darray::shift}"
show_result "shift" "$s" "1"

s="${darray::join}"
show_result "shift" "$s" "2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"

darray::unshift "0"
s="${darray::join}"
show_result "unshift" "$s" "0.000000000000000e+00,2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"

s="${darray::get:-2}"
show_result "get" "$s" "3"

darray::reverse
s="${darray::join}"
show_result "reverse" "$s" "4.000000000000000e+00,3.000000000000000e+00,2.000000000000000e+00,0.000000000000000e+00"

darray::pop
darray::reverse
s="${darray::join}"
show_result "reverse" "$s" "2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"


darray::@="1 2 3 4 5 6 7 8 9 0 9 8 7 6 5 4 3 2 1"

TEMP_FILE=${system::temp_file}
echo "${darray::join:'\n'}" > $TEMP_FILE

new file
file::file=$TEMP_FILE
file::y=1
avg="${file::davy}"
sig="${file::dsigy}"
min="${file::dminy}"
max="${file::dmaxy}"
rms=`dexpr "sqrt($sig^2+$avg^2)"`
del file

s="${darray::sum}"
show_result "sum" "$s" "90"

s="${darray::average}"
show_result_val "average" "$s" "$avg"

s="${darray::RMS}"
show_result_val "RMS" "$s" "$rms"

s="${darray::sdev}"
show_result_val "sdev" "$s" "$sig"

s="${darray::min}"
show_result_val "min" "$s" "$min"

s="${darray::max}"
show_result_val "max" "$s" "$max"

darray::slice 1 3
s="${darray::join}"
show_result "slice" "$s" "2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"

darray::@="1 2 3 4 5 6 7 8 9 0 9 8 7 6 5 4 3 2 1"
darray::slice -4 3
darray::reverse
s="${darray::join}"
show_result "slice" "$s" "2.000000000000000e+00,3.000000000000000e+00,4.000000000000000e+00"

darray::@="1 2 3"
darray::map "x ^ 2"
s="${darray::join}"
show_result "map" "$s" "1.000000000000000e+00,4.000000000000000e+00,9.000000000000000e+00"

darray::map "i"
s="${darray::join}"
show_result "map" "$s" "0.000000000000000e+00,1.000000000000000e+00,2.000000000000000e+00"

exit $STATUS