GHashTable用の検証ユーティリティ

GHashTable用の検証ユーティリティ — GHashTableに関する検証をもっと簡単に書くためのユーティリティ。

概要

gboolean            gcut_hash_table_equal               (GHashTable *hash1,
                                                         GHashTable *hash2,
                                                         GEqualFunc equal_func);
gchar *             gcut_hash_table_inspect             (GHashTable *hash,
                                                         GCutInspectFunction key_inspect_func,
                                                         GCutInspectFunction value_inspect_func,
                                                         gpointer user_data);
gchar *             gcut_hash_table_inspect_sorted      (GHashTable *hash,
                                                         GCutInspectFunction key_inspect_func,
                                                         GCutInspectFunction value_inspect_func,
                                                         GCompareFunc key_compare_func,
                                                         gpointer user_data);
gboolean            gcut_hash_table_string_equal        (GHashTable *hash1,
                                                         GHashTable *hash2);
GHashTable *        gcut_hash_table_string_string_copy  (GHashTable *hash);
gchar *             gcut_hash_table_string_string_inspect
                                                        (GHashTable *hash);

説明

検証を書くためには等価性を検証し、期待値と実測値を表示する必要があります。

このユーティリティはGHashTableに関する検証の作成を補助します。

詳細

gcut_hash_table_equal ()

gboolean            gcut_hash_table_equal               (GHashTable *hash1,
                                                         GHashTable *hash2,
                                                         GEqualFunc equal_func);

ふたつのGHashTablehash1hash2を比較します。equal_funchash1hash2の同じキーに対応する値それぞれについて呼ばれます。

例:

TODO

hash1 :

比較するGHashTable

hash2 :

比較するGHashTable

equal_func :

ふたつの値を比較する関数。

戻り値 :

同じキーに対応するすべてのhash1hash2の値がequal_funcでTRUEとなったらTRUE、そうでない場合はFALSE。

1.0.5から


gcut_hash_table_inspect ()

gchar *             gcut_hash_table_inspect             (GHashTable *hash,
                                                         GCutInspectFunction key_inspect_func,
                                                         GCutInspectFunction value_inspect_func,
                                                         gpointer user_data);

hashの詳細を返します。hashの各キーはkey_inspect_funcで詳細化し、hashの各値はvalue_inspect_funcで詳細化します。返された文字列が必要なくなったときは開放してください。

例:

TODO

hash :

詳細を示すGHashTable

key_inspect_func :

各キーの詳細を示す関数。

value_inspect_func :

各値の詳細を示す関数。

user_data :

関数に渡すユーザ用データ。

戻り値 :

hashの詳細を示した文字列。

1.0.5から


gcut_hash_table_inspect_sorted ()

gchar *             gcut_hash_table_inspect_sorted      (GHashTable *hash,
                                                         GCutInspectFunction key_inspect_func,
                                                         GCutInspectFunction value_inspect_func,
                                                         GCompareFunc key_compare_func,
                                                         gpointer user_data);

key_compare_funcを使ってキーを基準にしてhashを並び替えて、その詳細を返します。hashの各キーはkey_inspect_funcで詳細化し、hashの各値はvalue_inspect_funcで詳細化します。返された文字列が必要なくなったときは開放してください。

key_compare_funcNULLならhashを並び替えません。これはgcut_hash_table_inspect()と同じ動作です。

例:

TODO

hash :

並び替えて詳細を示すGHashTable

key_inspect_func :

各キーの詳細を示す関数。

value_inspect_func :

各値の詳細を示す関数。

key_compare_func :

各キーを比較する関数。

user_data :

関数に渡すユーザ用データ。

戻り値 :

hashを並び替えて詳細を示した文字列。

1.0.9から


gcut_hash_table_string_equal ()

gboolean            gcut_hash_table_string_equal        (GHashTable *hash1,
                                                         GHashTable *hash2);

ふたつのGHashTablehash1hash2を比較します。hash1hash2は文字列のキーと文字列の値を持っていなければいけません。

hash1 :

比較するGHashTable

hash2 :

比較するGHashTable

戻り値 :

hash1hash2の同じキーの値それぞれすべてが同じ内容の文字列の場合TRUE、そうでない場合はFALSE。

1.0.5から


gcut_hash_table_string_string_copy ()

GHashTable *        gcut_hash_table_string_string_copy  (GHashTable *hash);

hashを複製します。hashは文字列のキーと文字列の値を持っていなければいけません。返されたhashg_hash_table_unref()で開放しなければいけません。

hash :

複製するGHashTable

戻り値 :

複製されたGHashTable。必要がなくなったら開放しなければいけません。

1.0.8から


gcut_hash_table_string_string_inspect ()

gchar *             gcut_hash_table_string_string_inspect
                                                        (GHashTable *hash);

hashの詳細を返します。hashは文字列のキーと文字列の値を持っていなければいけません。返された文字列が必要なくなったときは開放してください。

hash :

詳細を示すGHashTable

戻り値 :

hashの詳細を示した文字列。

1.0.5から