summaryrefslogtreecommitdiffstats
path: root/runtime/tests/maps/map.test
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/tests/maps/map.test')
-rw-r--r--runtime/tests/maps/map.test338
1 files changed, 338 insertions, 0 deletions
diff --git a/runtime/tests/maps/map.test b/runtime/tests/maps/map.test
index f3a385dd..2ac951b9 100644
--- a/runtime/tests/maps/map.test
+++ b/runtime/tests/maps/map.test
@@ -181,6 +181,7 @@ map[3, Chicago, IL, 2000] = 8272768
}
test map_sort {Test of sorting} -setup {
+ puts "gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test sort.c"
exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test sort.c
} -body {
exec ./test
@@ -659,6 +660,343 @@ map[1XYZ, 2XYZ, 3XYZ, 4XYZ, 5XYZ] = 999
1XYZ and 2XYZ and 3XYZ and 4XYZ and 5XYZ ---> 999
}
+test sort_stat {Test of sorting stats} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test sort_stat.c
+} -body {
+ exec ./test
+} -result {Bogons per packet for California
+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 Washington
+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 Oregon
+count:90 sum:5700 avg:63 min:10 max:90
+value |-------------------------------------------------- count
+ 0 | 0
+ 10 |@@ 2
+ 20 |@@@@ 4
+ 30 |@@@@@@ 6
+ 40 |@@@@@@@@ 8
+ 50 |@@@@@@@@@@ 10
+ 60 |@@@@@@@@@@@@ 12
+ 70 |@@@@@@@@@@@@@@ 14
+ 80 |@@@@@@@@@@@@@@@@ 16
+ 90 |@@@@@@@@@@@@@@@@@@ 18
+
+Bogons per packet for Nevada
+count:45 sum:2970 avg:66 min:10 max:98
+value |-------------------------------------------------- count
+ 0 | 0
+ 10 |@ 1
+ 20 |@@ 2
+ 30 |@@@ 3
+ 40 |@@@@ 4
+ 50 |@@@@@ 5
+ 60 |@@@@@@ 6
+ 70 |@@@@@@@ 7
+ 80 |@@@@@@@@ 8
+ 90 |@@@@@@@@@ 9
+
+Bogons per packet for Ohio
+count:20 sum:1000 avg:50 min:50 max:50
+value |-------------------------------------------------- count
+ 0 | 0
+ 10 | 0
+ 20 | 0
+ 30 | 0
+ 40 | 0
+ 50 |@@@@@@@@@@@@@@@@@@@@ 20
+ 60 | 0
+ 70 | 0
+ 80 | 0
+ 90 | 0
+
+Bogons per packet for North Carolina
+count:45 sum:-4200 avg:-93 min:-620 max:100
+value |-------------------------------------------------- count
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 26
+ 10 |@ 1
+ 20 |@@ 2
+ 30 |@ 1
+ 40 |@@ 2
+ 50 |@ 1
+ 60 |@ 1
+ 70 |@ 1
+ 80 |@ 1
+ 90 |@@@@@@@@@ 9
+
+Bogons per packet for New Mexico
+count:450 sum:8475 avg:18 min:-39 max:50
+value |-------------------------------------------------- count
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 145
+ 10 |@@@@@@@@@@@@@@@@@@@ 59
+ 20 |@@@@@@@@@@@@@@@@@@@@@@@ 69
+ 30 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 79
+ 40 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 89
+ 50 |@@@ 9
+ 60 | 0
+ 70 | 0
+ 80 | 0
+ 90 | 0
+
+
+SORTED BY COUNT
+49600 California
+450 New Mexico
+100 Washington
+90 Oregon
+45 Nevada
+45 North Carolina
+20 Ohio
+
+SORTED BY COUNT (low to high)
+20 Ohio
+45 Nevada
+45 North Carolina
+90 Oregon
+100 Washington
+450 New Mexico
+49600 California
+
+SORTED BY SUM
+3288450 California
+8475 New Mexico
+5700 Oregon
+2970 Nevada
+2025 Washington
+1000 Ohio
+-4200 North Carolina
+
+SORTED BY SUM (low to high)
+-4200 North Carolina
+1000 Ohio
+2025 Washington
+2970 Nevada
+5700 Oregon
+8475 New Mexico
+3288450 California
+
+SORTED BY MIN
+50 Ohio
+10 Nevada
+10 Oregon
+0 Washington
+0 California
+-39 New Mexico
+-620 North Carolina
+
+SORTED BY MIN (low to high)
+-620 North Carolina
+-39 New Mexico
+0 Washington
+0 California
+10 Nevada
+10 Oregon
+50 Ohio
+
+SORTED BY MAX
+100 North Carolina
+99 California
+98 Nevada
+90 Oregon
+81 Washington
+50 New Mexico
+50 Ohio
+
+SORTED BY MAX (low to high)
+50 New Mexico
+50 Ohio
+81 Washington
+90 Oregon
+98 Nevada
+99 California
+100 North Carolina
+
+SORTED BY AVG
+66 Nevada
+66 California
+63 Oregon
+50 Ohio
+20 Washington
+18 New Mexico
+-93 North Carolina
+
+SORTED BY AVG (low to high)
+-93 North Carolina
+18 New Mexico
+20 Washington
+50 Ohio
+63 Oregon
+66 Nevada
+66 California
+}
+
+test sort2 {Test of sorting (odd number of elements)} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test sort2.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
+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
+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
+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
+1 4 New Mexico -> Santa Fe
+1 2 Ohio -> Columbus
+-1 9 North Carolina -> Raleigh
+
+
+sorting from low to high on key 2
+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
+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
+Washington 5 6 -> Olympia
+
+
+sorting from high to low on key 3
+Washington 5 6 -> Olympia
+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
+3 4 California -> Sacramento
+5 6 Washington -> Olympia
+
+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
+Chisinau is the capitol of Moldova and the nerd population is 1024
+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
+Chisinau is the capitol of Moldova and the nerd population is 1024
+Valletta is the capitol of Malta and the nerd population is 1
+Nicosia is the capitol of Cyprus and the nerd population is -1
+}
+
+
+
catch {exec rm test}
cleanupTests