/* testmultimap.c generated by valac 0.36.11, 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.h>
#include <glib-object.h>
#include <gee.h>
#include <stdlib.h>
#include <string.h>


#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;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#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;
};

typedef void (*GeeTestCaseTestMethod) (void* user_data);

static gpointer multi_map_tests_parent_class = NULL;

GType gee_test_case_get_type (void) G_GNUC_CONST;
GType multi_map_tests_get_type (void) G_GNUC_CONST;
enum  {
	MULTI_MAP_TESTS_0_PROPERTY
};
MultiMapTests* multi_map_tests_construct (GType object_type, const gchar* name);
GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name);
void gee_test_case_add_test (GeeTestCase* self, const gchar* name, GeeTestCaseTestMethod test, void* test_target, GDestroyNotify test_target_destroy_notify);
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 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;
	const gchar* _tmp0_;
	g_return_val_if_fail (name != NULL, NULL);
	_tmp0_ = name;
	self = (MultiMapTests*) gee_test_case_construct (object_type, _tmp0_);
	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_;
	gboolean _tmp3_;
	GeeMultiMap* _tmp4_;
	GeeCollection* _tmp5_;
	GeeCollection* _tmp6_;
	gint _tmp7_;
	gint _tmp8_;
	GeeMultiMap* _tmp9_;
	GeeCollection* _tmp10_;
	GeeCollection* _tmp11_;
	gboolean _tmp12_;
	GeeMultiMap* _tmp13_;
	GeeCollection* _tmp14_;
	GeeCollection* _tmp15_;
	gint _tmp16_;
	gint _tmp17_;
	GeeMultiMap* _tmp18_;
	GeeMultiMap* _tmp19_;
	GeeCollection* _tmp20_;
	GeeCollection* _tmp21_;
	gint _tmp22_;
	gint _tmp23_;
	GeeMultiMap* _tmp24_;
	GeeCollection* _tmp25_;
	GeeCollection* _tmp26_;
	gboolean _tmp27_;
	GeeMultiMap* _tmp28_;
	GeeCollection* _tmp29_;
	GeeCollection* _tmp30_;
	gboolean _tmp31_;
	GeeMultiMap* _tmp32_;
	GeeMultiMap* _tmp33_;
	gboolean _tmp34_;
	GeeMultiMap* _tmp35_;
	GeeCollection* _tmp36_;
	GeeCollection* _tmp37_;
	gint _tmp38_;
	gint _tmp39_;
	GeeMultiMap* _tmp40_;
	GeeCollection* _tmp41_;
	GeeCollection* _tmp42_;
	gboolean _tmp43_;
	GeeMultiMap* _tmp44_;
	GeeCollection* _tmp45_;
	GeeCollection* _tmp46_;
	gboolean _tmp47_;
	GeeMultiMap* _tmp48_;
	GeeCollection* _tmp49_;
	GeeCollection* _tmp50_;
	gint _tmp51_;
	gint _tmp52_;
	GeeMultiMap* _tmp53_;
	GeeCollection* _tmp54_;
	GeeCollection* _tmp55_;
	gboolean _tmp56_;
	GeeMultiMap* _tmp57_;
	gboolean _tmp58_;
	GeeMultiMap* _tmp59_;
	gboolean _tmp60_;
	GeeMultiMap* _tmp61_;
	GeeCollection* _tmp62_;
	GeeCollection* _tmp63_;
	gboolean _tmp64_;
	GeeMultiMap* _tmp65_;
	GeeCollection* _tmp66_;
	GeeCollection* _tmp67_;
	gboolean _tmp68_;
	GeeMultiMap* _tmp69_;
	gboolean _tmp70_;
	GeeMultiMap* _tmp71_;
	GeeCollection* _tmp72_;
	GeeCollection* _tmp73_;
	gboolean _tmp74_;
	GeeMultiMap* _tmp75_;
	gboolean _tmp76_;
	GeeMultiMap* _tmp77_;
	gboolean _tmp78_;
	GeeMultiMap* _tmp79_;
	GeeCollection* _tmp80_;
	GeeCollection* _tmp81_;
	gboolean _tmp82_;
	GeeMultiMap* _tmp83_;
	GeeCollection* _tmp84_;
	GeeCollection* _tmp85_;
	gboolean _tmp86_;
	GeeMultiMap* _tmp87_;
	gboolean _tmp88_;
	GeeMultiMap* _tmp89_;
	GeeCollection* _tmp90_;
	GeeCollection* _tmp91_;
	gboolean _tmp92_;
	GeeMultiMap* _tmp93_;
	gboolean _tmp94_;
	GeeMultiMap* _tmp95_;
	gboolean _tmp96_;
	GeeMultiMap* _tmp97_;
	GeeCollection* _tmp98_;
	GeeCollection* _tmp99_;
	gboolean _tmp100_;
	GeeMultiMap* _tmp101_;
	GeeCollection* _tmp102_;
	GeeCollection* _tmp103_;
	gboolean _tmp104_;
	GeeMultiMap* _tmp105_;
	gboolean _tmp106_;
	GeeMultiMap* _tmp107_;
	GeeCollection* _tmp108_;
	GeeCollection* _tmp109_;
	gboolean _tmp110_;
	GeeMultiMap* _tmp111_;
	GeeMultiMap* _tmp112_;
	gboolean _tmp113_;
	GeeMultiMap* _tmp114_;
	gboolean _tmp115_;
	GeeMultiMap* _tmp116_;
	GeeMultiMap* _tmp117_;
	GeeMultiMap* _tmp118_;
	GeeMultiMap* _tmp119_;
	gint _tmp120_;
	gint _tmp121_;
	GeeMultiMap* _tmp122_;
	gboolean _tmp123_;
	GeeMultiMap* _tmp124_;
	gboolean _tmp125_;
	GeeMultiMap* _tmp126_;
	GeeCollection* _tmp127_;
	GeeCollection* _tmp128_;
	gint _tmp129_;
	gint _tmp130_;
	GeeMultiMap* _tmp131_;
	GeeCollection* _tmp132_;
	GeeCollection* _tmp133_;
	gboolean _tmp134_;
	GeeMultiMap* _tmp135_;
	GeeCollection* _tmp136_;
	GeeCollection* _tmp137_;
	gboolean _tmp138_;
	GeeMultiMap* _tmp139_;
	GeeCollection* _tmp140_;
	GeeCollection* _tmp141_;
	gint _tmp142_;
	gint _tmp143_;
	GeeMultiMap* _tmp144_;
	GeeCollection* _tmp145_;
	GeeCollection* _tmp146_;
	gboolean _tmp147_;
	GeeMultiMap* _tmp148_;
	gboolean _tmp149_;
	GeeMultiMap* _tmp150_;
	gboolean _tmp151_;
	GeeMultiMap* _tmp152_;
	GeeCollection* _tmp153_;
	GeeCollection* _tmp154_;
	gboolean _tmp155_;
	GeeMultiMap* _tmp156_;
	GeeCollection* _tmp157_;
	GeeCollection* _tmp158_;
	gboolean _tmp159_;
	GeeMultiMap* _tmp160_;
	gboolean _tmp161_;
	GeeMultiMap* _tmp162_;
	GeeCollection* _tmp163_;
	GeeCollection* _tmp164_;
	gboolean _tmp165_;
	GeeMultiMap* _tmp166_;
	gboolean _tmp167_;
	GeeMultiMap* _tmp168_;
	gboolean _tmp169_;
	GeeMultiMap* _tmp170_;
	GeeCollection* _tmp171_;
	GeeCollection* _tmp172_;
	gboolean _tmp173_;
	GeeMultiMap* _tmp174_;
	GeeCollection* _tmp175_;
	GeeCollection* _tmp176_;
	gboolean _tmp177_;
	GeeMultiMap* _tmp178_;
	gboolean _tmp179_;
	GeeMultiMap* _tmp180_;
	GeeCollection* _tmp181_;
	GeeCollection* _tmp182_;
	gboolean _tmp183_;
	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;
	_tmp3_ = gee_multi_map_contains (_tmp2_, "0");
	_vala_assert (_tmp3_, "test_multi_map.contains (\"0\")");
	_tmp4_ = self->test_multi_map;
	_tmp5_ = gee_multi_map_get (_tmp4_, "0");
	_tmp6_ = _tmp5_;
	_tmp7_ = gee_collection_get_size (_tmp6_);
	_tmp8_ = _tmp7_;
	_vala_assert (_tmp8_ == 1, "test_multi_map.get (\"0\").size == 1");
	_g_object_unref0 (_tmp6_);
	_tmp9_ = self->test_multi_map;
	_tmp10_ = gee_multi_map_get (_tmp9_, "0");
	_tmp11_ = _tmp10_;
	_tmp12_ = gee_collection_contains (_tmp11_, "0");
	_vala_assert (_tmp12_, "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp11_);
	_tmp13_ = self->test_multi_map;
	_tmp14_ = gee_multi_map_get (_tmp13_, "1");
	_tmp15_ = _tmp14_;
	_tmp16_ = gee_collection_get_size (_tmp15_);
	_tmp17_ = _tmp16_;
	_vala_assert (_tmp17_ == 0, "test_multi_map.get (\"1\").size == 0");
	_g_object_unref0 (_tmp15_);
	_tmp18_ = self->test_multi_map;
	gee_multi_map_set (_tmp18_, "0", "1");
	_tmp19_ = self->test_multi_map;
	_tmp20_ = gee_multi_map_get (_tmp19_, "0");
	_tmp21_ = _tmp20_;
	_tmp22_ = gee_collection_get_size (_tmp21_);
	_tmp23_ = _tmp22_;
	_vala_assert (_tmp23_ == 2, "test_multi_map.get (\"0\").size == 2");
	_g_object_unref0 (_tmp21_);
	_tmp24_ = self->test_multi_map;
	_tmp25_ = gee_multi_map_get (_tmp24_, "0");
	_tmp26_ = _tmp25_;
	_tmp27_ = gee_collection_contains (_tmp26_, "0");
	_vala_assert (_tmp27_, "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp26_);
	_tmp28_ = self->test_multi_map;
	_tmp29_ = gee_multi_map_get (_tmp28_, "0");
	_tmp30_ = _tmp29_;
	_tmp31_ = gee_collection_contains (_tmp30_, "1");
	_vala_assert (_tmp31_, "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp30_);
	_tmp32_ = self->test_multi_map;
	gee_multi_map_set (_tmp32_, "1", "1");
	_tmp33_ = self->test_multi_map;
	_tmp34_ = gee_multi_map_contains (_tmp33_, "1");
	_vala_assert (_tmp34_, "test_multi_map.contains (\"1\")");
	_tmp35_ = self->test_multi_map;
	_tmp36_ = gee_multi_map_get (_tmp35_, "0");
	_tmp37_ = _tmp36_;
	_tmp38_ = gee_collection_get_size (_tmp37_);
	_tmp39_ = _tmp38_;
	_vala_assert (_tmp39_ == 2, "test_multi_map.get (\"0\").size == 2");
	_g_object_unref0 (_tmp37_);
	_tmp40_ = self->test_multi_map;
	_tmp41_ = gee_multi_map_get (_tmp40_, "0");
	_tmp42_ = _tmp41_;
	_tmp43_ = gee_collection_contains (_tmp42_, "0");
	_vala_assert (_tmp43_, "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp42_);
	_tmp44_ = self->test_multi_map;
	_tmp45_ = gee_multi_map_get (_tmp44_, "0");
	_tmp46_ = _tmp45_;
	_tmp47_ = gee_collection_contains (_tmp46_, "1");
	_vala_assert (_tmp47_, "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp46_);
	_tmp48_ = self->test_multi_map;
	_tmp49_ = gee_multi_map_get (_tmp48_, "1");
	_tmp50_ = _tmp49_;
	_tmp51_ = gee_collection_get_size (_tmp50_);
	_tmp52_ = _tmp51_;
	_vala_assert (_tmp52_ == 1, "test_multi_map.get (\"1\").size == 1");
	_g_object_unref0 (_tmp50_);
	_tmp53_ = self->test_multi_map;
	_tmp54_ = gee_multi_map_get (_tmp53_, "0");
	_tmp55_ = _tmp54_;
	_tmp56_ = gee_collection_contains (_tmp55_, "1");
	_vala_assert (_tmp56_, "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp55_);
	_tmp57_ = self->test_multi_map;
	_tmp58_ = gee_multi_map_remove (_tmp57_, "0", "0");
	_vala_assert (_tmp58_, "test_multi_map.remove (\"0\", \"0\")");
	_tmp59_ = self->test_multi_map;
	_tmp60_ = gee_multi_map_contains (_tmp59_, "0");
	_vala_assert (_tmp60_, "test_multi_map.contains (\"0\")");
	_tmp61_ = self->test_multi_map;
	_tmp62_ = gee_multi_map_get (_tmp61_, "0");
	_tmp63_ = _tmp62_;
	_tmp64_ = gee_collection_contains (_tmp63_, "0");
	_vala_assert (!_tmp64_, "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp63_);
	_tmp65_ = self->test_multi_map;
	_tmp66_ = gee_multi_map_get (_tmp65_, "0");
	_tmp67_ = _tmp66_;
	_tmp68_ = gee_collection_contains (_tmp67_, "1");
	_vala_assert (_tmp68_, "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp67_);
	_tmp69_ = self->test_multi_map;
	_tmp70_ = gee_multi_map_contains (_tmp69_, "1");
	_vala_assert (_tmp70_, "test_multi_map.contains (\"1\")");
	_tmp71_ = self->test_multi_map;
	_tmp72_ = gee_multi_map_get (_tmp71_, "1");
	_tmp73_ = _tmp72_;
	_tmp74_ = gee_collection_contains (_tmp73_, "1");
	_vala_assert (_tmp74_, "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp73_);
	_tmp75_ = self->test_multi_map;
	_tmp76_ = gee_multi_map_remove (_tmp75_, "0", "1");
	_vala_assert (_tmp76_, "test_multi_map.remove (\"0\", \"1\")");
	_tmp77_ = self->test_multi_map;
	_tmp78_ = gee_multi_map_contains (_tmp77_, "0");
	_vala_assert (!_tmp78_, "! test_multi_map.contains (\"0\")");
	_tmp79_ = self->test_multi_map;
	_tmp80_ = gee_multi_map_get (_tmp79_, "0");
	_tmp81_ = _tmp80_;
	_tmp82_ = gee_collection_contains (_tmp81_, "0");
	_vala_assert (!_tmp82_, "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp81_);
	_tmp83_ = self->test_multi_map;
	_tmp84_ = gee_multi_map_get (_tmp83_, "0");
	_tmp85_ = _tmp84_;
	_tmp86_ = gee_collection_contains (_tmp85_, "1");
	_vala_assert (!_tmp86_, "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp85_);
	_tmp87_ = self->test_multi_map;
	_tmp88_ = gee_multi_map_contains (_tmp87_, "1");
	_vala_assert (_tmp88_, "test_multi_map.contains (\"1\")");
	_tmp89_ = self->test_multi_map;
	_tmp90_ = gee_multi_map_get (_tmp89_, "1");
	_tmp91_ = _tmp90_;
	_tmp92_ = gee_collection_contains (_tmp91_, "1");
	_vala_assert (_tmp92_, "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp91_);
	_tmp93_ = self->test_multi_map;
	_tmp94_ = gee_multi_map_remove (_tmp93_, "0", "1");
	_vala_assert (!_tmp94_, "! test_multi_map.remove (\"0\", \"1\")");
	_tmp95_ = self->test_multi_map;
	_tmp96_ = gee_multi_map_contains (_tmp95_, "0");
	_vala_assert (!_tmp96_, "! test_multi_map.contains (\"0\")");
	_tmp97_ = self->test_multi_map;
	_tmp98_ = gee_multi_map_get (_tmp97_, "0");
	_tmp99_ = _tmp98_;
	_tmp100_ = gee_collection_contains (_tmp99_, "0");
	_vala_assert (!_tmp100_, "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp99_);
	_tmp101_ = self->test_multi_map;
	_tmp102_ = gee_multi_map_get (_tmp101_, "0");
	_tmp103_ = _tmp102_;
	_tmp104_ = gee_collection_contains (_tmp103_, "1");
	_vala_assert (!_tmp104_, "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp103_);
	_tmp105_ = self->test_multi_map;
	_tmp106_ = gee_multi_map_contains (_tmp105_, "1");
	_vala_assert (_tmp106_, "test_multi_map.contains (\"1\")");
	_tmp107_ = self->test_multi_map;
	_tmp108_ = gee_multi_map_get (_tmp107_, "1");
	_tmp109_ = _tmp108_;
	_tmp110_ = gee_collection_contains (_tmp109_, "1");
	_vala_assert (_tmp110_, "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp109_);
	_tmp111_ = self->test_multi_map;
	gee_multi_map_clear (_tmp111_);
	_tmp112_ = self->test_multi_map;
	_tmp113_ = gee_multi_map_contains (_tmp112_, "0");
	_vala_assert (!_tmp113_, "! test_multi_map.contains (\"0\")");
	_tmp114_ = self->test_multi_map;
	_tmp115_ = gee_multi_map_contains (_tmp114_, "1");
	_vala_assert (!_tmp115_, "! test_multi_map.contains (\"1\")");
	_tmp116_ = self->test_multi_map;
	gee_multi_map_set (_tmp116_, "0", "0");
	_tmp117_ = self->test_multi_map;
	gee_multi_map_set (_tmp117_, "0", "1");
	_tmp118_ = self->test_multi_map;
	gee_multi_map_set (_tmp118_, "1", "1");
	_tmp119_ = self->test_multi_map;
	_tmp120_ = gee_multi_map_get_size (_tmp119_);
	_tmp121_ = _tmp120_;
	_vala_assert (_tmp121_ == 3, "test_multi_map.size == 3");
	_tmp122_ = self->test_multi_map;
	_tmp123_ = gee_multi_map_contains (_tmp122_, "0");
	_vala_assert (_tmp123_, "test_multi_map.contains (\"0\")");
	_tmp124_ = self->test_multi_map;
	_tmp125_ = gee_multi_map_contains (_tmp124_, "1");
	_vala_assert (_tmp125_, "test_multi_map.contains (\"1\")");
	_tmp126_ = self->test_multi_map;
	_tmp127_ = gee_multi_map_get (_tmp126_, "0");
	_tmp128_ = _tmp127_;
	_tmp129_ = gee_collection_get_size (_tmp128_);
	_tmp130_ = _tmp129_;
	_vala_assert (_tmp130_ == 2, "test_multi_map.get (\"0\").size == 2");
	_g_object_unref0 (_tmp128_);
	_tmp131_ = self->test_multi_map;
	_tmp132_ = gee_multi_map_get (_tmp131_, "0");
	_tmp133_ = _tmp132_;
	_tmp134_ = gee_collection_contains (_tmp133_, "0");
	_vala_assert (_tmp134_, "test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp133_);
	_tmp135_ = self->test_multi_map;
	_tmp136_ = gee_multi_map_get (_tmp135_, "0");
	_tmp137_ = _tmp136_;
	_tmp138_ = gee_collection_contains (_tmp137_, "1");
	_vala_assert (_tmp138_, "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp137_);
	_tmp139_ = self->test_multi_map;
	_tmp140_ = gee_multi_map_get (_tmp139_, "1");
	_tmp141_ = _tmp140_;
	_tmp142_ = gee_collection_get_size (_tmp141_);
	_tmp143_ = _tmp142_;
	_vala_assert (_tmp143_ == 1, "test_multi_map.get (\"1\").size == 1");
	_g_object_unref0 (_tmp141_);
	_tmp144_ = self->test_multi_map;
	_tmp145_ = gee_multi_map_get (_tmp144_, "0");
	_tmp146_ = _tmp145_;
	_tmp147_ = gee_collection_contains (_tmp146_, "1");
	_vala_assert (_tmp147_, "test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp146_);
	_tmp148_ = self->test_multi_map;
	_tmp149_ = gee_multi_map_remove_all (_tmp148_, "0");
	_vala_assert (_tmp149_, "test_multi_map.remove_all (\"0\")");
	_tmp150_ = self->test_multi_map;
	_tmp151_ = gee_multi_map_contains (_tmp150_, "0");
	_vala_assert (!_tmp151_, "! test_multi_map.contains (\"0\")");
	_tmp152_ = self->test_multi_map;
	_tmp153_ = gee_multi_map_get (_tmp152_, "0");
	_tmp154_ = _tmp153_;
	_tmp155_ = gee_collection_contains (_tmp154_, "0");
	_vala_assert (!_tmp155_, "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp154_);
	_tmp156_ = self->test_multi_map;
	_tmp157_ = gee_multi_map_get (_tmp156_, "0");
	_tmp158_ = _tmp157_;
	_tmp159_ = gee_collection_contains (_tmp158_, "1");
	_vala_assert (!_tmp159_, "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp158_);
	_tmp160_ = self->test_multi_map;
	_tmp161_ = gee_multi_map_contains (_tmp160_, "1");
	_vala_assert (_tmp161_, "test_multi_map.contains (\"1\")");
	_tmp162_ = self->test_multi_map;
	_tmp163_ = gee_multi_map_get (_tmp162_, "1");
	_tmp164_ = _tmp163_;
	_tmp165_ = gee_collection_contains (_tmp164_, "1");
	_vala_assert (_tmp165_, "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp164_);
	_tmp166_ = self->test_multi_map;
	_tmp167_ = gee_multi_map_remove_all (_tmp166_, "0");
	_vala_assert (!_tmp167_, "! test_multi_map.remove_all (\"0\")");
	_tmp168_ = self->test_multi_map;
	_tmp169_ = gee_multi_map_contains (_tmp168_, "0");
	_vala_assert (!_tmp169_, "! test_multi_map.contains (\"0\")");
	_tmp170_ = self->test_multi_map;
	_tmp171_ = gee_multi_map_get (_tmp170_, "0");
	_tmp172_ = _tmp171_;
	_tmp173_ = gee_collection_contains (_tmp172_, "0");
	_vala_assert (!_tmp173_, "! test_multi_map.get (\"0\").contains (\"0\")");
	_g_object_unref0 (_tmp172_);
	_tmp174_ = self->test_multi_map;
	_tmp175_ = gee_multi_map_get (_tmp174_, "0");
	_tmp176_ = _tmp175_;
	_tmp177_ = gee_collection_contains (_tmp176_, "1");
	_vala_assert (!_tmp177_, "! test_multi_map.get (\"0\").contains (\"1\")");
	_g_object_unref0 (_tmp176_);
	_tmp178_ = self->test_multi_map;
	_tmp179_ = gee_multi_map_contains (_tmp178_, "1");
	_vala_assert (_tmp179_, "test_multi_map.contains (\"1\")");
	_tmp180_ = self->test_multi_map;
	_tmp181_ = gee_multi_map_get (_tmp180_, "1");
	_tmp182_ = _tmp181_;
	_tmp183_ = gee_collection_contains (_tmp182_, "1");
	_vala_assert (_tmp183_, "test_multi_map.get (\"1\").contains (\"1\")");
	_g_object_unref0 (_tmp182_);
}


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_;
	gboolean _tmp11_;
	GeeSet* _tmp12_;
	gboolean _tmp13_;
	GeeMultiSet* _tmp14_;
	gint _tmp15_;
	GeeMultiSet* _tmp16_;
	gint _tmp17_;
	GeeCollection* _tmp18_;
	gboolean _tmp19_;
	GeeCollection* _tmp20_;
	gboolean _tmp21_;
	gboolean zero_found = FALSE;
	gboolean zero_found_once = FALSE;
	gboolean one_found = FALSE;
	gboolean one_found_twice = FALSE;
	gboolean nothing_more = FALSE;
	gboolean _tmp33_;
	gboolean _tmp34_;
	gboolean _tmp35_;
	gboolean _tmp36_;
	gboolean _tmp37_;
	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;
	_tmp11_ = gee_collection_contains ((GeeCollection*) _tmp10_, "0");
	_vala_assert (_tmp11_, "keys.contains (\"0\")");
	_tmp12_ = keys;
	_tmp13_ = gee_collection_contains ((GeeCollection*) _tmp12_, "1");
	_vala_assert (_tmp13_, "keys.contains (\"1\")");
	_tmp14_ = all_keys;
	_tmp15_ = gee_multi_set_count (_tmp14_, "0");
	_vala_assert (_tmp15_ == 2, "all_keys.count (\"0\") == 2");
	_tmp16_ = all_keys;
	_tmp17_ = gee_multi_set_count (_tmp16_, "1");
	_vala_assert (_tmp17_ == 1, "all_keys.count (\"1\") == 1");
	_tmp18_ = values;
	_tmp19_ = gee_collection_contains (_tmp18_, "0");
	_vala_assert (_tmp19_, "values.contains (\"0\")");
	_tmp20_ = values;
	_tmp21_ = gee_collection_contains (_tmp20_, "1");
	_vala_assert (_tmp21_, "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* _tmp22_;
		GeeIterator* _tmp23_;
		_tmp22_ = values;
		_tmp23_ = gee_iterable_iterator ((GeeIterable*) _tmp22_);
		_value_it = _tmp23_;
		while (TRUE) {
			GeeIterator* _tmp24_;
			gboolean _tmp25_;
			gchar* value = NULL;
			GeeIterator* _tmp26_;
			gpointer _tmp27_;
			const gchar* _tmp28_;
			_tmp24_ = _value_it;
			_tmp25_ = gee_iterator_next (_tmp24_);
			if (!_tmp25_) {
				break;
			}
			_tmp26_ = _value_it;
			_tmp27_ = gee_iterator_get (_tmp26_);
			value = (gchar*) _tmp27_;
			_tmp28_ = value;
			if (g_strcmp0 (_tmp28_, "0") == 0) {
				gboolean _tmp29_;
				_tmp29_ = zero_found;
				if (_tmp29_) {
					zero_found_once = FALSE;
				}
				zero_found = TRUE;
			} else {
				const gchar* _tmp30_;
				_tmp30_ = value;
				if (g_strcmp0 (_tmp30_, "1") == 0) {
					gboolean _tmp31_;
					_tmp31_ = one_found;
					if (_tmp31_) {
						gboolean _tmp32_;
						_tmp32_ = one_found_twice;
						if (_tmp32_) {
							one_found_twice = FALSE;
						} else {
							one_found_twice = TRUE;
						}
					}
					one_found = TRUE;
				} else {
					nothing_more = FALSE;
				}
			}
			_g_free0 (value);
		}
		_g_object_unref0 (_value_it);
	}
	_tmp33_ = zero_found;
	_vala_assert (_tmp33_, "zero_found");
	_tmp34_ = zero_found_once;
	_vala_assert (_tmp34_, "zero_found_once");
	_tmp35_ = one_found;
	_vala_assert (_tmp35_, "one_found");
	_tmp36_ = one_found_twice;
	_vala_assert (_tmp36_, "one_found_twice");
	_tmp37_ = nothing_more;
	_vala_assert (_tmp37_, "nothing_more");
	_g_object_unref0 (values);
	_g_object_unref0 (all_keys);
	_g_object_unref0 (keys);
}


static void multi_map_tests_class_init (MultiMapTestsClass * klass) {
	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) {
}


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);
}


GType multi_map_tests_get_type (void) {
	static volatile gsize multi_map_tests_type_id__volatile = 0;
	if (g_once_init_enter (&multi_map_tests_type_id__volatile)) {
		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);
		g_once_init_leave (&multi_map_tests_type_id__volatile, multi_map_tests_type_id);
	}
	return multi_map_tests_type_id__volatile;
}



