/* testmultimap.c generated by valac 0.56.3, the Vala compiler
 * generated from testmultimap.vala, do not modify */

/* testmultimap.vala
 *
 * Copyright (C) 2008  Jürg Billeter
 * Copyright (C) 2009  Didier Villevalois, Julien Peeters
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 * Author:
 * 	Jürg Billeter <j@bitron.ch>
 * 	Didier 'Ptitjes' Villevalois <ptitjes@free.fr>
 * 	Julien Peeters <contact@julienpeeters.fr>
 */

#include <glib-object.h>
#include <gee.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>

#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define GEE_TYPE_TEST_CASE (gee_test_case_get_type ())
#define GEE_TEST_CASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TEST_CASE, GeeTestCase))
#define GEE_TEST_CASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TEST_CASE, GeeTestCaseClass))
#define GEE_IS_TEST_CASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TEST_CASE))
#define GEE_IS_TEST_CASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_TEST_CASE))
#define GEE_TEST_CASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_TEST_CASE, GeeTestCaseClass))

typedef struct _GeeTestCase GeeTestCase;
typedef struct _GeeTestCaseClass GeeTestCaseClass;
typedef struct _GeeTestCasePrivate GeeTestCasePrivate;

#define TYPE_MULTI_MAP_TESTS (multi_map_tests_get_type ())
#define MULTI_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_MAP_TESTS, MultiMapTests))
#define MULTI_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_MAP_TESTS, MultiMapTestsClass))
#define IS_MULTI_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_MAP_TESTS))
#define IS_MULTI_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_MAP_TESTS))
#define MULTI_MAP_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_MAP_TESTS, MultiMapTestsClass))

typedef struct _MultiMapTests MultiMapTests;
typedef struct _MultiMapTestsClass MultiMapTestsClass;
typedef struct _MultiMapTestsPrivate MultiMapTestsPrivate;
enum  {
	MULTI_MAP_TESTS_0_PROPERTY,
	MULTI_MAP_TESTS_NUM_PROPERTIES
};
static GParamSpec* multi_map_tests_properties[MULTI_MAP_TESTS_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef void (*GeeTestCaseTestMethod) (gpointer user_data);
#define _g_free0(var) (var = (g_free (var), NULL))
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);
#define _vala_return_if_fail(expr, msg) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return; }
#define _vala_return_val_if_fail(expr, msg, val) if G_LIKELY (expr) ; else { g_return_if_fail_warning (G_LOG_DOMAIN, G_STRFUNC, msg); return val; }
#define _vala_warn_if_fail(expr, msg) if G_LIKELY (expr) ; else g_warn_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, msg);

struct _GeeTestCase {
	GObject parent_instance;
	GeeTestCasePrivate * priv;
};

struct _GeeTestCaseClass {
	GObjectClass parent_class;
	void (*set_up) (GeeTestCase* self);
	void (*tear_down) (GeeTestCase* self);
};

struct _MultiMapTests {
	GeeTestCase parent_instance;
	MultiMapTestsPrivate * priv;
	GeeMultiMap* test_multi_map;
};

struct _MultiMapTestsClass {
	GeeTestCaseClass parent_class;
};

static gpointer multi_map_tests_parent_class = NULL;

VALA_EXTERN GType gee_test_case_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GeeTestCase, g_object_unref)
VALA_EXTERN GType multi_map_tests_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MultiMapTests, g_object_unref)
VALA_EXTERN MultiMapTests* multi_map_tests_construct (GType object_type,
                                          const gchar* name);
VALA_EXTERN GeeTestCase* gee_test_case_construct (GType object_type,
                                      const gchar* name);
VALA_EXTERN void gee_test_case_add_test (GeeTestCase* self,
                             const gchar* name,
                             GeeTestCaseTestMethod test,
                             gpointer test_target,
                             GDestroyNotify test_target_destroy_notify);
VALA_EXTERN void multi_map_tests_test_type_correctness (MultiMapTests* self);
static void _multi_map_tests_test_type_correctness_gee_test_case_test_method (gpointer self);
static void multi_map_tests_test_size (MultiMapTests* self);
static void _multi_map_tests_test_size_gee_test_case_test_method (gpointer self);
static void multi_map_tests_test_getting_setting (MultiMapTests* self);
static void _multi_map_tests_test_getting_setting_gee_test_case_test_method (gpointer self);
static void multi_map_tests_test_keys_all_keys_values (MultiMapTests* self);
static void _multi_map_tests_test_keys_all_keys_values_gee_test_case_test_method (gpointer self);
static void multi_map_tests_finalize (GObject * obj);
static GType multi_map_tests_get_type_once (void);

