+ key = MakeKey<KeyT, KeyT>(i, count);
+ value = wx_truncate_cast(ValueT, key);
+}
+
+// make key/values paris for pointer types
+template <class T, class ValueT>
+void MakeKeyValuePair(size_t i, size_t count, T*& key, ValueT& value)
+{
+ key = (T*)wxUIntToPtr(MakeKey<wxUIntPtr, T*>(i, count));
+ value = wx_truncate_cast(ValueT, key);
+}
+
+// the test
+template <class HashMapT>
+void HashMapTest()
+{
+#if wxUSE_STL && defined HAVE_STL_HASH_MAP
+ typedef typename HashMapT::value_type::second_type value_type;
+#else
+ typedef typename HashMapT::value_type::t2 value_type;
+#endif
+ typedef typename HashMapT::key_type key_type;
+ typedef typename HashMapT::iterator Itor;
+
+ HashMapT sh(0); // as small as possible
+ key_type buf;
+ value_type value;