package require tcltest namespace import -force tcltest::* cd $tcltest::testsDirectory set CFLAGS "-Os" set KPATH "/lib/modules/[exec uname -r]/build/include" set MPATH "/lib/modules/[exec uname -r]/build/include/asm/mach-default" set PATH "../../user" test ii {Test of int64 keys and int64 values} -setup { puts "gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ii.c" exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ii.c } -body { exec ./test } -result {map[1]=2 map[1] = 2 map[1] = 2 map[3] = 4 map[1] = 2 map[3] = 4 map[1] = 2 map[3] = 4 map[1] = 2 map[3] = 4 map[0]=0 map[1] = 2 map[3] = 4 map[5] = 6 map[6] = 106 map[7] = 107 map[8] = 108 map[9] = 109 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[33] = 3333 map[44] = 4444 map[55] = 5555 map[66] = 6666 map[1970] = 1799 } test is {Test of int64 keys and string values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test is.c } -body { exec ./test } -result {map[1]=one map[1] = one map[1] = one map[3] = three map[1] = one map[3] = three map[1] = one map[3] = three map[1] = one map[3] = three map[0]=0 map[1] = one map[3] = three map[5] = five map[1] = one map[3] = three map[5] = map[6] = value of 6 map[7] = value of 7 map[8] = value of 8 map[9] = value of 9 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 } test si {Test of string keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test si.c } -body { exec ./test } -result {map[Ohio]=1 map[Ohio] = 1 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[0]=0 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[] = 7777 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[] = 8888 map[String 6] = 106 map[String 7] = 107 map[String 8] = 108 map[String 9] = 109 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 } test isx {Test of int64 keys and stat values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test isx.c } -body { exec ./test } -result {map[3] = count:49600 sum:3288450 avg:66 min:0 max:99 value |-------------------------------------------------- count 0 |@@ 460 10 |@@@@@@@ 1460 20 |@@@@@@@@@@@@ 2460 30 |@@@@@@@@@@@@@@@@@@ 3460 40 |@@@@@@@@@@@@@@@@@@@@@@@ 4460 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5460 60 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6460 70 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7460 80 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8460 90 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9460 map[2] = count:100 sum:2025 avg:20 min:0 max:81 value |-------------------------------------------------- count 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 42 10 |@@@@@@@@@@@@@@@@@ 17 20 |@@@@@@@@@@@@@ 13 30 |@@@@@@@@@ 9 40 |@@@@@@@@@ 9 50 |@@@@ 4 60 |@@@ 3 70 |@@ 2 80 |@ 1 90 | 0 map[1] = count:45 sum:2850 avg:63 min:10 max:90 value |-------------------------------------------------- count 0 | 0 10 |@ 1 20 |@@ 2 30 |@@@ 3 40 |@@@@ 4 50 |@@@@@ 5 60 |@@@@@@ 6 70 |@@@@@@@ 7 80 |@@@@@@@@ 8 90 |@@@@@@@@@ 9 map2[1] = count:16384 sum:1040384 avg:63 min:0 max:127 value |-------------------------------------------------- count 0 | 128 1 | 128 2 |@ 256 4 |@@@ 512 8 |@@@@@@ 1024 16 |@@@@@@@@@@@@ 2048 32 |@@@@@@@@@@@@@@@@@@@@@@@@ 4096 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8192 128 | 0 256 | 0 512 | 0 map2[2] = count:1048576 sum:536346624 avg:511 min:0 max:1023 value |-------------------------------------------------- count 0 | 1024 1 | 1024 2 | 2048 4 | 4096 8 | 8192 16 |@ 16384 32 |@@@ 32768 64 |@@@@@@ 65536 128 |@@@@@@@@@@@@ 131072 256 |@@@@@@@@@@@@@@@@@@@@@@@@ 262144 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 524288 } test isx2 {Test of int64 keys and stat values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test isx2.c } -body { exec ./test } -result {map[3] = count:49600 sum:3288450 avg:66 min:0 max:99 value |-------------------------------------------------- count 0 |@@ 460 10 |@@@@@@@ 1460 20 |@@@@@@@@@@@@ 2460 30 |@@@@@@@@@@@@@@@@@@ 3460 40 |@@@@@@@@@@@@@@@@@@@@@@@ 4460 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5460 60 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6460 70 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7460 80 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8460 90 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9460 map[2] = count:100 sum:2025 avg:20 min:0 max:81 value |-------------------------------------------------- count 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 42 10 |@@@@@@@@@@@@@@@@@ 17 20 |@@@@@@@@@@@@@ 13 30 |@@@@@@@@@ 9 40 |@@@@@@@@@ 9 50 |@@@@ 4 60 |@@@ 3 70 |@@ 2 80 |@ 1 90 | 0 map[1] = count:45 sum:2850 avg:63 min:10 max:90 value |-------------------------------------------------- count 0 | 0 10 |@ 1 20 |@@ 2 30 |@@@ 3 40 |@@@@ 4 50 |@@@@@ 5 60 |@@@@@@ 6 70 |@@@@@@@ 7 80 |@@@@@@@@ 8 90 |@@@@@@@@@ 9 map2[1] = count:16384 sum:1040384 avg:63 min:0 max:127 value |-------------------------------------------------- count 0 | 128 1 | 128 2 |@ 256 4 |@@@ 512 8 |@@@@@@ 1024 16 |@@@@@@@@@@@@ 2048 32 |@@@@@@@@@@@@@@@@@@@@@@@@ 4096 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8192 128 | 0 256 | 0 512 | 0 map2[2] = count:1048576 sum:536346624 avg:511 min:0 max:1023 value |-------------------------------------------------- count 0 | 1024 1 | 1024 2 | 2048 4 | 4096 8 | 8192 16 |@ 16384 32 |@@@ 32768 64 |@@@@@@ 65536 128 |@@@@@@@@@@@@ 131072 256 |@@@@@@@@@@@@@@@@@@@@@@@@ 262144 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 524288 } test iiss {Test of int64,int64,string keys and string values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test iiss.c } -body { exec ./test } -result {map[1, 2, Ohio] = Columbus map[3, 4, California] = Sacramento map[5, 6, Washington] = Seattle map[7, 8, Oregon] = Salem map[3, 4, California] = Sacramento map[5, 6, Washington] = Seattle map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olymp map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[0, 0, ] = XX } test test_list_int64 {Test of lists of int64s} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test test_list_int64.c } -body { exec ./test } -result {list[0] = 0 list[1] = 1 list[2] = 2 list[3] = 3 list[4] = 4 list[5] = 5 list[6] = 6 list[7] = 7 list[8] = 8 list[9] = 9 size is 10 list[0] = 0 list[1] = 1 list[2] = 2 list[3] = 3 list[4] = 4 list[5] = 5 list[6] = 6 list[7] = 7 list[8] = 8 list[9] = 9 newlist[0] = 50 newlist[1] = 51 newlist[2] = 52 newlist[3] = 53 newlist[4] = 54 } test test_list_string {Test of lists of strings} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test test_list_string.c } -body { exec ./test } -result {list[0] = Item0 list[1] = Item1 list[2] = Item2 list[3] = Item3 list[4] = Item4 list[5] = Item5 list[6] = Item6 list[7] = Item7 list[8] = Item8 list[9] = Item9 size is 10 list[0] = Item0 list[1] = Item1 list[2] = Item2 list[3] = Item3 list[4] = Item4 list[5] = Item5 list[6] = Item6 list[7] = Item7 list[8] = Item8 list[9] = Item9 newlist[0] = Item50 newlist[1] = Item51 newlist[2] = Item52 newlist[3] = Item53 newlist[4] = Item54 } test map_format {Torture test of map formatting} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test map_format.c } -body { exec ./test } -result {Columbus -> mapiis 1 2 Ohio Sacramento -> mapiis 3 4 California Olympia -> mapiis 5 6 Washington Salem -> mapiis 7 8 Oregon Columbus % Ohio Sacramento % California Olympia % Washington Salem % Oregon Columbus -> mapiis Sacramento -> mapiis Olympia -> mapiis Salem -> mapiis The capitol of Riga is Latvia and the nerd population is 212063400820736 The capitol of Sofia is Bulgaria and the nerd population is -2400999087387945352 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is -1 The capitol of Riga is Latvia and the nerd population is c0dedbad0000 The capitol of Sofia is Bulgaria and the nerd population is deadf00d12345678 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is ffffffffffffffff The capitol of Riga is Latvia and the nerd population is C0DEDBAD0000 The capitol of Sofia is Bulgaria and the nerd population is DEADF00D12345678 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is FFFFFFFFFFFFFFFF Bogons per packet for Riga count:49600 sum:3288450 avg:66 min:0 max:99 value |-------------------------------------------------- count 0 |@@ 460 10 |@@@@@@@ 1460 20 |@@@@@@@@@@@@ 2460 30 |@@@@@@@@@@@@@@@@@@ 3460 40 |@@@@@@@@@@@@@@@@@@@@@@@ 4460 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5460 60 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6460 70 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7460 80 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8460 90 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9460 Bogons per packet for Sofia count:100 sum:2025 avg:20 min:0 max:81 value |-------------------------------------------------- count 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 42 10 |@@@@@@@@@@@@@@@@@ 17 20 |@@@@@@@@@@@@@ 13 30 |@@@@@@@@@ 9 40 |@@@@@@@@@ 9 50 |@@@@ 4 60 |@@@ 3 70 |@@ 2 80 |@ 1 90 | 0 Bogons per packet for Valletta count:45 sum:2850 avg:63 min:10 max:90 value |-------------------------------------------------- count 0 | 0 10 |@ 1 20 |@@ 2 30 |@@@ 3 40 |@@@@ 4 50 |@@@@@ 5 60 |@@@@@@ 6 70 |@@@@@@@ 7 80 |@@@@@@@@ 8 90 |@@@@@@@@@ 9 49600 was the count for Riga, Latvia 100 was the count for Sofia, Bulgaria 45 was the count for Valletta, Malta mapsst[ Riga, Latvia] = 322D82 mapsst[ Sofia, Bulgaria] = 7E9 mapsst[ Valletta, Malta] = B22} test map_format2 {Torture test of map formatting} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test map_format2.c } -body { exec ./test } -result {Columbus -> mapiis 1 2 Ohio Sacramento -> mapiis 3 4 California Olympia -> mapiis 5 6 Washington Salem -> mapiis 7 8 Oregon Columbus % Ohio Sacramento % California Olympia % Washington Salem % Oregon Columbus -> mapiis Sacramento -> mapiis Olympia -> mapiis Salem -> mapiis The capitol of Riga is Latvia and the nerd population is 212063400820736 The capitol of Sofia is Bulgaria and the nerd population is -2400999087387945352 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is -1 The capitol of Riga is Latvia and the nerd population is c0dedbad0000 The capitol of Sofia is Bulgaria and the nerd population is deadf00d12345678 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is ffffffffffffffff The capitol of Riga is Latvia and the nerd population is C0DEDBAD0000 The capitol of Sofia is Bulgaria and the nerd population is DEADF00D12345678 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is FFFFFFFFFFFFFFFF Bogons per packet for Riga count:49600 sum:3288450 avg:66 min:0 max:99 value |-------------------------------------------------- count 0 |@@ 460 10 |@@@@@@@ 1460 20 |@@@@@@@@@@@@ 2460 30 |@@@@@@@@@@@@@@@@@@ 3460 40 |@@@@@@@@@@@@@@@@@@@@@@@ 4460 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5460 60 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6460 70 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7460 80 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8460 90 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9460 Bogons per packet for Sofia count:100 sum:2025 avg:20 min:0 max:81 value |-------------------------------------------------- count 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 42 10 |@@@@@@@@@@@@@@@@@ 17 20 |@@@@@@@@@@@@@ 13 30 |@@@@@@@@@ 9 40 |@@@@@@@@@ 9 50 |@@@@ 4 60 |@@@ 3 70 |@@ 2 80 |@ 1 90 | 0 Bogons per packet for Valletta count:45 sum:2850 avg:63 min:10 max:90 value |-------------------------------------------------- count 0 | 0 10 |@ 1 20 |@@ 2 30 |@@@ 3 40 |@@@@ 4 50 |@@@@@ 5 60 |@@@@@@ 6 70 |@@@@@@@ 7 80 |@@@@@@@@ 8 90 |@@@@@@@@@ 9 49600 was the count for Riga, Latvia 100 was the count for Sofia, Bulgaria 45 was the count for Valletta, Malta mapsst[ Riga, Latvia] = 322D82 mapsst[ Sofia, Bulgaria] = 7E9 mapsst[ Valletta, Malta] = B22} test map_issii {Test of int64,string,string,int64 keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test issii.c } -body { exec ./test } -result {map[1, Boston, MA, 1970] = 5224303 map[2, Boston, MA, 2000] = 6057826 map[3, Chicago, IL, 2000] = 8272768 1. The population of Boston, MA in 1970 was 5224303 2. The population of Boston, MA in 2000 was 6057826 3. The population of Chicago, IL in 2000 was 8272768 } test map_issii2 {Test of int64,string,string,int64 keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test issii2.c } -body { exec ./test } -result {map[1, Boston, MA, 1970] = 5224303 map[2, Boston, MA, 2000] = 6057826 map[3, Chicago, IL, 2000] = 8272768 1. The population of Boston, MA in 1970 was 5224303 2. The population of Boston, MA in 2000 was 6057826 3. The population of Chicago, IL in 2000 was 8272768 } test map_sort {Test of sorting} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test sort.c } -body { exec ./test } -result {sorting from A-Z on value Boston -> 5 5 Massachusetts Carson City -> 7 8 Nevada Columbus -> 1 2 Ohio Des Moines -> 8 8 Iowa Montpelier -> 2 2 Vermont Olympia -> 5 6 Washington Raleigh -> -1 9 North Carolina Sacramento -> 3 4 California Salem -> 7 8 Oregon Santa Fe -> 1 4 New Mexico sorting from Z-A on value Santa Fe -> 1 4 New Mexico Salem -> 7 8 Oregon Sacramento -> 3 4 California Raleigh -> -1 9 North Carolina Olympia -> 5 6 Washington Montpelier -> 2 2 Vermont Des Moines -> 8 8 Iowa Columbus -> 1 2 Ohio Carson City -> 7 8 Nevada Boston -> 5 5 Massachusetts sorting from low to high on key 1 -1 9 North Carolina -> Raleigh 1 4 New Mexico -> Santa Fe 1 2 Ohio -> Columbus 2 2 Vermont -> Montpelier 3 4 California -> Sacramento 5 6 Washington -> Olympia 5 5 Massachusetts -> Boston 7 8 Oregon -> Salem 7 8 Nevada -> Carson City 8 8 Iowa -> Des Moines sorting from high to low on key 1 8 8 Iowa -> Des Moines 7 8 Oregon -> Salem 7 8 Nevada -> Carson City 5 6 Washington -> Olympia 5 5 Massachusetts -> Boston 3 4 California -> Sacramento 2 2 Vermont -> Montpelier 1 4 New Mexico -> Santa Fe 1 2 Ohio -> Columbus -1 9 North Carolina -> Raleigh sorting from low to high on key 2 2 2 Vermont -> Montpelier 1 2 Ohio -> Columbus 3 4 California -> Sacramento 1 4 New Mexico -> Santa Fe 5 5 Massachusetts -> Boston 5 6 Washington -> Olympia 8 8 Iowa -> Des Moines 7 8 Oregon -> Salem 7 8 Nevada -> Carson City -1 9 North Carolina -> Raleigh sorting from high to low on key 2 -1 9 North Carolina -> Raleigh 8 8 Iowa -> Des Moines 7 8 Oregon -> Salem 7 8 Nevada -> Carson City 5 6 Washington -> Olympia 5 5 Massachusetts -> Boston 3 4 California -> Sacramento 1 4 New Mexico -> Santa Fe 2 2 Vermont -> Montpelier 1 2 Ohio -> Columbus sorting from low to high on key 3 California 3 4 -> Sacramento Iowa 8 8 -> Des Moines Massachusetts 5 5 -> Boston Nevada 7 8 -> Carson City New Mexico 1 4 -> Santa Fe North Carolina -1 9 -> Raleigh Ohio 1 2 -> Columbus Oregon 7 8 -> Salem Vermont 2 2 -> Montpelier Washington 5 6 -> Olympia sorting from high to low on key 3 Washington 5 6 -> Olympia Vermont 2 2 -> Montpelier Oregon 7 8 -> Salem Ohio 1 2 -> Columbus North Carolina -1 9 -> Raleigh New Mexico 1 4 -> Santa Fe Nevada 7 8 -> Carson City Massachusetts 5 5 -> Boston Iowa 8 8 -> Des Moines California 3 4 -> Sacramento top 3 alphabetical by value Boston -> 5 5 Massachusetts Carson City -> 7 8 Nevada Columbus -> 1 2 Ohio bottom 2 alphabetical by value Santa Fe -> 1 4 New Mexico Salem -> 7 8 Oregon top 5 sorted by key 1 8 8 Iowa -> Des Moines 7 8 Oregon -> Salem 7 8 Nevada -> Carson City 5 6 Washington -> Olympia 5 5 Massachusetts -> Boston bottom 5 sorted by key 1 -1 9 North Carolina -> Raleigh 1 4 New Mexico -> Santa Fe 1 2 Ohio -> Columbus 2 2 Vermont -> Montpelier 3 4 California -> Sacramento sorted by population from low to high Nicosia is the capitol of Cyprus and the nerd population is -1 Valletta is the capitol of Malta and the nerd population is 1 Riga is the capitol of Latvia and the nerd population is 135786 Sofia is the capitol of Bulgaria and the nerd population is 138740 sorted by population from high to low Sofia is the capitol of Bulgaria and the nerd population is 138740 Riga is the capitol of Latvia and the nerd population is 135786 Valletta is the capitol of Malta and the nerd population is 1 Nicosia is the capitol of Cyprus and the nerd population is -1 } test ii2 {Test of int64 keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ii2.c } -body { exec ./test } -result {map[1]=2 map[1] = 2 map[3] = 4 map[1] = 2 map[3] = 4 0 (should be 0) map[1] = 2 map[3] = 4 map[5] = 6 map[6] = 106 map[7] = 107 map[8] = 108 map[9] = 109 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[33] = 3333 map[44] = 4444 map[55] = 5555 map[66] = 6666 map[1970] = 1799 } test is2 {Test of int64 keys and string values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test is2.c } -body { exec ./test } -result {map[1]=one map[1] = one map[1] = one map[3] = three map[1] = one map[3] = three map[1] = one map[3] = three map[1] = one map[3] = three map[1024] = 2048 map[1] = one map[3] = three map[1] = one map[3] = three map[5] = five map[1] = one map[3] = three map[6] = value of 6 map[7] = value of 7 map[8] = value of 8 map[9] = value of 9 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[6] = new value of 6 map[7] = new value of 7 map[8] = new value of 8 map[9] = new value of 9 } test si2 {Test of string keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test si2.c } -body { exec ./test } -result {map[Ohio]=1 map[Ohio] = 1 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[1024] = 2048 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[1024] = 2048 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[] = 7777 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[] = 8888 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[String 6] = 106 map[String 7] = 107 map[String 8] = 108 map[String 9] = 109 map[String 6] = 106 map[String 7] = 107 map[String 8] = 108 map[String 9] = 109 map[String 6] = 6106 map[String 7] = 7107 map[String 8] = 8108 map[String 9] = 9109 map[String 6] = 6 map[String 7] = 7 map[String 8] = 8 map[String 9] = 9 } test iiss2 {Test of int64,int64,string keys and string values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test iiss2.c } -body { exec ./test } -result {map[1, 2, Ohio] = Columbus map[3, 4, California] = Sacramento map[5, 6, Washington] = Seattle map[7, 8, Oregon] = Salem map[3, 4, California] = Sacramento map[5, 6, Washington] = Seattle map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olymp map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympis map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem } test setadd {Test of setting and adding values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test setadd.c } -body { exec ./test } -result {mapi[1] = 1 mapi[2] = 4 mapi[3] = 9 mapi[4] = 16 maps[1] = value of 1 maps[2] = value of 2 maps[3] = value of 3 maps[4] = value of 4 mapx[1] = count:1 sum:1 avg:1 min:1 max:1 mapx[2] = count:1 sum:2 avg:2 min:2 max:2 mapx[3] = count:1 sum:3 avg:3 min:3 max:3 mapx[4] = count:1 sum:4 avg:4 min:4 max:4 mapi[1] = 2 mapi[2] = 8 mapi[3] = 18 mapi[4] = 32 maps[1] = value of 1***** maps[2] = value of 2***** maps[3] = value of 3***** maps[4] = value of 4***** mapx[1] = count:2 sum:3 avg:1 min:1 max:2 mapx[2] = count:2 sum:6 avg:3 min:2 max:4 mapx[3] = count:2 sum:9 avg:4 min:3 max:6 mapx[4] = count:2 sum:12 avg:6 min:4 max:8 Adding 0 mapi[1] = 2 mapi[2] = 8 mapi[3] = 18 mapi[4] = 32 maps[1] = value of 1***** maps[2] = value of 2***** maps[3] = value of 3***** maps[4] = value of 4***** maps[1] = value of 1***** maps[2] = value of 2***** maps[3] = value of 3***** maps[4] = value of 4***** mapx[1] = count:3 sum:3 avg:1 min:0 max:2 mapx[2] = count:3 sum:6 avg:2 min:0 max:4 mapx[3] = count:3 sum:9 avg:3 min:0 max:6 mapx[4] = count:3 sum:12 avg:4 min:0 max:8 Add 'X' to strings maps[1] = value of 1*****X maps[2] = value of 2*****X maps[3] = value of 3*****X maps[4] = value of 4*****X setting everything to 0 Adding 0 mapx[1] = count:1 sum:0 avg:0 min:0 max:0 mapx[2] = count:1 sum:0 avg:0 min:0 max:0 mapx[3] = count:1 sum:0 avg:0 min:0 max:0 mapx[4] = count:1 sum:0 avg:0 min:0 max:0 setting everything to -1 mapi[1] = -1 mapi[2] = -1 mapi[3] = -1 mapi[4] = -1 mapx[1] = count:1 sum:-1 avg:-1 min:-1 max:-1 mapx[2] = count:1 sum:-1 avg:-1 min:-1 max:-1 mapx[3] = count:1 sum:-1 avg:-1 min:-1 max:-1 mapx[4] = count:1 sum:-1 avg:-1 min:-1 max:-1 adding -1 mapi[1] = -2 mapi[2] = -2 mapi[3] = -2 mapi[4] = -2 mapx[1] = count:2 sum:-2 avg:-1 min:-1 max:-1 mapx[2] = count:2 sum:-2 avg:-1 min:-1 max:-1 mapx[3] = count:2 sum:-2 avg:-1 min:-1 max:-1 mapx[4] = count:2 sum:-2 avg:-1 min:-1 max:-1 } test iiiiii {Test of 5 int keys and an int value} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test iiiiii.c } -body { exec ./test } -result {map[1, 2, 3, 4, 5] = 10 map[10, 20, 30, 40, 50] = 100 map[-1, -2, -3, -4, -5] = -10 map[100, 200, 300, 400, 500] = 1000 1 - 2 - 3 - 4 - 5 *** 10 10 - 20 - 30 - 40 - 50 *** 100 -1 - -2 - -3 - -4 - -5 *** -10 100 - 200 - 300 - 400 - 500 *** 1000 } test ssssss {Test of 5 string keys and a string value} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ssssss.c } -body { exec ./test } -result {map[1ABC, 2ABC, 3ABC, 4ABC, 5ABC] = 666 map[1QRS, 2QRS, 3QRS, 4QRS, 5QRS] = 777 map[1abc, 2abc, 3abc, 4abc, 5abc] = 888 map[1XYZ, 2XYZ, 3XYZ, 4XYZ, 5XYZ] = 999 1ABC and 2ABC and 3ABC and 4ABC and 5ABC ---> 666 1QRS and 2QRS and 3QRS and 4QRS and 5QRS ---> 777 1abc and 2abc and 3abc and 4abc and 5abc ---> 888 1XYZ and 2XYZ and 3XYZ and 4XYZ and 5XYZ ---> 999 } test keys {Test reading keys} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test keys.c } -body { exec ./test } -result {map[0, Boston, MA, 1970] = 5224303 map[1, Chicago, IL, 2000] = 8272768 map[-1, unknown, , 2010] = 1000000000 map[bad type, 0, 0, bad type] = bad type map[bad type, 0, 0, bad type] = bad type map[bad type, 0, 0, bad type] = bad type} catch {exec rm test} cleanupTests