static void
_multi_map_tests_test_type_correctness_gee_test_case_test_method (gpointer self)
{
	multi_map_tests_test_type_correctness ((MultiMapTests*) self);
}

static void
_multi_map_tests_test_size_gee_test_case_test_method (gpointer self)
{
	multi_map_tests_test_size ((MultiMapTests*) self);
}

static void
_multi_map_tests_test_getting_setting_gee_test_case_test_method (gpointer self)
{
	multi_map_tests_test_getting_setting ((MultiMapTests*) self);
}

static void
_multi_map_tests_test_keys_all_keys_values_gee_test_case_test_method (gpointer self)
{
	multi_map_tests_test_keys_all_keys_values ((MultiMapTests*) self);
}

MultiMapTests*
multi_map_tests_construct (GType object_type,
                           const gchar* name)
{
	MultiMapTests * self = NULL;
	g_return_val_if_fail (name != NULL, NULL);
	self = (MultiMapTests*) gee_test_case_construct (object_type, name);
	gee_test_case_add_test ((GeeTestCase*) self, "[MultiMap] type correctness", _multi_map_tests_test_type_correctness_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	gee_test_case_add_test ((GeeTestCase*) self, "[MultiMap] size", _multi_map_tests_test_size_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	gee_test_case_add_test ((GeeTestCase*) self, "[MultiMap] getting and setting", _multi_map_tests_test_getting_setting_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	gee_test_case_add_test ((GeeTestCase*) self, "[MultiMap] keys, all keys and values", _multi_map_tests_test_keys_all_keys_values_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	return self;
}

void
multi_map_tests_test_type_correctness (MultiMapTests* self)
{
	GeeMultiMap* _tmp0_;
	GeeMultiMap* _tmp1_;
	GType _tmp2_;
	GType _tmp3_;
	GeeMultiMap* _tmp4_;
	GType _tmp5_;
	GType _tmp6_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->test_multi_map;
	_vala_assert (_tmp0_ != NULL, "test_multi_map != null");
	_tmp1_ = self->test_multi_map;
	_tmp2_ = gee_multi_map_get_key_type (_tmp1_);
	_tmp3_ = _tmp2_;
	_vala_assert (_tmp3_ == G_TYPE_STRING, "test_multi_map.key_type == typeof (string)");
	_tmp4_ = self->test_multi_map;
	_tmp5_ = gee_multi_map_get_value_type (_tmp4_);
	_tmp6_ = _tmp5_;
	_vala_assert (_tmp6_ == G_TYPE_STRING, "test_multi_map.value_type == typeof (string)");
}

static void
multi_map_tests_test_size (MultiMapTests* self)
{
	GeeMultiMap* _tmp0_;
	GeeMultiMap* _tmp1_;
	gint _tmp2_;
	gint _tmp3_;
	GeeMultiMap* _tmp4_;
	GeeMultiMap* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	GeeMultiMap* _tmp8_;
	GeeMultiMap* _tmp9_;
	gint _tmp10_;
	gint _tmp11_;
	GeeMultiMap* _tmp12_;
	GeeMultiMap* _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
	GeeMultiMap* _tmp16_;
	GeeMultiMap* _tmp17_;
	GeeMultiMap* _tmp18_;
	gint _tmp19_;
	gint _tmp20_;
	GeeMultiMap* _tmp21_;
	GeeMultiMap* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	GeeMultiMap* _tmp25_;
	GeeMultiMap* _tmp26_;
	gint _tmp27_;
	gint _tmp28_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->test_multi_map;
	_vala_assert (_tmp0_ != NULL, "test_multi_map != null");
	_tmp1_ = self->test_multi_map;
	_tmp2_ = gee_multi_map_get_size (_tmp1_);
	_tmp3_ = _tmp2_;
	_vala_assert (_tmp3_ == 0, "test_multi_map.size == 0");
	_tmp4_ = self->test_multi_map;
	gee_multi_map_set (_tmp4_, "0", "0");
	_tmp5_ = self->test_multi_map;
	_tmp6_ = gee_multi_map_get_size (_tmp5_);
	_tmp7_ = _tmp6_;
	_vala_assert (_tmp7_ == 1, "test_multi_map.size == 1");
	_tmp8_ = self->test_multi_map;
	gee_multi_map_set (_tmp8_, "0", "1");
	_tmp9_ = self->test_multi_map;
	_tmp10_ = gee_multi_map_get_size (_tmp9_);
	_tmp11_ = _tmp10_;
	_vala_assert (_tmp11_ == 2, "test_multi_map.size == 2");
	_tmp12_ = self->test_multi_map;
	gee_multi_map_remove (_tmp12_, "0", "1");
	_tmp13_ = self->test_multi_map;
	_tmp14_ = gee_multi_map_get_size (_tmp13_);
	_tmp15_ = _tmp14_;
	_vala_assert (_tmp15_ == 1, "test_multi_map.size == 1");
	_tmp16_ = self->test_multi_map;
	gee_multi_map_set (_tmp16_, "0", "1");
	_tmp17_ = self->test_multi_map;
	gee_multi_map_remove_all (_tmp17_, "0");
	_tmp18_ = self->test_multi_map;
	_tmp19_ = gee_multi_map_get_size (_tmp18_);
	_tmp20_ = _tmp19_;
	_vala_assert (_tmp20_ == 0, "test_multi_map.size == 0");
	_tmp21_ = self->test_multi_map;
	gee_multi_map_set (_tmp21_, "0", "0");
	_tmp22_ = self->test_multi_map;
	_tmp23_ = gee_multi_map_get_size (_tmp22_);
	_tmp24_ = _tmp23_;
	_vala_assert (_tmp24_ == 1, "test_multi_map.size == 1");
	_tmp25_ = self->test_multi_map;
	gee_multi_map_set (_tmp25_, "1", "1");
	_tmp26_ = self->test_multi_map;
	_tmp27_ = gee_multi_map_get_size (_tmp26_);
	_tmp28_ = _tmp27_;
	_vala_assert (_tmp28_ == 2, "test_multi_map.size == 2");
}

static void
multi_map_tests_test_getting_setting (MultiMapTests* self)
{
	GeeMultiMap* _tmp0_;
	GeeMultiMap* _tmp1_;
	GeeMultiMap* _tmp2_;
	GeeMultiMap* _tmp3_;
	GeeCollection* _tmp4_;
	GeeCollection* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	GeeMultiMap* _tmp8_;
	GeeCollection* _tmp9_;
	GeeCollection* _tmp10_;
	GeeMultiMap* _tmp11_;
	GeeCollection* _tmp12_;
	GeeCollection* _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
	GeeMultiMap* _tmp16_;
	GeeMultiMap* _tmp17_;
	GeeCollection* _tmp18_;
	GeeCollection* _tmp19_;
	gint _tmp20_;
	gint _tmp21_;
	GeeMultiMap* _tmp22_;
	GeeCollection* _tmp23_;
	GeeCollection* _tmp24_;
	GeeMultiMap* _tmp25_;
	GeeCollection* _tmp26_;
	GeeCollection* _tmp27_;
	GeeMultiMap* _tmp28_;
	GeeMultiMap* _tmp29_;
	GeeMultiMap* _tmp30_;
	GeeCollection* _tmp31_;
	GeeCollection* _tmp32_;
	gint _tmp33_;
	gint _tmp34_;
	GeeMultiMap* _tmp35_;
	GeeCollection* _tmp36_;
	GeeCollection* _tmp37_;
	GeeMultiMap* _tmp38_;
	GeeCollection* _tmp39_;
	GeeCollection* _tmp40_;
	GeeMultiMap* _tmp41_;
	GeeCollection* _tmp42_;
	GeeCollection* _tmp43_;
	gint _tmp44_;
	gint _tmp45_;
	GeeMultiMap* _tmp46_;
	GeeCollection* _tmp47_;
	GeeCollection* _tmp48_;
	GeeMultiMap* _tmp49_;
	GeeMultiMap* _tmp50_;
	GeeMultiMap* _tmp51_;
	GeeCollection* _tmp52_;
	GeeCollection* _tmp53_;
	GeeMultiMap* _tmp54_;
	GeeCollection* _tmp55_;
	GeeCollection* _tmp56_;
	GeeMultiMap* _tmp57_;
	GeeMultiMap* _tmp58_;
	GeeCollection* _tmp59_;
	GeeCollection* _tmp60_;
	GeeMultiMap* _tmp61_;
	GeeMultiMap* _tmp62_;
	GeeMultiMap* _tmp63_;
	GeeCollection* _tmp64_;
	GeeCollection* _tmp65_;
	GeeMultiMap* _tmp66_;
	GeeCollection* _tmp67_;
	GeeCollection* _tmp68_;
	GeeMultiMap* _tmp69_;
	GeeMultiMap* _tmp70_;
	GeeCollection* _tmp71_;
	GeeCollection* _tmp72_;
	GeeMultiMap* _tmp73_;
	GeeMultiMap* _tmp74_;
	GeeMultiMap* _tmp75_;
	GeeCollection* _tmp76_;
	GeeCollection* _tmp77_;
	GeeMultiMap* _tmp78_;
	GeeCollection* _tmp79_;
	GeeCollection* _tmp80_;
	GeeMultiMap* _tmp81_;
	GeeMultiMap* _tmp82_;
	GeeCollection* _tmp83_;
	GeeCollection* _tmp84_;
	GeeMultiMap* _tmp85_;
	GeeMultiMap* _tmp86_;
	GeeMultiMap* _tmp87_;
	GeeMultiMap* _tmp88_;
	GeeMultiMap* _tmp89_;
	GeeMultiMap* _tmp90_;
	GeeMultiMap* _tmp91_;
	gint _tmp92_;
	gint _tmp93_;
	GeeMultiMap* _tmp94_;
	GeeMultiMap* _tmp95_;
	GeeMultiMap* _tmp96_;
	GeeCollection* _tmp97_;
	GeeCollection* _tmp98_;
	gint _tmp99_;
	gint _tmp100_;
	GeeMultiMap* _tmp101_;
	GeeCollection* _tmp102_;
	GeeCollection* _tmp103_;
	GeeMultiMap* _tmp104_;
	GeeCollection* _tmp105_;
	GeeCollection* _tmp106_;
	GeeMultiMap* _tmp107_;
	GeeCollection* _tmp108_;
	GeeCollection* _tmp109_;
	gint _tmp110_;
	gint _tmp111_;
	GeeMultiMap* _tmp112_;
	GeeCollection* _tmp113_;
	GeeCollection* _tmp114_;
	GeeMultiMap* _tmp115_;
	GeeMultiMap* _tmp116_;
	GeeMultiMap* _tmp117_;
	GeeCollection* _tmp118_;
	GeeCollection* _tmp119_;
	GeeMultiMap* _tmp120_;
	GeeCollection* _tmp121_;
	GeeCollection* _tmp122_;
	GeeMultiMap* _tmp123_;
	GeeMultiMap* _tmp124_;
	GeeCollection* _tmp125_;
	GeeCollection* _tmp126_;
	GeeMultiMap* _tmp127_;
	GeeMultiMap* _tmp128_;
	GeeMultiMap* _tmp129_;
	GeeCollection* _tmp130_;
	GeeCollection* _tmp131_;
	GeeMultiMap* _tmp132_;
	GeeCollection* _tmp133_;
	GeeCollection* _tmp134_;
	GeeMultiMap* _tmp135_;
	GeeMultiMap* _tmp136_;
	GeeCollection* _tmp137_;
	GeeCollection* _tmp138_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->test_multi_map;
	_vala_assert (_tmp0_ != NULL, "test_multi_map != null");
	_tmp1_ = self->test_multi_map;
	gee_multi_map_set (_tmp1_, "0", "0");
	_tmp2_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp2_, "0"), "test_multi_map.contains (\"0\")");
	_tmp3_ = self->test_multi_map;
	_tmp4_ = gee_multi_map_get (_tmp3_, "0");
	_tmp5_ = _tmp4_;
	_tmp6_ = gee_collection_get_size (_tmp5_);
	_tmp7_ = _tmp6_;
	_vala_assert (_tmp7_ == 1, "test_multi_map.get (\"0\").size == 1");
	_g_object_unref0 (_tmp5_);
	_tmp8_ = self->test_multi_map;
	_tmp9_ = gee_multi_map_get (_tmp8_, "0");
	_tmp10_ = _tmp9_;
	_vala_assert (gee_collection_contains (_tmp10_, "0"), "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp10_);
	_tmp11_ = self->test_multi_map;
	_tmp12_ = gee_multi_map_get (_tmp11_, "1");
	_tmp13_ = _tmp12_;
	_tmp14_ = gee_collection_get_size (_tmp13_);
	_tmp15_ = _tmp14_;
	_vala_assert (_tmp15_ == 0, "test_multi_map.get (\"1\").size == 0");
	_g_object_unref0 (_tmp13_);
	_tmp16_ = self->test_multi_map;
	gee_multi_map_set (_tmp16_, "0", "1");
	_tmp17_ = self->test_multi_map;
	_tmp18_ = gee_multi_map_get (_tmp17_, "0");
	_tmp19_ = _tmp18_;
	_tmp20_ = gee_collection_get_size (_tmp19_);
	_tmp21_ = _tmp20_;
	_vala_assert (_tmp21_ == 2, "test_multi_map.get (\"0\").size == 2");
	_g_object_unref0 (_tmp19_);
	_tmp22_ = self->test_multi_map;
	_tmp23_ = gee_multi_map_get (_tmp22_, "0");
	_tmp24_ = _tmp23_;
	_vala_assert (gee_collection_contains (_tmp24_, "0"), "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp24_);
	_tmp25_ = self->test_multi_map;
	_tmp26_ = gee_multi_map_get (_tmp25_, "0");
	_tmp27_ = _tmp26_;
	_vala_assert (gee_collection_contains (_tmp27_, "1"), "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp27_);
	_tmp28_ = self->test_multi_map;
	gee_multi_map_set (_tmp28_, "1", "1");
	_tmp29_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp29_, "1"), "test_multi_map.contains (\"1\")");
	_tmp30_ = self->test_multi_map;
	_tmp31_ = gee_multi_map_get (_tmp30_, "0");
	_tmp32_ = _tmp31_;
	_tmp33_ = gee_collection_get_size (_tmp32_);
	_tmp34_ = _tmp33_;
	_vala_assert (_tmp34_ == 2, "test_multi_map.get (\"0\").size == 2");
	_g_object_unref0 (_tmp32_);
	_tmp35_ = self->test_multi_map;
	_tmp36_ = gee_multi_map_get (_tmp35_, "0");
	_tmp37_ = _tmp36_;
	_vala_assert (gee_collection_contains (_tmp37_, "0"), "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp37_);
	_tmp38_ = self->test_multi_map;
	_tmp39_ = gee_multi_map_get (_tmp38_, "0");
	_tmp40_ = _tmp39_;
	_vala_assert (gee_collection_contains (_tmp40_, "1"), "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp40_);
	_tmp41_ = self->test_multi_map;
	_tmp42_ = gee_multi_map_get (_tmp41_, "1");
	_tmp43_ = _tmp42_;
	_tmp44_ = gee_collection_get_size (_tmp43_);
	_tmp45_ = _tmp44_;
	_vala_assert (_tmp45_ == 1, "test_multi_map.get (\"1\").size == 1");
	_g_object_unref0 (_tmp43_);
	_tmp46_ = self->test_multi_map;
	_tmp47_ = gee_multi_map_get (_tmp46_, "0");
	_tmp48_ = _tmp47_;
	_vala_assert (gee_collection_contains (_tmp48_, "1"), "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp48_);
	_tmp49_ = self->test_multi_map;
	_vala_assert (gee_multi_map_remove (_tmp49_, "0", "0"), "test_multi_map.remove (\"0\", \"0\")");
	_tmp50_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp50_, "0"), "test_multi_map.contains (\"0\")");
	_tmp51_ = self->test_multi_map;
	_tmp52_ = gee_multi_map_get (_tmp51_, "0");
	_tmp53_ = _tmp52_;
	_vala_assert (!gee_collection_contains (_tmp53_, "0"), "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp53_);
	_tmp54_ = self->test_multi_map;
	_tmp55_ = gee_multi_map_get (_tmp54_, "0");
	_tmp56_ = _tmp55_;
	_vala_assert (gee_collection_contains (_tmp56_, "1"), "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp56_);
	_tmp57_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp57_, "1"), "test_multi_map.contains (\"1\")");
	_tmp58_ = self->test_multi_map;
	_tmp59_ = gee_multi_map_get (_tmp58_, "1");
	_tmp60_ = _tmp59_;
	_vala_assert (gee_collection_contains (_tmp60_, "1"), "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp60_);
	_tmp61_ = self->test_multi_map;
	_vala_assert (gee_multi_map_remove (_tmp61_, "0", "1"), "test_multi_map.remove (\"0\", \"1\")");
	_tmp62_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_contains (_tmp62_, "0"), "! test_multi_map.contains (\"0\")");
	_tmp63_ = self->test_multi_map;
	_tmp64_ = gee_multi_map_get (_tmp63_, "0");
	_tmp65_ = _tmp64_;
	_vala_assert (!gee_collection_contains (_tmp65_, "0"), "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp65_);
	_tmp66_ = self->test_multi_map;
	_tmp67_ = gee_multi_map_get (_tmp66_, "0");
	_tmp68_ = _tmp67_;
	_vala_assert (!gee_collection_contains (_tmp68_, "1"), "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp68_);
	_tmp69_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp69_, "1"), "test_multi_map.contains (\"1\")");
	_tmp70_ = self->test_multi_map;
	_tmp71_ = gee_multi_map_get (_tmp70_, "1");
	_tmp72_ = _tmp71_;
	_vala_assert (gee_collection_contains (_tmp72_, "1"), "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp72_);
	_tmp73_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_remove (_tmp73_, "0", "1"), "! test_multi_map.remove (\"0\", \"1\")");
	_tmp74_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_contains (_tmp74_, "0"), "! test_multi_map.contains (\"0\")");
	_tmp75_ = self->test_multi_map;
	_tmp76_ = gee_multi_map_get (_tmp75_, "0");
	_tmp77_ = _tmp76_;
	_vala_assert (!gee_collection_contains (_tmp77_, "0"), "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp77_);
	_tmp78_ = self->test_multi_map;
	_tmp79_ = gee_multi_map_get (_tmp78_, "0");
	_tmp80_ = _tmp79_;
	_vala_assert (!gee_collection_contains (_tmp80_, "1"), "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp80_);
	_tmp81_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp81_, "1"), "test_multi_map.contains (\"1\")");
	_tmp82_ = self->test_multi_map;
	_tmp83_ = gee_multi_map_get (_tmp82_, "1");
	_tmp84_ = _tmp83_;
	_vala_assert (gee_collection_contains (_tmp84_, "1"), "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp84_);
	_tmp85_ = self->test_multi_map;
	gee_multi_map_clear (_tmp85_);
	_tmp86_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_contains (_tmp86_, "0"), "! test_multi_map.contains (\"0\")");
	_tmp87_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_contains (_tmp87_, "1"), "! test_multi_map.contains (\"1\")");
	_tmp88_ = self->test_multi_map;
	gee_multi_map_set (_tmp88_, "0", "0");
	_tmp89_ = self->test_multi_map;
	gee_multi_map_set (_tmp89_, "0", "1");
	_tmp90_ = self->test_multi_map;
	gee_multi_map_set (_tmp90_, "1", "1");
	_tmp91_ = self->test_multi_map;
	_tmp92_ = gee_multi_map_get_size (_tmp91_);
	_tmp93_ = _tmp92_;
	_vala_assert (_tmp93_ == 3, "test_multi_map.size == 3");
	_tmp94_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp94_, "0"), "test_multi_map.contains (\"0\")");
	_tmp95_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp95_, "1"), "test_multi_map.contains (\"1\")");
	_tmp96_ = self->test_multi_map;
	_tmp97_ = gee_multi_map_get (_tmp96_, "0");
	_tmp98_ = _tmp97_;
	_tmp99_ = gee_collection_get_size (_tmp98_);
	_tmp100_ = _tmp99_;
	_vala_assert (_tmp100_ == 2, "test_multi_map.get (\"0\").size == 2");
	_g_object_unref0 (_tmp98_);
	_tmp101_ = self->test_multi_map;
	_tmp102_ = gee_multi_map_get (_tmp101_, "0");
	_tmp103_ = _tmp102_;
	_vala_assert (gee_collection_contains (_tmp103_, "0"), "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp103_);
	_tmp104_ = self->test_multi_map;
	_tmp105_ = gee_multi_map_get (_tmp104_, "0");
	_tmp106_ = _tmp105_;
	_vala_assert (gee_collection_contains (_tmp106_, "1"), "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp106_);
	_tmp107_ = self->test_multi_map;
	_tmp108_ = gee_multi_map_get (_tmp107_, "1");
	_tmp109_ = _tmp108_;
	_tmp110_ = gee_collection_get_size (_tmp109_);
	_tmp111_ = _tmp110_;
	_vala_assert (_tmp111_ == 1, "test_multi_map.get (\"1\").size == 1");
	_g_object_unref0 (_tmp109_);
	_tmp112_ = self->test_multi_map;
	_tmp113_ = gee_multi_map_get (_tmp112_, "0");
	_tmp114_ = _tmp113_;
	_vala_assert (gee_collection_contains (_tmp114_, "1"), "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp114_);
	_tmp115_ = self->test_multi_map;
	_vala_assert (gee_multi_map_remove_all (_tmp115_, "0"), "test_multi_map.remove_all (\"0\")");
	_tmp116_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_contains (_tmp116_, "0"), "! test_multi_map.contains (\"0\")");
	_tmp117_ = self->test_multi_map;
	_tmp118_ = gee_multi_map_get (_tmp117_, "0");
	_tmp119_ = _tmp118_;
	_vala_assert (!gee_collection_contains (_tmp119_, "0"), "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp119_);
	_tmp120_ = self->test_multi_map;
	_tmp121_ = gee_multi_map_get (_tmp120_, "0");
	_tmp122_ = _tmp121_;
	_vala_assert (!gee_collection_contains (_tmp122_, "1"), "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp122_);
	_tmp123_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp123_, "1"), "test_multi_map.contains (\"1\")");
	_tmp124_ = self->test_multi_map;
	_tmp125_ = gee_multi_map_get (_tmp124_, "1");
	_tmp126_ = _tmp125_;
	_vala_assert (gee_collection_contains (_tmp126_, "1"), "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp126_);
	_tmp127_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_remove_all (_tmp127_, "0"), "! test_multi_map.remove_all (\"0\")");
	_tmp128_ = self->test_multi_map;
	_vala_assert (!gee_multi_map_contains (_tmp128_, "0"), "! test_multi_map.contains (\"0\")");
	_tmp129_ = self->test_multi_map;
	_tmp130_ = gee_multi_map_get (_tmp129_, "0");
	_tmp131_ = _tmp130_;
	_vala_assert (!gee_collection_contains (_tmp131_, "0"), "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp131_);
	_tmp132_ = self->test_multi_map;
	_tmp133_ = gee_multi_map_get (_tmp132_, "0");
	_tmp134_ = _tmp133_;
	_vala_assert (!gee_collection_contains (_tmp134_, "1"), "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp134_);
	_tmp135_ = self->test_multi_map;
	_vala_assert (gee_multi_map_contains (_tmp135_, "1"), "test_multi_map.contains (\"1\")");
	_tmp136_ = self->test_multi_map;
	_tmp137_ = gee_multi_map_get (_tmp136_, "1");
	_tmp138_ = _tmp137_;
	_vala_assert (gee_collection_contains (_tmp138_, "1"), "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp138_);
}

static void
multi_map_tests_test_keys_all_keys_values (MultiMapTests* self)
{
	GeeMultiMap* _tmp0_;
	GeeMultiMap* _tmp1_;
	GeeMultiMap* _tmp2_;
	GeeMultiMap* _tmp3_;
	GeeSet* keys = NULL;
	GeeMultiMap* _tmp4_;
	GeeSet* _tmp5_;
	GeeMultiSet* all_keys = NULL;
	GeeMultiMap* _tmp6_;
	GeeMultiSet* _tmp7_;
	GeeCollection* values = NULL;
	GeeMultiMap* _tmp8_;
	GeeCollection* _tmp9_;
	GeeSet* _tmp10_;
	GeeSet* _tmp11_;
	GeeMultiSet* _tmp12_;
	GeeMultiSet* _tmp13_;
	GeeCollection* _tmp14_;
	GeeCollection* _tmp15_;
	gboolean zero_found = FALSE;
	gboolean zero_found_once = FALSE;
	gboolean one_found = FALSE;
	gboolean one_found_twice = FALSE;
	gboolean nothing_more = FALSE;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->test_multi_map;
	_vala_assert (_tmp0_ != NULL, "test_multi_map != null");
	_tmp1_ = self->test_multi_map;
	gee_multi_map_set (_tmp1_, "0", "0");
	_tmp2_ = self->test_multi_map;
	gee_multi_map_set (_tmp2_, "0", "1");
	_tmp3_ = self->test_multi_map;
	gee_multi_map_set (_tmp3_, "1", "1");
	_tmp4_ = self->test_multi_map;
	_tmp5_ = gee_multi_map_get_keys (_tmp4_);
	keys = _tmp5_;
	_tmp6_ = self->test_multi_map;
	_tmp7_ = gee_multi_map_get_all_keys (_tmp6_);
	all_keys = _tmp7_;
	_tmp8_ = self->test_multi_map;
	_tmp9_ = gee_multi_map_get_values (_tmp8_);
	values = _tmp9_;
	_tmp10_ = keys;
	_vala_assert (gee_collection_contains ((GeeCollection*) _tmp10_, "0"), "keys.contains (\"0\")");
	_tmp11_ = keys;
	_vala_assert (gee_collection_contains ((GeeCollection*) _tmp11_, "1"), "keys.contains (\"1\")");
	_tmp12_ = all_keys;
	_vala_assert (gee_multi_set_count (_tmp12_, "0") == 2, "all_keys.count (\"0\") == 2");
	_tmp13_ = all_keys;
	_vala_assert (gee_multi_set_count (_tmp13_, "1") == 1, "all_keys.count (\"1\") == 1");
	_tmp14_ = values;
	_vala_assert (gee_collection_contains (_tmp14_, "0"), "values.contains (\"0\")");
	_tmp15_ = values;
	_vala_assert (gee_collection_contains (_tmp15_, "1"), "values.contains (\"1\")");
	zero_found = FALSE;
	zero_found_once = TRUE;
	one_found = FALSE;
	one_found_twice = FALSE;
	nothing_more = TRUE;
	{
		GeeIterator* _value_it = NULL;
		GeeCollection* _tmp16_;
		GeeIterator* _tmp17_;
		_tmp16_ = values;
		_tmp17_ = gee_iterable_iterator ((GeeIterable*) _tmp16_);
		_value_it = _tmp17_;
		while (TRUE) {
			GeeIterator* _tmp18_;
			gchar* value = NULL;
			GeeIterator* _tmp19_;
			gpointer _tmp20_;
			const gchar* _tmp21_;
			_tmp18_ = _value_it;
			if (!gee_iterator_next (_tmp18_)) {
				break;
			}
			_tmp19_ = _value_it;
			_tmp20_ = gee_iterator_get (_tmp19_);
			value = (gchar*) _tmp20_;
			_tmp21_ = value;
			if (g_strcmp0 (_tmp21_, "0") == 0) {
				if (zero_found) {
					zero_found_once = FALSE;
				}
				zero_found = TRUE;
			} else {
				const gchar* _tmp22_;
				_tmp22_ = value;
				if (g_strcmp0 (_tmp22_, "1") == 0) {
					if (one_found) {
						if (one_found_twice) {
							one_found_twice = FALSE;
						} else {
							one_found_twice = TRUE;
						}
					}
					one_found = TRUE;
				} else {
					nothing_more = FALSE;
				}
			}
			_g_free0 (value);
		}
		_g_object_unref0 (_value_it);
	}
	_vala_assert (zero_found, "zero_found");
	_vala_assert (zero_found_once, "zero_found_once");
	_vala_assert (one_found, "one_found");
	_vala_assert (one_found_twice, "one_found_twice");
	_vala_assert (nothing_more, "nothing_more");
	_g_object_unref0 (values);
	_g_object_unref0 (all_keys);
	_g_object_unref0 (keys);
}

static void
multi_map_tests_class_init (MultiMapTestsClass * klass,
                            gpointer klass_data)
{
	multi_map_tests_parent_class = g_type_class_peek_parent (klass);
	G_OBJECT_CLASS (klass)->finalize = multi_map_tests_finalize;
}

static void
multi_map_tests_instance_init (MultiMapTests * self,
                               gpointer klass)
{
}

static void
multi_map_tests_finalize (GObject * obj)
{
	MultiMapTests * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_MULTI_MAP_TESTS, MultiMapTests);
	_g_object_unref0 (self->test_multi_map);
	G_OBJECT_CLASS (multi_map_tests_parent_class)->finalize (obj);
}

static GType
multi_map_tests_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (MultiMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiMapTests), 0, (GInstanceInitFunc) multi_map_tests_instance_init, NULL };
	GType multi_map_tests_type_id;
	multi_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "MultiMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return multi_map_tests_type_id;
}

GType
multi_map_tests_get_type (void)
{
	static volatile gsize multi_map_tests_type_id__once = 0;
	if (g_once_init_enter (&multi_map_tests_type_id__once)) {
		GType multi_map_tests_type_id;
		multi_map_tests_type_id = multi_map_tests_get_type_once ();
		g_once_init_leave (&multi_map_tests_type_id__once, multi_map_tests_type_id);
	}
	return multi_map_tests_type_id__once;
}

