1# -*- tcl -*-
2# Tcl Benchmark File
3#
4# This file contains a number of benchmarks for the 'yencode' module.
5# This allow developers to monitor/gauge/track package performance.
6#
7# (c) 2005 Andreas Kupries <andreas_kupries@users.sourceforge.net>
8
9# We need at least version 8.2 for the package and thus the
10# benchmarks.
11
12if {![package vsatisfies [package provide Tcl] 8.2]} {
13    return
14}
15
16# ### ### ### ######### ######### ######### ###########################
17## Setting up the environment ...
18
19package forget yencode
20catch {namespace delete ::yencode}
21source [file join [file dirname [info script]] yencode.tcl]
22
23# ### ### ### ######### ######### ######### ###########################
24## Benchmarks.
25
26
27foreach n {10 100 1000 10000} {
28    bench -desc "YENCODE encode ${n}X" -pre {
29	set str [string repeat X $n]
30    } -body {
31	yencode::encode $str
32    } -post {
33	unset str
34    }
35
36    bench -desc "YENCODE decode ${n}X" -pre {
37	set str [yencode::encode [string repeat X $n]]
38    } -body {
39	yencode::decode $str
40    } -post {
41	unset str
42    }
43}
44
45# ### ### ### ######### ######### ######### ###########################
46## Complete
47