便利なテストデータ用API 3 Cutterライブラリ
便利なテストデータ用API 構造体定義なしでテストデータを作成するためのAPI。

## Functions

void | gcut_add_datum ()
gboolean | gcut_data_has_field ()
#define | gcut_data_get_char()
const gchar * | gcut_data_get_string ()
gint | gcut_data_get_int ()
guint | gcut_data_get_uint ()
#define | gcut_data_get_int64()
#define | gcut_data_get_uint64()
#define | gcut_data_get_size()
guint | gcut_data_get_flags ()
gint | gcut_data_get_enum ()
gconstpointer | gcut_data_get_pointer ()
gconstpointer | gcut_data_get_boxed ()
GObject * | gcut_data_get_object ()
gboolean | gcut_data_get_boolean ()
gdouble | gcut_data_get_double ()

## オブジェクト階層

## 説明

cut_add_data() requires custom data type for complex test data. But it's not easy to write. `gcut_add_datum()` provides API to use complex test data without custom data type. It uses GType for providing complex data.

## Functions

### gcut_add_datum ()

    void
    gcut_add_datum (const gchar *name,
                    const gchar *first_field_name,
                    ...);

データ駆動テスト用のデータを追加します。複雑なテストデータのために新しく構造体を定義する必要がないため、`cut_add_data()`よりも便利です。

例:

    #include <gcutter.h>

    void data_translate (void);
    void test_translate (gconstpointer data);

    static const gchar*
    translate (gint input)
    {
       switch(input) {
       case 1:
           return "first";
       case 111:
           return "a hundred eleven";
       default:
           return "unsupported";
       }
    }

    void
    data_translate(void)
    {
        gcut_add_datum("simple data",
                       "translated", G_TYPE_STRING, "first",
                       "input", G_TYPE_INT, 1,
                       NULL);
        gcut_add_datum("complex data",
                       "translated", G_TYPE_STRING, "a hundred eleven",
                       "input", G_TYPE_INT, 111,
                       NULL);
    }

    void
    test_translate(gconstpointer data)
    {
        cut_assert_equal_string(gcut_data_get_string(data, "translated"),
                                translate(gcut_data_get_int(data, "input")));
    }

利用可能な型とその時の値は以下の通りです。

G_TYPE_CHAR

  gcharの値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_CHAR, 'X',
                     NULL);

G_TYPE_STRING

  const gchar *value

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_STRING, "string value",
                     NULL);

G_TYPE_INT

  gintの値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_INT, 100,
                     NULL);

G_TYPE_UINT

  guintの値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_UINT, 100,
                     NULL);

G_TYPE_INT64

  gint64の値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_INT64, G_GINT64_CONSTANT(100),
                     NULL);

G_TYPE_UINT64

  guint64の値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_UINT64, G_GUINT64_CONSTANT(100),
                     NULL);

G_TYPE_GTYPE

  GTypeの値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_GTYPE, G_TYPE_OBJECT,
                     NULL);

GFlagsの型

  その型の値。

  例:

      gcut_add_datum("data name",
                     "field-name", GTK_TYPE_WIDGET_FLAGS, GTK_TOPLEVEL | GTK_MAPPED,
                     NULL);

GEnumの型

  その型の値。

  例:

      gcut_add_datum("data name",
                     "field-name", GTK_TYPE_WRAP_MODE, GTK_WRAP_NONE,
                     NULL);

G_TYPE_POINTER

  gconstpointer value, GDestroyNotify notify

  valueが破棄されるときにnotifyが呼ばれます。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_POINTER, my_structure_new(...), my_structure_free,
                     NULL);

  注意: 値の所有者はCutterになります。解放しないで下さい。

GBoxedの型

  その型の値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_HASH_TABLE,
                     gcut_hash_table_string_string_new("name1", "value1",
                                                       "name2", "value2",
                                                       NULL),
                     NULL);

  注意: 値の所有者はCutterになります。解放しないで下さい。

G_TYPE_BOOLEAN

  gbooleanの値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_BOOLEAN, TRUE,
                     NULL);

G_TYPE_DOUBLE

  gdoubleの値。

  例:

      gcut_add_datum("data name",
                     "field-name", G_TYPE_DOUBLE, 2.9,
                     NULL);

#### Parameters

name | データの名前。 |
first_field_name | 最初のフィールド名。 |
... | 最初のフィールドの型と値。その後に、フィールドの名前と型と値の3つを任意の数だけ指定します。最後の引数は`NULL`にしてください。詳細は関数の説明文のところにあります。 |

1.0.6から

gcut_add_datum

### gcut_data_has_field ()

    gboolean
    gcut_data_has_field (gconstpointer data,
                         const gchar *field_name);

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

dataにfield_nameフィールドがあれば`TRUE`、そうでなければ`FALSE`。

1.1.5から

gcut_data_has_field

### gcut_data_get_char()

    #define             gcut_data_get_char(data, field_name)

field_nameフィールドの値を文字として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.1.3から

gcut_data_get_char

### gcut_data_get_string ()

    const gchar *
    gcut_data_get_string (gconstpointer data,
                          const gchar *field_name);

field_nameフィールドの値を文字列として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.0.6から

gcut_data_get_string

### gcut_data_get_int ()

    gint
    gcut_data_get_int (gconstpointer data,
                       const gchar *field_name);

field_nameフィールドの値を整数として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.0.6から

gcut_data_get_int

### gcut_data_get_uint ()

    guint
    gcut_data_get_uint (gconstpointer data,
                        const gchar *field_name);

field_nameの値を符号なし整数として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.0.6から

gcut_data_get_uint

### gcut_data_get_int64()

    #define             gcut_data_get_int64(data, field_name)

field_nameフィールドの値を64bit整数として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.1.3から

gcut_data_get_int64

### gcut_data_get_uint64()

    #define             gcut_data_get_uint64(data, field_name)

field_nameの値を64bit符号なし整数として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.1.3から

gcut_data_get_uint64

### gcut_data_get_size()

    #define             gcut_data_get_size(data, field_name)

field_nameフィールドの値をsize_tとして取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.1.3から

gcut_data_get_size

### gcut_data_get_flags ()

    guint
    gcut_data_get_flags (gconstpointer data,
                         const gchar *field_name);

field_nameの値をGFlags型の符号なし整数として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.0.6から

gcut_data_get_flags

### gcut_data_get_enum ()

    gint
    gcut_data_get_enum (gconstpointer data,
                        const gchar *field_name);

field_nameフィールドの値をGEnum型の整数として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.0.6から

gcut_data_get_enum

### gcut_data_get_pointer ()

    gconstpointer
    gcut_data_get_pointer (gconstpointer data,
                           const gchar *field_name);

field_nameの値をポインタとして取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.0.6から

gcut_data_get_pointer

### gcut_data_get_boxed ()

    gconstpointer
    gcut_data_get_boxed (gconstpointer data,
                         const gchar *field_name);

field_nameフィールドの値をGBoxed型の値として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.0.7から

gcut_data_get_boxed

### gcut_data_get_object ()

    GObject *
    gcut_data_get_object (gconstpointer data,
                          const gchar *field_name);

field_nameフィールドの値をGObjectとして取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.1.1から

gcut_data_get_object

### gcut_data_get_boolean ()

    gboolean
    gcut_data_get_boolean (gconstpointer data,
                           const gchar *field_name);

field_nameの値を真偽値として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.1.3から

gcut_data_get_boolean

### gcut_data_get_double ()

    gdouble
    gcut_data_get_double (gconstpointer data,
                          const gchar *field_name);

field_nameの値を倍精度浮動小数点数として取得します。

#### Parameters

data | `gcut_add_datum()`で追加したデータ。 |
field_name | フィールド名。 |

#### Returns

a field value corresponded to field_name .

1.1.3から

gcut_data_get_double

## Types and Values