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

/* testbidirsortedmap.vala
 *
 * Copyright (C) 2012  Maciej Piechotka
 *
 * 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:
 * 	Maciej Piechotka <uzytkownik2@gmail.com>
 */

#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_MAP_TESTS (map_tests_get_type ())
#define MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MAP_TESTS, MapTests))
#define MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MAP_TESTS, MapTestsClass))
#define IS_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MAP_TESTS))
#define IS_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MAP_TESTS))
#define MAP_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MAP_TESTS, MapTestsClass))

typedef struct _MapTests MapTests;
typedef struct _MapTestsClass MapTestsClass;
typedef struct _MapTestsPrivate MapTestsPrivate;

#define GEE_TYPE_SORTED_MAP_TESTS (gee_sorted_map_tests_get_type ())
#define GEE_SORTED_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP_TESTS, GeeSortedMapTests))
#define GEE_SORTED_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_SORTED_MAP_TESTS, GeeSortedMapTestsClass))
#define GEE_IS_SORTED_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP_TESTS))
#define GEE_IS_SORTED_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_SORTED_MAP_TESTS))
#define GEE_SORTED_MAP_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_SORTED_MAP_TESTS, GeeSortedMapTestsClass))

typedef struct _GeeSortedMapTests GeeSortedMapTests;
typedef struct _GeeSortedMapTestsClass GeeSortedMapTestsClass;
typedef struct _GeeSortedMapTestsPrivate GeeSortedMapTestsPrivate;

#define TYPE_BIDIR_SORTED_MAP_TESTS (bidir_sorted_map_tests_get_type ())
#define BIDIR_SORTED_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BIDIR_SORTED_MAP_TESTS, BidirSortedMapTests))
#define BIDIR_SORTED_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BIDIR_SORTED_MAP_TESTS, BidirSortedMapTestsClass))
#define IS_BIDIR_SORTED_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BIDIR_SORTED_MAP_TESTS))
#define IS_BIDIR_SORTED_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BIDIR_SORTED_MAP_TESTS))
#define BIDIR_SORTED_MAP_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BIDIR_SORTED_MAP_TESTS, BidirSortedMapTestsClass))

typedef struct _BidirSortedMapTests BidirSortedMapTests;
typedef struct _BidirSortedMapTestsClass BidirSortedMapTestsClass;
typedef struct _BidirSortedMapTestsPrivate BidirSortedMapTestsPrivate;

#define GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TYPE (gee_sorted_map_tests_sub_map_tests_type_get_type ())

#define BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS (bidir_sorted_map_tests_bidir_sub_map_tests_get_type ())
#define BIDIR_SORTED_MAP_TESTS_BIDIR_SUB_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS, BidirSortedMapTestsBidirSubMapTests))
#define BIDIR_SORTED_MAP_TESTS_BIDIR_SUB_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS, BidirSortedMapTestsBidirSubMapTestsClass))
#define BIDIR_SORTED_MAP_TESTS_IS_BIDIR_SUB_MAP_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS))
#define BIDIR_SORTED_MAP_TESTS_IS_BIDIR_SUB_MAP_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS))
#define BIDIR_SORTED_MAP_TESTS_BIDIR_SUB_MAP_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS, BidirSortedMapTestsBidirSubMapTestsClass))

typedef struct _BidirSortedMapTestsBidirSubMapTests BidirSortedMapTestsBidirSubMapTests;
typedef struct _BidirSortedMapTestsBidirSubMapTestsClass BidirSortedMapTestsBidirSubMapTestsClass;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _BidirSortedMapTestsBidirSubMapTestsPrivate BidirSortedMapTestsBidirSubMapTestsPrivate;
#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 _MapTests {
	GeeTestCase parent_instance;
	MapTestsPrivate * priv;
	GeeMap* test_map;
};

struct _MapTestsClass {
	GeeTestCaseClass parent_class;
};

struct _GeeSortedMapTests {
	MapTests parent_instance;
	GeeSortedMapTestsPrivate * priv;
};

struct _GeeSortedMapTestsClass {
	MapTestsClass parent_class;
};

struct _BidirSortedMapTests {
	GeeSortedMapTests parent_instance;
	BidirSortedMapTestsPrivate * priv;
};

struct _BidirSortedMapTestsClass {
	GeeSortedMapTestsClass parent_class;
};

typedef void (*GeeTestCaseTestMethod) (void* user_data);
typedef enum  {
	GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD,
	GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL,
	GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB,
	GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY
} GeeSortedMapTestsSubMapTestsType;

struct _BidirSortedMapTestsBidirSubMapTests {
	GeeTestCase parent_instance;
	BidirSortedMapTestsBidirSubMapTestsPrivate * priv;
};

struct _BidirSortedMapTestsBidirSubMapTestsClass {
	GeeTestCaseClass parent_class;
};

struct _BidirSortedMapTestsBidirSubMapTestsPrivate {
	GeeBidirSortedMap* master;
	GeeBidirSortedMap* submap;
	BidirSortedMapTests* test;
	GeeSortedMapTestsSubMapTestsType type;
};


static gpointer bidir_sorted_map_tests_parent_class = NULL;
static gpointer bidir_sorted_map_tests_bidir_sub_map_tests_parent_class = NULL;

GType gee_test_case_get_type (void) G_GNUC_CONST;
GType map_tests_get_type (void) G_GNUC_CONST;
GType gee_sorted_map_tests_get_type (void) G_GNUC_CONST;
GType bidir_sorted_map_tests_get_type (void) G_GNUC_CONST;
enum  {
	BIDIR_SORTED_MAP_TESTS_0_PROPERTY
};
BidirSortedMapTests* bidir_sorted_map_tests_construct (GType object_type, const gchar* name);
GeeSortedMapTests* gee_sorted_map_tests_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 bidir_sorted_map_tests_test_bidir_iterator_can_go_backward (BidirSortedMapTests* self);
static void _bidir_sorted_map_tests_test_bidir_iterator_can_go_backward_gee_test_case_test_method (gpointer self);
void bidir_sorted_map_tests_test_bidir_iterator_last (BidirSortedMapTests* self);
static void _bidir_sorted_map_tests_test_bidir_iterator_last_gee_test_case_test_method (gpointer self);
GTestSuite* gee_test_case_get_suite (GeeTestCase* self);
GType gee_sorted_map_tests_sub_map_tests_type_get_type (void) G_GNUC_CONST;
BidirSortedMapTestsBidirSubMapTests* bidir_sorted_map_tests_bidir_sub_map_tests_new (BidirSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type);
BidirSortedMapTestsBidirSubMapTests* bidir_sorted_map_tests_bidir_sub_map_tests_construct (GType object_type, BidirSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type);
GType bidir_sorted_map_tests_bidir_sub_map_tests_get_type (void) G_GNUC_CONST;
void map_tests_assert_entry (GeeMapEntry* e, const gchar* key, const gchar* value);
#define BIDIR_SORTED_MAP_TESTS_BIDIR_SUB_MAP_TESTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS, BidirSortedMapTestsBidirSubMapTestsPrivate))
enum  {
	BIDIR_SORTED_MAP_TESTS_BIDIR_SUB_MAP_TESTS_0_PROPERTY
};
const gchar* gee_sorted_map_tests_sub_map_tests_type_to_string (GeeSortedMapTestsSubMapTestsType self);
GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name);
void bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators (BidirSortedMapTestsBidirSubMapTests* self);
static void _bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators_gee_test_case_test_method (gpointer self);
static void bidir_sorted_map_tests_bidir_sub_map_tests_real_set_up (GeeTestCase* base);
void gee_test_case_set_up (GeeTestCase* self);
static void bidir_sorted_map_tests_bidir_sub_map_tests_real_tear_down (GeeTestCase* base);
void gee_test_case_tear_down (GeeTestCase* self);
void bidir_sorted_map_tests_bidir_sub_map_tests_set_default_values (BidirSortedMapTestsBidirSubMapTests* self, gchar*** contains, int* contains_length1, gchar*** not_contains, int* not_contains_length1);
static void bidir_sorted_map_tests_bidir_sub_map_tests_finalize (GObject * obj);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static void _bidir_sorted_map_tests_test_bidir_iterator_can_go_backward_gee_test_case_test_method (gpointer self) {
	bidir_sorted_map_tests_test_bidir_iterator_can_go_backward ((BidirSortedMapTests*) self);
}


static void _bidir_sorted_map_tests_test_bidir_iterator_last_gee_test_case_test_method (gpointer self) {
	bidir_sorted_map_tests_test_bidir_iterator_last ((BidirSortedMapTests*) self);
}


BidirSortedMapTests* bidir_sorted_map_tests_construct (GType object_type, const gchar* name) {
	BidirSortedMapTests * self = NULL;
	const gchar* _tmp0_;
	GTestSuite* _tmp1_;
	BidirSortedMapTestsBidirSubMapTests* _tmp2_;
	BidirSortedMapTestsBidirSubMapTests* _tmp3_;
	GTestSuite* _tmp4_;
	GTestSuite* _tmp5_;
	BidirSortedMapTestsBidirSubMapTests* _tmp6_;
	BidirSortedMapTestsBidirSubMapTests* _tmp7_;
	GTestSuite* _tmp8_;
	GTestSuite* _tmp9_;
	BidirSortedMapTestsBidirSubMapTests* _tmp10_;
	BidirSortedMapTestsBidirSubMapTests* _tmp11_;
	GTestSuite* _tmp12_;
	GTestSuite* _tmp13_;
	BidirSortedMapTestsBidirSubMapTests* _tmp14_;
	BidirSortedMapTestsBidirSubMapTests* _tmp15_;
	GTestSuite* _tmp16_;
	g_return_val_if_fail (name != NULL, NULL);
	_tmp0_ = name;
	self = (BidirSortedMapTests*) gee_sorted_map_tests_construct (object_type, _tmp0_);
	gee_test_case_add_test ((GeeTestCase*) self, "[SortedMap] bi-directional iterators can go backward", _bidir_sorted_map_tests_test_bidir_iterator_can_go_backward_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	gee_test_case_add_test ((GeeTestCase*) self, "[SortedSet] bi-directional iterators can to end", _bidir_sorted_map_tests_test_bidir_iterator_last_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	_tmp1_ = gee_test_case_get_suite ((GeeTestCase*) self);
	_tmp2_ = bidir_sorted_map_tests_bidir_sub_map_tests_new (self, GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD);
	_tmp3_ = _tmp2_;
	_tmp4_ = gee_test_case_get_suite ((GeeTestCase*) _tmp3_);
	g_test_suite_add_suite (_tmp1_, _tmp4_);
	_g_object_unref0 (_tmp3_);
	_tmp5_ = gee_test_case_get_suite ((GeeTestCase*) self);
	_tmp6_ = bidir_sorted_map_tests_bidir_sub_map_tests_new (self, GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL);
	_tmp7_ = _tmp6_;
	_tmp8_ = gee_test_case_get_suite ((GeeTestCase*) _tmp7_);
	g_test_suite_add_suite (_tmp5_, _tmp8_);
	_g_object_unref0 (_tmp7_);
	_tmp9_ = gee_test_case_get_suite ((GeeTestCase*) self);
	_tmp10_ = bidir_sorted_map_tests_bidir_sub_map_tests_new (self, GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB);
	_tmp11_ = _tmp10_;
	_tmp12_ = gee_test_case_get_suite ((GeeTestCase*) _tmp11_);
	g_test_suite_add_suite (_tmp9_, _tmp12_);
	_g_object_unref0 (_tmp11_);
	_tmp13_ = gee_test_case_get_suite ((GeeTestCase*) self);
	_tmp14_ = bidir_sorted_map_tests_bidir_sub_map_tests_new (self, GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY);
	_tmp15_ = _tmp14_;
	_tmp16_ = gee_test_case_get_suite ((GeeTestCase*) _tmp15_);
	g_test_suite_add_suite (_tmp13_, _tmp16_);
	_g_object_unref0 (_tmp15_);
	return self;
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


void bidir_sorted_map_tests_test_bidir_iterator_can_go_backward (BidirSortedMapTests* self) {
	GeeBidirSortedMap* test_sorted_map = NULL;
	GeeMap* _tmp0_;
	GeeBidirSortedMap* _tmp1_;
	GeeBidirSortedSet* keys = NULL;
	GeeSortedSet* _tmp2_;
	GeeSortedSet* _tmp3_;
	GeeBidirSortedSet* _tmp4_;
	GeeBidirSortedSet* entries = NULL;
	GeeSortedSet* _tmp5_;
	GeeSortedSet* _tmp6_;
	GeeBidirSortedSet* _tmp7_;
	GeeBidirIterator* keys_iterator = NULL;
	GeeBidirIterator* _tmp8_;
	GeeBidirIterator* entries_iterator = NULL;
	GeeBidirIterator* _tmp9_;
	GeeBidirMapIterator* map_iterator = NULL;
	GeeBidirMapIterator* _tmp10_;
	GeeBidirIterator* _tmp11_;
	gboolean _tmp12_;
	GeeBidirIterator* _tmp13_;
	gboolean _tmp14_;
	GeeBidirMapIterator* _tmp15_;
	gboolean _tmp16_;
	GeeBidirIterator* _tmp17_;
	gboolean _tmp18_;
	GeeBidirIterator* _tmp19_;
	gboolean _tmp20_;
	GeeBidirMapIterator* _tmp21_;
	gboolean _tmp22_;
	GeeBidirIterator* _tmp23_;
	GeeBidirIterator* _tmp24_;
	GeeBidirMapIterator* _tmp25_;
	GeeBidirIterator* _tmp26_;
	gboolean _tmp27_;
	GeeBidirIterator* _tmp28_;
	gboolean _tmp29_;
	GeeBidirMapIterator* _tmp30_;
	gboolean _tmp31_;
	GeeBidirIterator* _tmp32_;
	gpointer _tmp33_;
	gchar* _tmp34_;
	GeeBidirIterator* _tmp35_;
	gpointer _tmp36_;
	GeeMapEntry* _tmp37_;
	GeeBidirMapIterator* _tmp38_;
	gpointer _tmp39_;
	gchar* _tmp40_;
	GeeBidirMapIterator* _tmp41_;
	gpointer _tmp42_;
	gchar* _tmp43_;
	GeeBidirIterator* _tmp44_;
	gboolean _tmp45_;
	GeeBidirIterator* _tmp46_;
	gboolean _tmp47_;
	GeeBidirMapIterator* _tmp48_;
	gboolean _tmp49_;
	GeeBidirIterator* _tmp50_;
	gboolean _tmp51_;
	GeeBidirIterator* _tmp52_;
	gboolean _tmp53_;
	GeeBidirMapIterator* _tmp54_;
	gboolean _tmp55_;
	GeeBidirIterator* _tmp56_;
	gpointer _tmp57_;
	gchar* _tmp58_;
	GeeBidirIterator* _tmp59_;
	gpointer _tmp60_;
	GeeMapEntry* _tmp61_;
	GeeBidirMapIterator* _tmp62_;
	gpointer _tmp63_;
	gchar* _tmp64_;
	GeeBidirMapIterator* _tmp65_;
	gpointer _tmp66_;
	gchar* _tmp67_;
	GeeBidirIterator* _tmp68_;
	gboolean _tmp69_;
	GeeBidirIterator* _tmp70_;
	gboolean _tmp71_;
	GeeBidirMapIterator* _tmp72_;
	gboolean _tmp73_;
	GeeBidirIterator* _tmp74_;
	gboolean _tmp75_;
	GeeBidirIterator* _tmp76_;
	gboolean _tmp77_;
	GeeBidirMapIterator* _tmp78_;
	gboolean _tmp79_;
	GeeBidirIterator* _tmp80_;
	gpointer _tmp81_;
	gchar* _tmp82_;
	GeeBidirIterator* _tmp83_;
	gpointer _tmp84_;
	GeeMapEntry* _tmp85_;
	GeeBidirMapIterator* _tmp86_;
	gpointer _tmp87_;
	gchar* _tmp88_;
	GeeBidirMapIterator* _tmp89_;
	gpointer _tmp90_;
	gchar* _tmp91_;
	GeeBidirIterator* _tmp92_;
	gboolean _tmp93_;
	GeeBidirIterator* _tmp94_;
	gboolean _tmp95_;
	GeeBidirMapIterator* _tmp96_;
	gboolean _tmp97_;
	GeeBidirIterator* _tmp98_;
	gboolean _tmp99_;
	GeeBidirIterator* _tmp100_;
	gboolean _tmp101_;
	GeeBidirMapIterator* _tmp102_;
	gboolean _tmp103_;
	GeeBidirIterator* _tmp104_;
	gpointer _tmp105_;
	gchar* _tmp106_;
	GeeBidirIterator* _tmp107_;
	gpointer _tmp108_;
	GeeMapEntry* _tmp109_;
	GeeBidirMapIterator* _tmp110_;
	gpointer _tmp111_;
	gchar* _tmp112_;
	GeeBidirMapIterator* _tmp113_;
	gpointer _tmp114_;
	gchar* _tmp115_;
	GeeBidirIterator* _tmp116_;
	gboolean _tmp117_;
	GeeBidirIterator* _tmp118_;
	gboolean _tmp119_;
	GeeBidirMapIterator* _tmp120_;
	gboolean _tmp121_;
	GeeBidirIterator* _tmp122_;
	gboolean _tmp123_;
	GeeBidirIterator* _tmp124_;
	gboolean _tmp125_;
	GeeBidirMapIterator* _tmp126_;
	gboolean _tmp127_;
	GeeBidirIterator* _tmp128_;
	gpointer _tmp129_;
	gchar* _tmp130_;
	GeeBidirIterator* _tmp131_;
	gpointer _tmp132_;
	GeeMapEntry* _tmp133_;
	GeeBidirMapIterator* _tmp134_;
	gpointer _tmp135_;
	gchar* _tmp136_;
	GeeBidirMapIterator* _tmp137_;
	gpointer _tmp138_;
	gchar* _tmp139_;
	GeeBidirIterator* _tmp140_;
	gboolean _tmp141_;
	GeeBidirIterator* _tmp142_;
	gboolean _tmp143_;
	GeeBidirMapIterator* _tmp144_;
	gboolean _tmp145_;
	GeeBidirIterator* _tmp146_;
	gboolean _tmp147_;
	GeeBidirIterator* _tmp148_;
	gboolean _tmp149_;
	GeeBidirMapIterator* _tmp150_;
	gboolean _tmp151_;
	GeeBidirIterator* _tmp152_;
	gpointer _tmp153_;
	gchar* _tmp154_;
	GeeBidirIterator* _tmp155_;
	gpointer _tmp156_;
	GeeMapEntry* _tmp157_;
	GeeBidirMapIterator* _tmp158_;
	gpointer _tmp159_;
	gchar* _tmp160_;
	GeeBidirMapIterator* _tmp161_;
	gpointer _tmp162_;
	gchar* _tmp163_;
	GeeBidirIterator* _tmp164_;
	gboolean _tmp165_;
	GeeBidirIterator* _tmp166_;
	gboolean _tmp167_;
	GeeBidirMapIterator* _tmp168_;
	gboolean _tmp169_;
	GeeBidirIterator* _tmp170_;
	gboolean _tmp171_;
	GeeBidirIterator* _tmp172_;
	gboolean _tmp173_;
	GeeBidirMapIterator* _tmp174_;
	gboolean _tmp175_;
	GeeBidirIterator* _tmp176_;
	gboolean _tmp177_;
	GeeBidirIterator* _tmp178_;
	gboolean _tmp179_;
	GeeBidirMapIterator* _tmp180_;
	gboolean _tmp181_;
	GeeBidirIterator* _tmp182_;
	gpointer _tmp183_;
	gchar* _tmp184_;
	GeeBidirIterator* _tmp185_;
	gpointer _tmp186_;
	GeeMapEntry* _tmp187_;
	GeeBidirMapIterator* _tmp188_;
	gpointer _tmp189_;
	gchar* _tmp190_;
	GeeBidirMapIterator* _tmp191_;
	gpointer _tmp192_;
	gchar* _tmp193_;
	GeeBidirIterator* _tmp194_;
	gboolean _tmp195_;
	GeeBidirIterator* _tmp196_;
	gboolean _tmp197_;
	GeeBidirMapIterator* _tmp198_;
	gboolean _tmp199_;
	GeeBidirIterator* _tmp200_;
	gpointer _tmp201_;
	gchar* _tmp202_;
	GeeBidirIterator* _tmp203_;
	gpointer _tmp204_;
	GeeMapEntry* _tmp205_;
	GeeBidirMapIterator* _tmp206_;
	gpointer _tmp207_;
	gchar* _tmp208_;
	GeeBidirMapIterator* _tmp209_;
	gpointer _tmp210_;
	gchar* _tmp211_;
	GeeBidirIterator* _tmp212_;
	gboolean _tmp213_;
	GeeBidirIterator* _tmp214_;
	gboolean _tmp215_;
	GeeBidirMapIterator* _tmp216_;
	gboolean _tmp217_;
	GeeBidirIterator* _tmp218_;
	gpointer _tmp219_;
	gchar* _tmp220_;
	GeeBidirIterator* _tmp221_;
	gpointer _tmp222_;
	GeeMapEntry* _tmp223_;
	GeeBidirMapIterator* _tmp224_;
	gpointer _tmp225_;
	gchar* _tmp226_;
	GeeBidirMapIterator* _tmp227_;
	gpointer _tmp228_;
	gchar* _tmp229_;
	GeeBidirIterator* _tmp230_;
	gboolean _tmp231_;
	GeeBidirIterator* _tmp232_;
	gboolean _tmp233_;
	GeeBidirMapIterator* _tmp234_;
	gboolean _tmp235_;
	GeeBidirIterator* _tmp236_;
	gpointer _tmp237_;
	gchar* _tmp238_;
	GeeBidirIterator* _tmp239_;
	gpointer _tmp240_;
	GeeMapEntry* _tmp241_;
	GeeBidirMapIterator* _tmp242_;
	gpointer _tmp243_;
	gchar* _tmp244_;
	GeeBidirMapIterator* _tmp245_;
	gpointer _tmp246_;
	gchar* _tmp247_;
	GeeBidirIterator* _tmp248_;
	gboolean _tmp249_;
	GeeBidirIterator* _tmp250_;
	gboolean _tmp251_;
	GeeBidirMapIterator* _tmp252_;
	gboolean _tmp253_;
	GeeBidirIterator* _tmp254_;
	gpointer _tmp255_;
	gchar* _tmp256_;
	GeeBidirIterator* _tmp257_;
	gpointer _tmp258_;
	GeeMapEntry* _tmp259_;
	GeeBidirMapIterator* _tmp260_;
	gpointer _tmp261_;
	gchar* _tmp262_;
	GeeBidirMapIterator* _tmp263_;
	gpointer _tmp264_;
	gchar* _tmp265_;
	GeeBidirIterator* _tmp266_;
	gboolean _tmp267_;
	GeeBidirIterator* _tmp268_;
	gboolean _tmp269_;
	GeeBidirMapIterator* _tmp270_;
	gboolean _tmp271_;
	GeeBidirIterator* _tmp272_;
	gpointer _tmp273_;
	gchar* _tmp274_;
	GeeBidirIterator* _tmp275_;
	gpointer _tmp276_;
	GeeMapEntry* _tmp277_;
	GeeBidirMapIterator* _tmp278_;
	gpointer _tmp279_;
	gchar* _tmp280_;
	GeeBidirMapIterator* _tmp281_;
	gpointer _tmp282_;
	gchar* _tmp283_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((MapTests*) self)->test_map;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp0_) : NULL);
	test_sorted_map = _tmp1_;
	_tmp2_ = gee_sorted_map_get_ascending_keys ((GeeSortedMap*) test_sorted_map);
	_tmp3_ = _tmp2_;
	_tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp3_) : NULL;
	if (_tmp4_ == NULL) {
		_g_object_unref0 (_tmp3_);
	}
	keys = _tmp4_;
	_tmp5_ = gee_sorted_map_get_ascending_entries ((GeeSortedMap*) test_sorted_map);
	_tmp6_ = _tmp5_;
	_tmp7_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp6_) : NULL;
	if (_tmp7_ == NULL) {
		_g_object_unref0 (_tmp6_);
	}
	entries = _tmp7_;
	_tmp8_ = gee_bidir_sorted_set_bidir_iterator (keys);
	keys_iterator = _tmp8_;
	_tmp9_ = gee_bidir_sorted_set_bidir_iterator (entries);
	entries_iterator = _tmp9_;
	_tmp10_ = gee_bidir_sorted_map_bidir_map_iterator (test_sorted_map);
	map_iterator = _tmp10_;
	_tmp11_ = keys_iterator;
	_tmp12_ = gee_bidir_iterator_has_previous (_tmp11_);
	_vala_assert (!_tmp12_, "!keys_iterator.has_previous ()");
	_tmp13_ = entries_iterator;
	_tmp14_ = gee_bidir_iterator_has_previous (_tmp13_);
	_vala_assert (!_tmp14_, "!entries_iterator.has_previous ()");
	_tmp15_ = map_iterator;
	_tmp16_ = gee_bidir_map_iterator_has_previous (_tmp15_);
	_vala_assert (!_tmp16_, "!map_iterator.has_previous ()");
	_tmp17_ = keys_iterator;
	_tmp18_ = gee_bidir_iterator_previous (_tmp17_);
	_vala_assert (!_tmp18_, "!keys_iterator.previous ()");
	_tmp19_ = entries_iterator;
	_tmp20_ = gee_bidir_iterator_has_previous (_tmp19_);
	_vala_assert (!_tmp20_, "!entries_iterator.has_previous ()");
	_tmp21_ = map_iterator;
	_tmp22_ = gee_bidir_map_iterator_previous (_tmp21_);
	_vala_assert (!_tmp22_, "!map_iterator.previous ()");
	gee_map_set ((GeeMap*) test_sorted_map, "one", "one");
	gee_map_set ((GeeMap*) test_sorted_map, "two", "two");
	gee_map_set ((GeeMap*) test_sorted_map, "three", "three");
	gee_map_set ((GeeMap*) test_sorted_map, "four", "four");
	gee_map_set ((GeeMap*) test_sorted_map, "five", "five");
	gee_map_set ((GeeMap*) test_sorted_map, "six", "six");
	_tmp23_ = gee_bidir_sorted_set_bidir_iterator (keys);
	_g_object_unref0 (keys_iterator);
	keys_iterator = _tmp23_;
	_tmp24_ = gee_bidir_sorted_set_bidir_iterator (entries);
	_g_object_unref0 (entries_iterator);
	entries_iterator = _tmp24_;
	_tmp25_ = gee_bidir_sorted_map_bidir_map_iterator (test_sorted_map);
	_g_object_unref0 (map_iterator);
	map_iterator = _tmp25_;
	_tmp26_ = keys_iterator;
	_tmp27_ = gee_iterator_next ((GeeIterator*) _tmp26_);
	_vala_assert (_tmp27_, "keys_iterator.next ()");
	_tmp28_ = entries_iterator;
	_tmp29_ = gee_iterator_next ((GeeIterator*) _tmp28_);
	_vala_assert (_tmp29_, "entries_iterator.next ()");
	_tmp30_ = map_iterator;
	_tmp31_ = gee_map_iterator_next ((GeeMapIterator*) _tmp30_);
	_vala_assert (_tmp31_, "map_iterator.next ()");
	_tmp32_ = keys_iterator;
	_tmp33_ = gee_iterator_get ((GeeIterator*) _tmp32_);
	_tmp34_ = (gchar*) _tmp33_;
	_vala_assert (g_strcmp0 (_tmp34_, "five") == 0, "keys_iterator.get () == \"five\"");
	_g_free0 (_tmp34_);
	_tmp35_ = entries_iterator;
	_tmp36_ = gee_iterator_get ((GeeIterator*) _tmp35_);
	_tmp37_ = (GeeMapEntry*) _tmp36_;
	map_tests_assert_entry (_tmp37_, "five", "five");
	_g_object_unref0 (_tmp37_);
	_tmp38_ = map_iterator;
	_tmp39_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp38_);
	_tmp40_ = (gchar*) _tmp39_;
	_vala_assert (g_strcmp0 (_tmp40_, "five") == 0, "map_iterator.get_key () == \"five\"");
	_g_free0 (_tmp40_);
	_tmp41_ = map_iterator;
	_tmp42_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp41_);
	_tmp43_ = (gchar*) _tmp42_;
	_vala_assert (g_strcmp0 (_tmp43_, "five") == 0, "map_iterator.get_value () == \"five\"");
	_g_free0 (_tmp43_);
	_tmp44_ = keys_iterator;
	_tmp45_ = gee_bidir_iterator_has_previous (_tmp44_);
	_vala_assert (!_tmp45_, "!keys_iterator.has_previous ()");
	_tmp46_ = entries_iterator;
	_tmp47_ = gee_bidir_iterator_has_previous (_tmp46_);
	_vala_assert (!_tmp47_, "!entries_iterator.has_previous ()");
	_tmp48_ = map_iterator;
	_tmp49_ = gee_bidir_map_iterator_has_previous (_tmp48_);
	_vala_assert (!_tmp49_, "!map_iterator.has_previous ()");
	_tmp50_ = keys_iterator;
	_tmp51_ = gee_iterator_next ((GeeIterator*) _tmp50_);
	_vala_assert (_tmp51_, "keys_iterator.next ()");
	_tmp52_ = entries_iterator;
	_tmp53_ = gee_iterator_next ((GeeIterator*) _tmp52_);
	_vala_assert (_tmp53_, "entries_iterator.next ()");
	_tmp54_ = map_iterator;
	_tmp55_ = gee_map_iterator_next ((GeeMapIterator*) _tmp54_);
	_vala_assert (_tmp55_, "map_iterator.next ()");
	_tmp56_ = keys_iterator;
	_tmp57_ = gee_iterator_get ((GeeIterator*) _tmp56_);
	_tmp58_ = (gchar*) _tmp57_;
	_vala_assert (g_strcmp0 (_tmp58_, "four") == 0, "keys_iterator.get () == \"four\"");
	_g_free0 (_tmp58_);
	_tmp59_ = entries_iterator;
	_tmp60_ = gee_iterator_get ((GeeIterator*) _tmp59_);
	_tmp61_ = (GeeMapEntry*) _tmp60_;
	map_tests_assert_entry (_tmp61_, "four", "four");
	_g_object_unref0 (_tmp61_);
	_tmp62_ = map_iterator;
	_tmp63_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp62_);
	_tmp64_ = (gchar*) _tmp63_;
	_vala_assert (g_strcmp0 (_tmp64_, "four") == 0, "map_iterator.get_key () == \"four\"");
	_g_free0 (_tmp64_);
	_tmp65_ = map_iterator;
	_tmp66_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp65_);
	_tmp67_ = (gchar*) _tmp66_;
	_vala_assert (g_strcmp0 (_tmp67_, "four") == 0, "map_iterator.get_value () == \"four\"");
	_g_free0 (_tmp67_);
	_tmp68_ = keys_iterator;
	_tmp69_ = gee_bidir_iterator_has_previous (_tmp68_);
	_vala_assert (_tmp69_, "keys_iterator.has_previous ()");
	_tmp70_ = entries_iterator;
	_tmp71_ = gee_bidir_iterator_has_previous (_tmp70_);
	_vala_assert (_tmp71_, "entries_iterator.has_previous ()");
	_tmp72_ = map_iterator;
	_tmp73_ = gee_bidir_map_iterator_has_previous (_tmp72_);
	_vala_assert (_tmp73_, "map_iterator.has_previous ()");
	_tmp74_ = keys_iterator;
	_tmp75_ = gee_iterator_next ((GeeIterator*) _tmp74_);
	_vala_assert (_tmp75_, "keys_iterator.next ()");
	_tmp76_ = entries_iterator;
	_tmp77_ = gee_iterator_next ((GeeIterator*) _tmp76_);
	_vala_assert (_tmp77_, "entries_iterator.next ()");
	_tmp78_ = map_iterator;
	_tmp79_ = gee_map_iterator_next ((GeeMapIterator*) _tmp78_);
	_vala_assert (_tmp79_, "map_iterator.next ()");
	_tmp80_ = keys_iterator;
	_tmp81_ = gee_iterator_get ((GeeIterator*) _tmp80_);
	_tmp82_ = (gchar*) _tmp81_;
	_vala_assert (g_strcmp0 (_tmp82_, "one") == 0, "keys_iterator.get () == \"one\"");
	_g_free0 (_tmp82_);
	_tmp83_ = entries_iterator;
	_tmp84_ = gee_iterator_get ((GeeIterator*) _tmp83_);
	_tmp85_ = (GeeMapEntry*) _tmp84_;
	map_tests_assert_entry (_tmp85_, "one", "one");
	_g_object_unref0 (_tmp85_);
	_tmp86_ = map_iterator;
	_tmp87_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp86_);
	_tmp88_ = (gchar*) _tmp87_;
	_vala_assert (g_strcmp0 (_tmp88_, "one") == 0, "map_iterator.get_key () == \"one\"");
	_g_free0 (_tmp88_);
	_tmp89_ = map_iterator;
	_tmp90_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp89_);
	_tmp91_ = (gchar*) _tmp90_;
	_vala_assert (g_strcmp0 (_tmp91_, "one") == 0, "map_iterator.get_value () == \"one\"");
	_g_free0 (_tmp91_);
	_tmp92_ = keys_iterator;
	_tmp93_ = gee_bidir_iterator_has_previous (_tmp92_);
	_vala_assert (_tmp93_, "keys_iterator.has_previous ()");
	_tmp94_ = entries_iterator;
	_tmp95_ = gee_bidir_iterator_has_previous (_tmp94_);
	_vala_assert (_tmp95_, "entries_iterator.has_previous ()");
	_tmp96_ = map_iterator;
	_tmp97_ = gee_bidir_map_iterator_has_previous (_tmp96_);
	_vala_assert (_tmp97_, "map_iterator.has_previous ()");
	_tmp98_ = keys_iterator;
	_tmp99_ = gee_iterator_next ((GeeIterator*) _tmp98_);
	_vala_assert (_tmp99_, "keys_iterator.next ()");
	_tmp100_ = entries_iterator;
	_tmp101_ = gee_iterator_next ((GeeIterator*) _tmp100_);
	_vala_assert (_tmp101_, "entries_iterator.next ()");
	_tmp102_ = map_iterator;
	_tmp103_ = gee_map_iterator_next ((GeeMapIterator*) _tmp102_);
	_vala_assert (_tmp103_, "map_iterator.next ()");
	_tmp104_ = keys_iterator;
	_tmp105_ = gee_iterator_get ((GeeIterator*) _tmp104_);
	_tmp106_ = (gchar*) _tmp105_;
	_vala_assert (g_strcmp0 (_tmp106_, "six") == 0, "keys_iterator.get () == \"six\"");
	_g_free0 (_tmp106_);
	_tmp107_ = entries_iterator;
	_tmp108_ = gee_iterator_get ((GeeIterator*) _tmp107_);
	_tmp109_ = (GeeMapEntry*) _tmp108_;
	map_tests_assert_entry (_tmp109_, "six", "six");
	_g_object_unref0 (_tmp109_);
	_tmp110_ = map_iterator;
	_tmp111_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp110_);
	_tmp112_ = (gchar*) _tmp111_;
	_vala_assert (g_strcmp0 (_tmp112_, "six") == 0, "map_iterator.get_key () == \"six\"");
	_g_free0 (_tmp112_);
	_tmp113_ = map_iterator;
	_tmp114_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp113_);
	_tmp115_ = (gchar*) _tmp114_;
	_vala_assert (g_strcmp0 (_tmp115_, "six") == 0, "map_iterator.get_value () == \"six\"");
	_g_free0 (_tmp115_);
	_tmp116_ = keys_iterator;
	_tmp117_ = gee_bidir_iterator_has_previous (_tmp116_);
	_vala_assert (_tmp117_, "keys_iterator.has_previous ()");
	_tmp118_ = entries_iterator;
	_tmp119_ = gee_bidir_iterator_has_previous (_tmp118_);
	_vala_assert (_tmp119_, "entries_iterator.has_previous ()");
	_tmp120_ = map_iterator;
	_tmp121_ = gee_bidir_map_iterator_has_previous (_tmp120_);
	_vala_assert (_tmp121_, "map_iterator.has_previous ()");
	_tmp122_ = keys_iterator;
	_tmp123_ = gee_iterator_next ((GeeIterator*) _tmp122_);
	_vala_assert (_tmp123_, "keys_iterator.next ()");
	_tmp124_ = entries_iterator;
	_tmp125_ = gee_iterator_next ((GeeIterator*) _tmp124_);
	_vala_assert (_tmp125_, "entries_iterator.next ()");
	_tmp126_ = map_iterator;
	_tmp127_ = gee_map_iterator_next ((GeeMapIterator*) _tmp126_);
	_vala_assert (_tmp127_, "map_iterator.next ()");
	_tmp128_ = keys_iterator;
	_tmp129_ = gee_iterator_get ((GeeIterator*) _tmp128_);
	_tmp130_ = (gchar*) _tmp129_;
	_vala_assert (g_strcmp0 (_tmp130_, "three") == 0, "keys_iterator.get () == \"three\"");
	_g_free0 (_tmp130_);
	_tmp131_ = entries_iterator;
	_tmp132_ = gee_iterator_get ((GeeIterator*) _tmp131_);
	_tmp133_ = (GeeMapEntry*) _tmp132_;
	map_tests_assert_entry (_tmp133_, "three", "three");
	_g_object_unref0 (_tmp133_);
	_tmp134_ = map_iterator;
	_tmp135_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp134_);
	_tmp136_ = (gchar*) _tmp135_;
	_vala_assert (g_strcmp0 (_tmp136_, "three") == 0, "map_iterator.get_key () == \"three\"");
	_g_free0 (_tmp136_);
	_tmp137_ = map_iterator;
	_tmp138_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp137_);
	_tmp139_ = (gchar*) _tmp138_;
	_vala_assert (g_strcmp0 (_tmp139_, "three") == 0, "map_iterator.get_value () == \"three\"");
	_g_free0 (_tmp139_);
	_tmp140_ = keys_iterator;
	_tmp141_ = gee_bidir_iterator_has_previous (_tmp140_);
	_vala_assert (_tmp141_, "keys_iterator.has_previous ()");
	_tmp142_ = entries_iterator;
	_tmp143_ = gee_bidir_iterator_has_previous (_tmp142_);
	_vala_assert (_tmp143_, "entries_iterator.has_previous ()");
	_tmp144_ = map_iterator;
	_tmp145_ = gee_bidir_map_iterator_has_previous (_tmp144_);
	_vala_assert (_tmp145_, "map_iterator.has_previous ()");
	_tmp146_ = keys_iterator;
	_tmp147_ = gee_iterator_next ((GeeIterator*) _tmp146_);
	_vala_assert (_tmp147_, "keys_iterator.next ()");
	_tmp148_ = entries_iterator;
	_tmp149_ = gee_iterator_next ((GeeIterator*) _tmp148_);
	_vala_assert (_tmp149_, "entries_iterator.next ()");
	_tmp150_ = map_iterator;
	_tmp151_ = gee_map_iterator_next ((GeeMapIterator*) _tmp150_);
	_vala_assert (_tmp151_, "map_iterator.next ()");
	_tmp152_ = keys_iterator;
	_tmp153_ = gee_iterator_get ((GeeIterator*) _tmp152_);
	_tmp154_ = (gchar*) _tmp153_;
	_vala_assert (g_strcmp0 (_tmp154_, "two") == 0, "keys_iterator.get () == \"two\"");
	_g_free0 (_tmp154_);
	_tmp155_ = entries_iterator;
	_tmp156_ = gee_iterator_get ((GeeIterator*) _tmp155_);
	_tmp157_ = (GeeMapEntry*) _tmp156_;
	map_tests_assert_entry (_tmp157_, "two", "two");
	_g_object_unref0 (_tmp157_);
	_tmp158_ = map_iterator;
	_tmp159_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp158_);
	_tmp160_ = (gchar*) _tmp159_;
	_vala_assert (g_strcmp0 (_tmp160_, "two") == 0, "map_iterator.get_key () == \"two\"");
	_g_free0 (_tmp160_);
	_tmp161_ = map_iterator;
	_tmp162_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp161_);
	_tmp163_ = (gchar*) _tmp162_;
	_vala_assert (g_strcmp0 (_tmp163_, "two") == 0, "map_iterator.get_value () == \"two\"");
	_g_free0 (_tmp163_);
	_tmp164_ = keys_iterator;
	_tmp165_ = gee_bidir_iterator_has_previous (_tmp164_);
	_vala_assert (_tmp165_, "keys_iterator.has_previous ()");
	_tmp166_ = entries_iterator;
	_tmp167_ = gee_bidir_iterator_has_previous (_tmp166_);
	_vala_assert (_tmp167_, "entries_iterator.has_previous ()");
	_tmp168_ = map_iterator;
	_tmp169_ = gee_bidir_map_iterator_has_previous (_tmp168_);
	_vala_assert (_tmp169_, "map_iterator.has_previous ()");
	_tmp170_ = keys_iterator;
	_tmp171_ = gee_iterator_next ((GeeIterator*) _tmp170_);
	_vala_assert (!_tmp171_, "!keys_iterator.next ()");
	_tmp172_ = entries_iterator;
	_tmp173_ = gee_iterator_next ((GeeIterator*) _tmp172_);
	_vala_assert (!_tmp173_, "!entries_iterator.next ()");
	_tmp174_ = map_iterator;
	_tmp175_ = gee_map_iterator_next ((GeeMapIterator*) _tmp174_);
	_vala_assert (!_tmp175_, "!map_iterator.next ()");
	_tmp176_ = keys_iterator;
	_tmp177_ = gee_bidir_iterator_previous (_tmp176_);
	_vala_assert (_tmp177_, "keys_iterator.previous ()");
	_tmp178_ = entries_iterator;
	_tmp179_ = gee_bidir_iterator_previous (_tmp178_);
	_vala_assert (_tmp179_, "entries_iterator.previous ()");
	_tmp180_ = map_iterator;
	_tmp181_ = gee_bidir_map_iterator_previous (_tmp180_);
	_vala_assert (_tmp181_, "map_iterator.previous ()");
	_tmp182_ = keys_iterator;
	_tmp183_ = gee_iterator_get ((GeeIterator*) _tmp182_);
	_tmp184_ = (gchar*) _tmp183_;
	_vala_assert (g_strcmp0 (_tmp184_, "three") == 0, "keys_iterator.get () == \"three\"");
	_g_free0 (_tmp184_);
	_tmp185_ = entries_iterator;
	_tmp186_ = gee_iterator_get ((GeeIterator*) _tmp185_);
	_tmp187_ = (GeeMapEntry*) _tmp186_;
	map_tests_assert_entry (_tmp187_, "three", "three");
	_g_object_unref0 (_tmp187_);
	_tmp188_ = map_iterator;
	_tmp189_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp188_);
	_tmp190_ = (gchar*) _tmp189_;
	_vala_assert (g_strcmp0 (_tmp190_, "three") == 0, "map_iterator.get_key () == \"three\"");
	_g_free0 (_tmp190_);
	_tmp191_ = map_iterator;
	_tmp192_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp191_);
	_tmp193_ = (gchar*) _tmp192_;
	_vala_assert (g_strcmp0 (_tmp193_, "three") == 0, "map_iterator.get_value () == \"three\"");
	_g_free0 (_tmp193_);
	_tmp194_ = keys_iterator;
	_tmp195_ = gee_bidir_iterator_previous (_tmp194_);
	_vala_assert (_tmp195_, "keys_iterator.previous ()");
	_tmp196_ = entries_iterator;
	_tmp197_ = gee_bidir_iterator_previous (_tmp196_);
	_vala_assert (_tmp197_, "entries_iterator.previous ()");
	_tmp198_ = map_iterator;
	_tmp199_ = gee_bidir_map_iterator_previous (_tmp198_);
	_vala_assert (_tmp199_, "map_iterator.previous ()");
	_tmp200_ = keys_iterator;
	_tmp201_ = gee_iterator_get ((GeeIterator*) _tmp200_);
	_tmp202_ = (gchar*) _tmp201_;
	_vala_assert (g_strcmp0 (_tmp202_, "six") == 0, "keys_iterator.get () == \"six\"");
	_g_free0 (_tmp202_);
	_tmp203_ = entries_iterator;
	_tmp204_ = gee_iterator_get ((GeeIterator*) _tmp203_);
	_tmp205_ = (GeeMapEntry*) _tmp204_;
	map_tests_assert_entry (_tmp205_, "six", "six");
	_g_object_unref0 (_tmp205_);
	_tmp206_ = map_iterator;
	_tmp207_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp206_);
	_tmp208_ = (gchar*) _tmp207_;
	_vala_assert (g_strcmp0 (_tmp208_, "six") == 0, "map_iterator.get_key () == \"six\"");
	_g_free0 (_tmp208_);
	_tmp209_ = map_iterator;
	_tmp210_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp209_);
	_tmp211_ = (gchar*) _tmp210_;
	_vala_assert (g_strcmp0 (_tmp211_, "six") == 0, "map_iterator.get_value () == \"six\"");
	_g_free0 (_tmp211_);
	_tmp212_ = keys_iterator;
	_tmp213_ = gee_bidir_iterator_previous (_tmp212_);
	_vala_assert (_tmp213_, "keys_iterator.previous ()");
	_tmp214_ = entries_iterator;
	_tmp215_ = gee_bidir_iterator_previous (_tmp214_);
	_vala_assert (_tmp215_, "entries_iterator.previous ()");
	_tmp216_ = map_iterator;
	_tmp217_ = gee_bidir_map_iterator_previous (_tmp216_);
	_vala_assert (_tmp217_, "map_iterator.previous ()");
	_tmp218_ = keys_iterator;
	_tmp219_ = gee_iterator_get ((GeeIterator*) _tmp218_);
	_tmp220_ = (gchar*) _tmp219_;
	_vala_assert (g_strcmp0 (_tmp220_, "one") == 0, "keys_iterator.get () == \"one\"");
	_g_free0 (_tmp220_);
	_tmp221_ = entries_iterator;
	_tmp222_ = gee_iterator_get ((GeeIterator*) _tmp221_);
	_tmp223_ = (GeeMapEntry*) _tmp222_;
	map_tests_assert_entry (_tmp223_, "one", "one");
	_g_object_unref0 (_tmp223_);
	_tmp224_ = map_iterator;
	_tmp225_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp224_);
	_tmp226_ = (gchar*) _tmp225_;
	_vala_assert (g_strcmp0 (_tmp226_, "one") == 0, "map_iterator.get_key () == \"one\"");
	_g_free0 (_tmp226_);
	_tmp227_ = map_iterator;
	_tmp228_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp227_);
	_tmp229_ = (gchar*) _tmp228_;
	_vala_assert (g_strcmp0 (_tmp229_, "one") == 0, "map_iterator.get_value () == \"one\"");
	_g_free0 (_tmp229_);
	_tmp230_ = keys_iterator;
	_tmp231_ = gee_bidir_iterator_previous (_tmp230_);
	_vala_assert (_tmp231_, "keys_iterator.previous ()");
	_tmp232_ = entries_iterator;
	_tmp233_ = gee_bidir_iterator_previous (_tmp232_);
	_vala_assert (_tmp233_, "entries_iterator.previous ()");
	_tmp234_ = map_iterator;
	_tmp235_ = gee_bidir_map_iterator_previous (_tmp234_);
	_vala_assert (_tmp235_, "map_iterator.previous ()");
	_tmp236_ = keys_iterator;
	_tmp237_ = gee_iterator_get ((GeeIterator*) _tmp236_);
	_tmp238_ = (gchar*) _tmp237_;
	_vala_assert (g_strcmp0 (_tmp238_, "four") == 0, "keys_iterator.get () == \"four\"");
	_g_free0 (_tmp238_);
	_tmp239_ = entries_iterator;
	_tmp240_ = gee_iterator_get ((GeeIterator*) _tmp239_);
	_tmp241_ = (GeeMapEntry*) _tmp240_;
	map_tests_assert_entry (_tmp241_, "four", "four");
	_g_object_unref0 (_tmp241_);
	_tmp242_ = map_iterator;
	_tmp243_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp242_);
	_tmp244_ = (gchar*) _tmp243_;
	_vala_assert (g_strcmp0 (_tmp244_, "four") == 0, "map_iterator.get_key () == \"four\"");
	_g_free0 (_tmp244_);
	_tmp245_ = map_iterator;
	_tmp246_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp245_);
	_tmp247_ = (gchar*) _tmp246_;
	_vala_assert (g_strcmp0 (_tmp247_, "four") == 0, "map_iterator.get_value () == \"four\"");
	_g_free0 (_tmp247_);
	_tmp248_ = keys_iterator;
	_tmp249_ = gee_bidir_iterator_previous (_tmp248_);
	_vala_assert (_tmp249_, "keys_iterator.previous ()");
	_tmp250_ = entries_iterator;
	_tmp251_ = gee_bidir_iterator_previous (_tmp250_);
	_vala_assert (_tmp251_, "entries_iterator.previous ()");
	_tmp252_ = map_iterator;
	_tmp253_ = gee_bidir_map_iterator_previous (_tmp252_);
	_vala_assert (_tmp253_, "map_iterator.previous ()");
	_tmp254_ = keys_iterator;
	_tmp255_ = gee_iterator_get ((GeeIterator*) _tmp254_);
	_tmp256_ = (gchar*) _tmp255_;
	_vala_assert (g_strcmp0 (_tmp256_, "five") == 0, "keys_iterator.get () == \"five\"");
	_g_free0 (_tmp256_);
	_tmp257_ = entries_iterator;
	_tmp258_ = gee_iterator_get ((GeeIterator*) _tmp257_);
	_tmp259_ = (GeeMapEntry*) _tmp258_;
	map_tests_assert_entry (_tmp259_, "five", "five");
	_g_object_unref0 (_tmp259_);
	_tmp260_ = map_iterator;
	_tmp261_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp260_);
	_tmp262_ = (gchar*) _tmp261_;
	_vala_assert (g_strcmp0 (_tmp262_, "five") == 0, "map_iterator.get_key () == \"five\"");
	_g_free0 (_tmp262_);
	_tmp263_ = map_iterator;
	_tmp264_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp263_);
	_tmp265_ = (gchar*) _tmp264_;
	_vala_assert (g_strcmp0 (_tmp265_, "five") == 0, "map_iterator.get_value () == \"five\"");
	_g_free0 (_tmp265_);
	_tmp266_ = keys_iterator;
	_tmp267_ = gee_bidir_iterator_previous (_tmp266_);
	_vala_assert (!_tmp267_, "!keys_iterator.previous ()");
	_tmp268_ = entries_iterator;
	_tmp269_ = gee_bidir_iterator_previous (_tmp268_);
	_vala_assert (!_tmp269_, "!entries_iterator.previous ()");
	_tmp270_ = map_iterator;
	_tmp271_ = gee_bidir_map_iterator_previous (_tmp270_);
	_vala_assert (!_tmp271_, "!map_iterator.previous ()");
	_tmp272_ = keys_iterator;
	_tmp273_ = gee_iterator_get ((GeeIterator*) _tmp272_);
	_tmp274_ = (gchar*) _tmp273_;
	_vala_assert (g_strcmp0 (_tmp274_, "five") == 0, "keys_iterator.get () == \"five\"");
	_g_free0 (_tmp274_);
	_tmp275_ = entries_iterator;
	_tmp276_ = gee_iterator_get ((GeeIterator*) _tmp275_);
	_tmp277_ = (GeeMapEntry*) _tmp276_;
	map_tests_assert_entry (_tmp277_, "five", "five");
	_g_object_unref0 (_tmp277_);
	_tmp278_ = map_iterator;
	_tmp279_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp278_);
	_tmp280_ = (gchar*) _tmp279_;
	_vala_assert (g_strcmp0 (_tmp280_, "five") == 0, "map_iterator.get_key () == \"five\"");
	_g_free0 (_tmp280_);
	_tmp281_ = map_iterator;
	_tmp282_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp281_);
	_tmp283_ = (gchar*) _tmp282_;
	_vala_assert (g_strcmp0 (_tmp283_, "five") == 0, "map_iterator.get_value () == \"five\"");
	_g_free0 (_tmp283_);
	_g_object_unref0 (map_iterator);
	_g_object_unref0 (entries_iterator);
	_g_object_unref0 (keys_iterator);
	_g_object_unref0 (entries);
	_g_object_unref0 (keys);
	_g_object_unref0 (test_sorted_map);
}


void bidir_sorted_map_tests_test_bidir_iterator_last (BidirSortedMapTests* self) {
	GeeBidirSortedMap* test_sorted_map = NULL;
	GeeMap* _tmp0_;
	GeeBidirSortedMap* _tmp1_;
	GeeBidirSortedSet* keys = NULL;
	GeeSortedSet* _tmp2_;
	GeeSortedSet* _tmp3_;
	GeeBidirSortedSet* _tmp4_;
	GeeBidirSortedSet* entries = NULL;
	GeeSortedSet* _tmp5_;
	GeeSortedSet* _tmp6_;
	GeeBidirSortedSet* _tmp7_;
	GeeBidirIterator* keys_iterator = NULL;
	GeeBidirIterator* _tmp8_;
	GeeBidirIterator* entries_iterator = NULL;
	GeeBidirIterator* _tmp9_;
	GeeBidirIterator* _tmp10_;
	gboolean _tmp11_;
	GeeBidirIterator* _tmp12_;
	gboolean _tmp13_;
	GeeBidirIterator* _tmp14_;
	GeeBidirIterator* _tmp15_;
	GeeBidirIterator* _tmp16_;
	gboolean _tmp17_;
	GeeBidirIterator* _tmp18_;
	gboolean _tmp19_;
	GeeBidirIterator* _tmp20_;
	gpointer _tmp21_;
	gchar* _tmp22_;
	GeeBidirIterator* _tmp23_;
	gpointer _tmp24_;
	GeeMapEntry* _tmp25_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((MapTests*) self)->test_map;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp0_) : NULL);
	test_sorted_map = _tmp1_;
	_tmp2_ = gee_sorted_map_get_ascending_keys ((GeeSortedMap*) test_sorted_map);
	_tmp3_ = _tmp2_;
	_tmp4_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp3_) : NULL;
	if (_tmp4_ == NULL) {
		_g_object_unref0 (_tmp3_);
	}
	keys = _tmp4_;
	_tmp5_ = gee_sorted_map_get_ascending_entries ((GeeSortedMap*) test_sorted_map);
	_tmp6_ = _tmp5_;
	_tmp7_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp6_) : NULL;
	if (_tmp7_ == NULL) {
		_g_object_unref0 (_tmp6_);
	}
	entries = _tmp7_;
	_tmp8_ = gee_bidir_sorted_set_bidir_iterator (keys);
	keys_iterator = _tmp8_;
	_tmp9_ = gee_bidir_sorted_set_bidir_iterator (entries);
	entries_iterator = _tmp9_;
	_tmp10_ = keys_iterator;
	_tmp11_ = gee_bidir_iterator_last (_tmp10_);
	_vala_assert (!_tmp11_, "!keys_iterator.last ()");
	_tmp12_ = entries_iterator;
	_tmp13_ = gee_bidir_iterator_last (_tmp12_);
	_vala_assert (!_tmp13_, "!entries_iterator.last ()");
	gee_map_set ((GeeMap*) test_sorted_map, "one", "one");
	gee_map_set ((GeeMap*) test_sorted_map, "two", "two");
	gee_map_set ((GeeMap*) test_sorted_map, "three", "three");
	gee_map_set ((GeeMap*) test_sorted_map, "four", "four");
	gee_map_set ((GeeMap*) test_sorted_map, "five", "five");
	gee_map_set ((GeeMap*) test_sorted_map, "six", "six");
	_tmp14_ = gee_bidir_sorted_set_bidir_iterator (keys);
	_g_object_unref0 (keys_iterator);
	keys_iterator = _tmp14_;
	_tmp15_ = gee_bidir_sorted_set_bidir_iterator (entries);
	_g_object_unref0 (entries_iterator);
	entries_iterator = _tmp15_;
	_tmp16_ = keys_iterator;
	_tmp17_ = gee_bidir_iterator_last (_tmp16_);
	_vala_assert (_tmp17_, "keys_iterator.last ()");
	_tmp18_ = entries_iterator;
	_tmp19_ = gee_bidir_iterator_last (_tmp18_);
	_vala_assert (_tmp19_, "entries_iterator.last ()");
	_tmp20_ = keys_iterator;
	_tmp21_ = gee_iterator_get ((GeeIterator*) _tmp20_);
	_tmp22_ = (gchar*) _tmp21_;
	_vala_assert (g_strcmp0 (_tmp22_, "two") == 0, "keys_iterator.get () == \"two\"");
	_g_free0 (_tmp22_);
	_tmp23_ = entries_iterator;
	_tmp24_ = gee_iterator_get ((GeeIterator*) _tmp23_);
	_tmp25_ = (GeeMapEntry*) _tmp24_;
	map_tests_assert_entry (_tmp25_, "two", "two");
	_g_object_unref0 (_tmp25_);
	_g_object_unref0 (entries_iterator);
	_g_object_unref0 (keys_iterator);
	_g_object_unref0 (entries);
	_g_object_unref0 (keys);
	_g_object_unref0 (test_sorted_map);
}


static void _bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators_gee_test_case_test_method (gpointer self) {
	bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators ((BidirSortedMapTestsBidirSubMapTests*) self);
}


BidirSortedMapTestsBidirSubMapTests* bidir_sorted_map_tests_bidir_sub_map_tests_construct (GType object_type, BidirSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type) {
	BidirSortedMapTestsBidirSubMapTests * self = NULL;
	GeeSortedMapTestsSubMapTestsType _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	BidirSortedMapTests* _tmp4_;
	BidirSortedMapTests* _tmp5_;
	GeeSortedMapTestsSubMapTestsType _tmp6_;
	g_return_val_if_fail (test != NULL, NULL);
	_tmp0_ = type;
	_tmp1_ = gee_sorted_map_tests_sub_map_tests_type_to_string (_tmp0_);
	_tmp2_ = g_strdup_printf ("%s Subset", _tmp1_);
	_tmp3_ = _tmp2_;
	self = (BidirSortedMapTestsBidirSubMapTests*) gee_test_case_construct (object_type, _tmp3_);
	_g_free0 (_tmp3_);
	_tmp4_ = test;
	_tmp5_ = _g_object_ref0 (_tmp4_);
	_g_object_unref0 (self->priv->test);
	self->priv->test = _tmp5_;
	_tmp6_ = type;
	self->priv->type = _tmp6_;
	gee_test_case_add_test ((GeeTestCase*) self, "[BidirSortedSet] bi-directional iterator", _bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	return self;
}


BidirSortedMapTestsBidirSubMapTests* bidir_sorted_map_tests_bidir_sub_map_tests_new (BidirSortedMapTests* test, GeeSortedMapTestsSubMapTestsType type) {
	return bidir_sorted_map_tests_bidir_sub_map_tests_construct (BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS, test, type);
}


static void bidir_sorted_map_tests_bidir_sub_map_tests_real_set_up (GeeTestCase* base) {
	BidirSortedMapTestsBidirSubMapTests * self;
	BidirSortedMapTests* _tmp0_;
	BidirSortedMapTests* _tmp1_;
	GeeMap* _tmp2_;
	GeeBidirSortedMap* _tmp3_;
	GeeSortedMapTestsSubMapTestsType _tmp4_;
	self = (BidirSortedMapTestsBidirSubMapTests*) base;
	_tmp0_ = self->priv->test;
	gee_test_case_set_up ((GeeTestCase*) _tmp0_);
	_tmp1_ = self->priv->test;
	_tmp2_ = ((MapTests*) _tmp1_)->test_map;
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp2_) : NULL);
	_g_object_unref0 (self->priv->master);
	self->priv->master = _tmp3_;
	_tmp4_ = self->priv->type;
	switch (_tmp4_) {
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD:
		{
			GeeBidirSortedMap* _tmp5_;
			GeeSortedMap* _tmp6_;
			GeeBidirSortedMap* _tmp7_;
			_tmp5_ = self->priv->master;
			_tmp6_ = gee_sorted_map_head_map ((GeeSortedMap*) _tmp5_, "one");
			_tmp7_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp6_) : NULL;
			if (_tmp7_ == NULL) {
				_g_object_unref0 (_tmp6_);
			}
			_g_object_unref0 (self->priv->submap);
			self->priv->submap = _tmp7_;
			break;
		}
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL:
		{
			GeeBidirSortedMap* _tmp8_;
			GeeSortedMap* _tmp9_;
			GeeBidirSortedMap* _tmp10_;
			_tmp8_ = self->priv->master;
			_tmp9_ = gee_sorted_map_tail_map ((GeeSortedMap*) _tmp8_, "six");
			_tmp10_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp9_) : NULL;
			if (_tmp10_ == NULL) {
				_g_object_unref0 (_tmp9_);
			}
			_g_object_unref0 (self->priv->submap);
			self->priv->submap = _tmp10_;
			break;
		}
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB:
		{
			GeeBidirSortedMap* _tmp11_;
			GeeSortedMap* _tmp12_;
			GeeBidirSortedMap* _tmp13_;
			_tmp11_ = self->priv->master;
			_tmp12_ = gee_sorted_map_sub_map ((GeeSortedMap*) _tmp11_, "four", "three");
			_tmp13_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp12_) : NULL;
			if (_tmp13_ == NULL) {
				_g_object_unref0 (_tmp12_);
			}
			_g_object_unref0 (self->priv->submap);
			self->priv->submap = _tmp13_;
			break;
		}
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY:
		{
			GeeBidirSortedMap* _tmp14_;
			GeeSortedMap* _tmp15_;
			GeeBidirSortedMap* _tmp16_;
			_tmp14_ = self->priv->master;
			_tmp15_ = gee_sorted_map_sub_map ((GeeSortedMap*) _tmp14_, "three", "four");
			_tmp16_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, GEE_TYPE_BIDIR_SORTED_MAP) ? ((GeeBidirSortedMap*) _tmp15_) : NULL;
			if (_tmp16_ == NULL) {
				_g_object_unref0 (_tmp15_);
			}
			_g_object_unref0 (self->priv->submap);
			self->priv->submap = _tmp16_;
			break;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}


static void bidir_sorted_map_tests_bidir_sub_map_tests_real_tear_down (GeeTestCase* base) {
	BidirSortedMapTestsBidirSubMapTests * self;
	BidirSortedMapTests* _tmp0_;
	self = (BidirSortedMapTestsBidirSubMapTests*) base;
	_tmp0_ = self->priv->test;
	gee_test_case_tear_down ((GeeTestCase*) _tmp0_);
}


void bidir_sorted_map_tests_bidir_sub_map_tests_set_default_values (BidirSortedMapTestsBidirSubMapTests* self, gchar*** contains, int* contains_length1, gchar*** not_contains, int* not_contains_length1) {
	gchar** _vala_contains = NULL;
	int _vala_contains_length1 = 0;
	gchar** _vala_not_contains = NULL;
	int _vala_not_contains_length1 = 0;
	GeeBidirSortedMap* _tmp0_;
	GeeBidirSortedMap* _tmp1_;
	GeeBidirSortedMap* _tmp2_;
	GeeBidirSortedMap* _tmp3_;
	GeeBidirSortedMap* _tmp4_;
	GeeBidirSortedMap* _tmp5_;
	GeeSortedMapTestsSubMapTestsType _tmp6_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->master;
	gee_map_set ((GeeMap*) _tmp0_, "one", "one");
	_tmp1_ = self->priv->master;
	gee_map_set ((GeeMap*) _tmp1_, "two", "two");
	_tmp2_ = self->priv->master;
	gee_map_set ((GeeMap*) _tmp2_, "three", "three");
	_tmp3_ = self->priv->master;
	gee_map_set ((GeeMap*) _tmp3_, "four", "four");
	_tmp4_ = self->priv->master;
	gee_map_set ((GeeMap*) _tmp4_, "five", "five");
	_tmp5_ = self->priv->master;
	gee_map_set ((GeeMap*) _tmp5_, "six", "six");
	_tmp6_ = self->priv->type;
	switch (_tmp6_) {
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD:
		{
			gchar* _tmp7_;
			gchar* _tmp8_;
			gchar** _tmp9_;
			gchar* _tmp10_;
			gchar* _tmp11_;
			gchar* _tmp12_;
			gchar* _tmp13_;
			gchar** _tmp14_;
			_tmp7_ = g_strdup ("five");
			_tmp8_ = g_strdup ("four");
			_tmp9_ = g_new0 (gchar*, 2 + 1);
			_tmp9_[0] = _tmp7_;
			_tmp9_[1] = _tmp8_;
			_vala_contains = (_vala_array_free (_vala_contains, _vala_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_contains = _tmp9_;
			_vala_contains_length1 = 2;
			_tmp10_ = g_strdup ("one");
			_tmp11_ = g_strdup ("two");
			_tmp12_ = g_strdup ("three");
			_tmp13_ = g_strdup ("six");
			_tmp14_ = g_new0 (gchar*, 4 + 1);
			_tmp14_[0] = _tmp10_;
			_tmp14_[1] = _tmp11_;
			_tmp14_[2] = _tmp12_;
			_tmp14_[3] = _tmp13_;
			_vala_not_contains = (_vala_array_free (_vala_not_contains, _vala_not_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_not_contains = _tmp14_;
			_vala_not_contains_length1 = 4;
			break;
		}
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_TAIL:
		{
			gchar* _tmp15_;
			gchar* _tmp16_;
			gchar* _tmp17_;
			gchar** _tmp18_;
			gchar* _tmp19_;
			gchar* _tmp20_;
			gchar* _tmp21_;
			gchar** _tmp22_;
			_tmp15_ = g_strdup ("six");
			_tmp16_ = g_strdup ("three");
			_tmp17_ = g_strdup ("two");
			_tmp18_ = g_new0 (gchar*, 3 + 1);
			_tmp18_[0] = _tmp15_;
			_tmp18_[1] = _tmp16_;
			_tmp18_[2] = _tmp17_;
			_vala_contains = (_vala_array_free (_vala_contains, _vala_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_contains = _tmp18_;
			_vala_contains_length1 = 3;
			_tmp19_ = g_strdup ("one");
			_tmp20_ = g_strdup ("four");
			_tmp21_ = g_strdup ("five");
			_tmp22_ = g_new0 (gchar*, 3 + 1);
			_tmp22_[0] = _tmp19_;
			_tmp22_[1] = _tmp20_;
			_tmp22_[2] = _tmp21_;
			_vala_not_contains = (_vala_array_free (_vala_not_contains, _vala_not_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_not_contains = _tmp22_;
			_vala_not_contains_length1 = 3;
			break;
		}
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_SUB:
		{
			gchar* _tmp23_;
			gchar* _tmp24_;
			gchar* _tmp25_;
			gchar** _tmp26_;
			gchar* _tmp27_;
			gchar* _tmp28_;
			gchar* _tmp29_;
			gchar** _tmp30_;
			_tmp23_ = g_strdup ("four");
			_tmp24_ = g_strdup ("one");
			_tmp25_ = g_strdup ("six");
			_tmp26_ = g_new0 (gchar*, 3 + 1);
			_tmp26_[0] = _tmp23_;
			_tmp26_[1] = _tmp24_;
			_tmp26_[2] = _tmp25_;
			_vala_contains = (_vala_array_free (_vala_contains, _vala_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_contains = _tmp26_;
			_vala_contains_length1 = 3;
			_tmp27_ = g_strdup ("two");
			_tmp28_ = g_strdup ("three");
			_tmp29_ = g_strdup ("five");
			_tmp30_ = g_new0 (gchar*, 3 + 1);
			_tmp30_[0] = _tmp27_;
			_tmp30_[1] = _tmp28_;
			_tmp30_[2] = _tmp29_;
			_vala_not_contains = (_vala_array_free (_vala_not_contains, _vala_not_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_not_contains = _tmp30_;
			_vala_not_contains_length1 = 3;
			break;
		}
		case GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY:
		{
			gchar** _tmp31_;
			gchar* _tmp32_;
			gchar* _tmp33_;
			gchar* _tmp34_;
			gchar* _tmp35_;
			gchar* _tmp36_;
			gchar* _tmp37_;
			gchar** _tmp38_;
			_tmp31_ = g_new0 (gchar*, 0 + 1);
			_vala_contains = (_vala_array_free (_vala_contains, _vala_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_contains = _tmp31_;
			_vala_contains_length1 = 0;
			_tmp32_ = g_strdup ("one");
			_tmp33_ = g_strdup ("two");
			_tmp34_ = g_strdup ("three");
			_tmp35_ = g_strdup ("four");
			_tmp36_ = g_strdup ("five");
			_tmp37_ = g_strdup ("six");
			_tmp38_ = g_new0 (gchar*, 6 + 1);
			_tmp38_[0] = _tmp32_;
			_tmp38_[1] = _tmp33_;
			_tmp38_[2] = _tmp34_;
			_tmp38_[3] = _tmp35_;
			_tmp38_[4] = _tmp36_;
			_tmp38_[5] = _tmp37_;
			_vala_not_contains = (_vala_array_free (_vala_not_contains, _vala_not_contains_length1, (GDestroyNotify) g_free), NULL);
			_vala_not_contains = _tmp38_;
			_vala_not_contains_length1 = 6;
			break;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
	if (contains) {
		*contains = _vala_contains;
	} else {
		_vala_contains = (_vala_array_free (_vala_contains, _vala_contains_length1, (GDestroyNotify) g_free), NULL);
	}
	if (contains_length1) {
		*contains_length1 = _vala_contains_length1;
	}
	if (not_contains) {
		*not_contains = _vala_not_contains;
	} else {
		_vala_not_contains = (_vala_array_free (_vala_not_contains, _vala_not_contains_length1, (GDestroyNotify) g_free), NULL);
	}
	if (not_contains_length1) {
		*not_contains_length1 = _vala_not_contains_length1;
	}
}


void bidir_sorted_map_tests_bidir_sub_map_tests_test_bidir_iterators (BidirSortedMapTestsBidirSubMapTests* self) {
	gchar** contains = NULL;
	gint contains_length1 = 0;
	gint _contains_size_ = 0;
	gchar** not_contains = NULL;
	gint not_contains_length1 = 0;
	gint _not_contains_size_ = 0;
	GeeBidirMapIterator* _map_iter = NULL;
	GeeBidirSortedMap* _tmp0_;
	GeeBidirMapIterator* _tmp1_;
	GeeBidirMapIterator* _tmp2_;
	gboolean _tmp3_;
	GeeBidirMapIterator* _tmp4_;
	gboolean _tmp5_;
	GeeBidirMapIterator* _tmp6_;
	gboolean _tmp7_;
	GeeBidirMapIterator* _tmp8_;
	gboolean _tmp9_;
	gchar** _tmp10_ = NULL;
	gint _tmp11_;
	gchar** _tmp12_ = NULL;
	gint _tmp13_;
	gint i = 0;
	GeeBidirSortedMap* _tmp14_;
	GeeBidirMapIterator* _tmp15_;
	gint _tmp31_;
	gchar** _tmp32_;
	gint _tmp32__length1;
	gint _tmp47_;
	gchar** _tmp48_;
	gint _tmp48__length1;
	gint _tmp67_;
	gchar** _tmp68_;
	gint _tmp68__length1;
	GeeBidirIterator* keys_iter = NULL;
	GeeBidirSortedMap* _tmp69_;
	GeeSortedSet* _tmp70_;
	GeeSortedSet* _tmp71_;
	GeeBidirSortedSet* _tmp72_;
	GeeBidirSortedSet* _tmp73_;
	GeeBidirIterator* _tmp74_;
	GeeBidirIterator* _tmp75_;
	GeeBidirIterator* entries_iter = NULL;
	GeeBidirSortedMap* _tmp76_;
	GeeSortedSet* _tmp77_;
	GeeSortedSet* _tmp78_;
	GeeBidirSortedSet* _tmp79_;
	GeeBidirSortedSet* _tmp80_;
	GeeBidirIterator* _tmp81_;
	GeeBidirIterator* _tmp82_;
	GeeBidirMapIterator* map_iter = NULL;
	GeeBidirSortedMap* _tmp83_;
	GeeBidirMapIterator* _tmp84_;
	GeeSortedMapTestsSubMapTestsType _tmp85_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->submap;
	_tmp1_ = gee_bidir_sorted_map_bidir_map_iterator (_tmp0_);
	_map_iter = _tmp1_;
	_tmp2_ = _map_iter;
	_tmp3_ = gee_map_iterator_has_next ((GeeMapIterator*) _tmp2_);
	_vala_assert (!_tmp3_, "!_map_iter.has_next ()");
	_tmp4_ = _map_iter;
	_tmp5_ = gee_map_iterator_next ((GeeMapIterator*) _tmp4_);
	_vala_assert (!_tmp5_, "!_map_iter.next ()");
	_tmp6_ = _map_iter;
	_tmp7_ = gee_bidir_map_iterator_has_previous (_tmp6_);
	_vala_assert (!_tmp7_, "!_map_iter.has_previous ()");
	_tmp8_ = _map_iter;
	_tmp9_ = gee_bidir_map_iterator_previous (_tmp8_);
	_vala_assert (!_tmp9_, "!_map_iter.previous ()");
	bidir_sorted_map_tests_bidir_sub_map_tests_set_default_values (self, &_tmp10_, &_tmp11_, &_tmp12_, &_tmp13_);
	contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
	contains = _tmp10_;
	contains_length1 = _tmp11_;
	_contains_size_ = contains_length1;
	not_contains = (_vala_array_free (not_contains, not_contains_length1, (GDestroyNotify) g_free), NULL);
	not_contains = _tmp12_;
	not_contains_length1 = _tmp13_;
	_not_contains_size_ = not_contains_length1;
	i = 0;
	_tmp14_ = self->priv->submap;
	_tmp15_ = gee_bidir_sorted_map_bidir_map_iterator (_tmp14_);
	_g_object_unref0 (_map_iter);
	_map_iter = _tmp15_;
	while (TRUE) {
		GeeBidirMapIterator* _tmp16_;
		gboolean _tmp17_;
		GeeBidirMapIterator* _tmp18_;
		gpointer _tmp19_;
		gchar* _tmp20_;
		gchar** _tmp21_;
		gint _tmp21__length1;
		gint _tmp22_;
		const gchar* _tmp23_;
		GeeBidirMapIterator* _tmp24_;
		gpointer _tmp25_;
		gchar* _tmp26_;
		gchar** _tmp27_;
		gint _tmp27__length1;
		gint _tmp28_;
		const gchar* _tmp29_;
		gint _tmp30_;
		_tmp16_ = _map_iter;
		_tmp17_ = gee_map_iterator_next ((GeeMapIterator*) _tmp16_);
		if (!_tmp17_) {
			break;
		}
		_tmp18_ = _map_iter;
		_tmp19_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp18_);
		_tmp20_ = (gchar*) _tmp19_;
		_tmp21_ = contains;
		_tmp21__length1 = contains_length1;
		_tmp22_ = i;
		_tmp23_ = _tmp21_[_tmp22_];
		_vala_assert (g_strcmp0 (_tmp20_, _tmp23_) == 0, "_map_iter.get_key () == contains[i]");
		_g_free0 (_tmp20_);
		_tmp24_ = _map_iter;
		_tmp25_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp24_);
		_tmp26_ = (gchar*) _tmp25_;
		_tmp27_ = contains;
		_tmp27__length1 = contains_length1;
		_tmp28_ = i;
		_tmp29_ = _tmp27_[_tmp28_];
		_vala_assert (g_strcmp0 (_tmp26_, _tmp29_) == 0, "_map_iter.get_value () == contains[i]");
		_g_free0 (_tmp26_);
		_tmp30_ = i;
		i = _tmp30_ + 1;
	}
	_tmp31_ = i;
	_tmp32_ = contains;
	_tmp32__length1 = contains_length1;
	_vala_assert (_tmp31_ == _tmp32__length1, "i == contains.length");
	i = 0;
	{
		GeeIterator* _k_it = NULL;
		GeeBidirSortedMap* _tmp33_;
		GeeSet* _tmp34_;
		GeeSet* _tmp35_;
		GeeSet* _tmp36_;
		GeeIterator* _tmp37_;
		GeeIterator* _tmp38_;
		_tmp33_ = self->priv->submap;
		_tmp34_ = gee_map_get_keys ((GeeMap*) _tmp33_);
		_tmp35_ = _tmp34_;
		_tmp36_ = _tmp35_;
		_tmp37_ = gee_iterable_iterator ((GeeIterable*) _tmp36_);
		_tmp38_ = _tmp37_;
		_g_object_unref0 (_tmp36_);
		_k_it = _tmp38_;
		while (TRUE) {
			GeeIterator* _tmp39_;
			gboolean _tmp40_;
			gchar* k = NULL;
			GeeIterator* _tmp41_;
			gpointer _tmp42_;
			const gchar* _tmp43_;
			gchar** _tmp44_;
			gint _tmp44__length1;
			gint _tmp45_;
			const gchar* _tmp46_;
			_tmp39_ = _k_it;
			_tmp40_ = gee_iterator_next (_tmp39_);
			if (!_tmp40_) {
				break;
			}
			_tmp41_ = _k_it;
			_tmp42_ = gee_iterator_get (_tmp41_);
			k = (gchar*) _tmp42_;
			_tmp43_ = k;
			_tmp44_ = contains;
			_tmp44__length1 = contains_length1;
			_tmp45_ = i;
			i = _tmp45_ + 1;
			_tmp46_ = _tmp44_[_tmp45_];
			_vala_assert (g_strcmp0 (_tmp43_, _tmp46_) == 0, "k == contains[i++]");
			_g_free0 (k);
		}
		_g_object_unref0 (_k_it);
	}
	_tmp47_ = i;
	_tmp48_ = contains;
	_tmp48__length1 = contains_length1;
	_vala_assert (_tmp47_ == _tmp48__length1, "i == contains.length");
	i = 0;
	{
		GeeIterator* _e_it = NULL;
		GeeBidirSortedMap* _tmp49_;
		GeeSet* _tmp50_;
		GeeSet* _tmp51_;
		GeeSet* _tmp52_;
		GeeIterator* _tmp53_;
		GeeIterator* _tmp54_;
		_tmp49_ = self->priv->submap;
		_tmp50_ = gee_map_get_entries ((GeeMap*) _tmp49_);
		_tmp51_ = _tmp50_;
		_tmp52_ = _tmp51_;
		_tmp53_ = gee_iterable_iterator ((GeeIterable*) _tmp52_);
		_tmp54_ = _tmp53_;
		_g_object_unref0 (_tmp52_);
		_e_it = _tmp54_;
		while (TRUE) {
			GeeIterator* _tmp55_;
			gboolean _tmp56_;
			GeeMapEntry* e = NULL;
			GeeIterator* _tmp57_;
			gpointer _tmp58_;
			GeeMapEntry* _tmp59_;
			gchar** _tmp60_;
			gint _tmp60__length1;
			gint _tmp61_;
			const gchar* _tmp62_;
			gchar** _tmp63_;
			gint _tmp63__length1;
			gint _tmp64_;
			const gchar* _tmp65_;
			gint _tmp66_;
			_tmp55_ = _e_it;
			_tmp56_ = gee_iterator_next (_tmp55_);
			if (!_tmp56_) {
				break;
			}
			_tmp57_ = _e_it;
			_tmp58_ = gee_iterator_get (_tmp57_);
			e = (GeeMapEntry*) _tmp58_;
			_tmp59_ = e;
			_tmp60_ = contains;
			_tmp60__length1 = contains_length1;
			_tmp61_ = i;
			_tmp62_ = _tmp60_[_tmp61_];
			_tmp63_ = contains;
			_tmp63__length1 = contains_length1;
			_tmp64_ = i;
			_tmp65_ = _tmp63_[_tmp64_];
			map_tests_assert_entry (_tmp59_, _tmp62_, _tmp65_);
			_tmp66_ = i;
			i = _tmp66_ + 1;
			_g_object_unref0 (e);
		}
		_g_object_unref0 (_e_it);
	}
	_tmp67_ = i;
	_tmp68_ = contains;
	_tmp68__length1 = contains_length1;
	_vala_assert (_tmp67_ == _tmp68__length1, "i == contains.length");
	_tmp69_ = self->priv->submap;
	_tmp70_ = gee_sorted_map_get_ascending_keys ((GeeSortedMap*) _tmp69_);
	_tmp71_ = _tmp70_;
	_tmp72_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp71_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp71_) : NULL;
	if (_tmp72_ == NULL) {
		_g_object_unref0 (_tmp71_);
	}
	_tmp73_ = _tmp72_;
	_tmp74_ = gee_bidir_sorted_set_bidir_iterator (_tmp73_);
	_tmp75_ = _tmp74_;
	_g_object_unref0 (_tmp73_);
	keys_iter = _tmp75_;
	_tmp76_ = self->priv->submap;
	_tmp77_ = gee_sorted_map_get_ascending_entries ((GeeSortedMap*) _tmp76_);
	_tmp78_ = _tmp77_;
	_tmp79_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp78_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp78_) : NULL;
	if (_tmp79_ == NULL) {
		_g_object_unref0 (_tmp78_);
	}
	_tmp80_ = _tmp79_;
	_tmp81_ = gee_bidir_sorted_set_bidir_iterator (_tmp80_);
	_tmp82_ = _tmp81_;
	_g_object_unref0 (_tmp80_);
	entries_iter = _tmp82_;
	_tmp83_ = self->priv->submap;
	_tmp84_ = gee_bidir_sorted_map_bidir_map_iterator (_tmp83_);
	map_iter = _tmp84_;
	_tmp85_ = self->priv->type;
	if (_tmp85_ != GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_EMPTY) {
		GeeBidirMapIterator* _tmp86_;
		gboolean _tmp87_;
		GeeBidirMapIterator* _tmp88_;
		gpointer _tmp89_;
		gchar* _tmp90_;
		gchar** _tmp91_;
		gint _tmp91__length1;
		gchar** _tmp92_;
		gint _tmp92__length1;
		const gchar* _tmp93_;
		GeeBidirMapIterator* _tmp94_;
		gpointer _tmp95_;
		gchar* _tmp96_;
		gchar** _tmp97_;
		gint _tmp97__length1;
		gchar** _tmp98_;
		gint _tmp98__length1;
		const gchar* _tmp99_;
		GeeBidirSortedMap* _tmp100_;
		GeeBidirMapIterator* _tmp101_;
		GeeBidirMapIterator* _tmp102_;
		gboolean _tmp103_;
		GeeBidirMapIterator* _tmp104_;
		gpointer _tmp105_;
		gchar* _tmp106_;
		gchar** _tmp107_;
		gint _tmp107__length1;
		const gchar* _tmp108_;
		GeeBidirMapIterator* _tmp109_;
		gpointer _tmp110_;
		gchar* _tmp111_;
		gchar** _tmp112_;
		gint _tmp112__length1;
		const gchar* _tmp113_;
		GeeBidirMapIterator* _tmp114_;
		gboolean _tmp115_;
		GeeBidirMapIterator* _tmp116_;
		gboolean _tmp117_;
		GeeBidirMapIterator* _tmp118_;
		gpointer _tmp119_;
		gchar* _tmp120_;
		gchar** _tmp121_;
		gint _tmp121__length1;
		const gchar* _tmp122_;
		GeeBidirMapIterator* _tmp123_;
		gpointer _tmp124_;
		gchar* _tmp125_;
		gchar** _tmp126_;
		gint _tmp126__length1;
		const gchar* _tmp127_;
		GeeBidirMapIterator* _tmp128_;
		gboolean _tmp129_;
		GeeBidirMapIterator* _tmp130_;
		GeeBidirMapIterator* _tmp131_;
		gboolean _tmp132_;
		GeeSortedMapTestsSubMapTestsType _tmp133_;
		GeeBidirMapIterator* _tmp138_;
		gboolean _tmp139_;
		GeeBidirMapIterator* _tmp140_;
		gpointer _tmp141_;
		gchar* _tmp142_;
		gchar** _tmp143_;
		gint _tmp143__length1;
		const gchar* _tmp144_;
		GeeBidirMapIterator* _tmp145_;
		gpointer _tmp146_;
		gchar* _tmp147_;
		gchar** _tmp148_;
		gint _tmp148__length1;
		const gchar* _tmp149_;
		GeeBidirSortedMap* _tmp150_;
		gchar** _tmp151_ = NULL;
		gint _tmp152_;
		gchar** _tmp153_ = NULL;
		gint _tmp154_;
		GeeBidirIterator* _tmp155_;
		gboolean _tmp156_;
		GeeBidirIterator* _tmp157_;
		gpointer _tmp158_;
		gchar* _tmp159_;
		gchar** _tmp160_;
		gint _tmp160__length1;
		gchar** _tmp161_;
		gint _tmp161__length1;
		const gchar* _tmp162_;
		GeeBidirIterator* _tmp163_;
		gboolean _tmp164_;
		GeeBidirIterator* _tmp165_;
		gpointer _tmp166_;
		gchar* _tmp167_;
		gchar** _tmp168_;
		gint _tmp168__length1;
		const gchar* _tmp169_;
		GeeBidirIterator* _tmp170_;
		gboolean _tmp171_;
		GeeBidirIterator* _tmp172_;
		gboolean _tmp173_;
		GeeBidirIterator* _tmp174_;
		gpointer _tmp175_;
		gchar* _tmp176_;
		gchar** _tmp177_;
		gint _tmp177__length1;
		const gchar* _tmp178_;
		GeeBidirIterator* _tmp179_;
		gboolean _tmp180_;
		gboolean _tmp181_;
		GeeBidirIterator* _tmp183_;
		gboolean _tmp184_;
		GeeSortedMapTestsSubMapTestsType _tmp185_;
		GeeBidirIterator* _tmp190_;
		gboolean _tmp191_;
		GeeBidirIterator* _tmp192_;
		gpointer _tmp193_;
		gchar* _tmp194_;
		gchar** _tmp195_;
		gint _tmp195__length1;
		const gchar* _tmp196_;
		GeeBidirSortedMap* _tmp197_;
		gchar** _tmp198_ = NULL;
		gint _tmp199_;
		gchar** _tmp200_ = NULL;
		gint _tmp201_;
		GeeBidirIterator* _tmp202_;
		gboolean _tmp203_;
		GeeBidirIterator* _tmp204_;
		gpointer _tmp205_;
		GeeMapEntry* _tmp206_;
		gchar** _tmp207_;
		gint _tmp207__length1;
		gchar** _tmp208_;
		gint _tmp208__length1;
		const gchar* _tmp209_;
		gchar** _tmp210_;
		gint _tmp210__length1;
		gchar** _tmp211_;
		gint _tmp211__length1;
		const gchar* _tmp212_;
		GeeBidirIterator* _tmp213_;
		gboolean _tmp214_;
		GeeBidirIterator* _tmp215_;
		gpointer _tmp216_;
		GeeMapEntry* _tmp217_;
		gchar** _tmp218_;
		gint _tmp218__length1;
		const gchar* _tmp219_;
		gchar** _tmp220_;
		gint _tmp220__length1;
		const gchar* _tmp221_;
		GeeBidirIterator* _tmp222_;
		gboolean _tmp223_;
		GeeBidirIterator* _tmp224_;
		gboolean _tmp225_;
		GeeBidirIterator* _tmp226_;
		gpointer _tmp227_;
		GeeMapEntry* _tmp228_;
		gchar** _tmp229_;
		gint _tmp229__length1;
		const gchar* _tmp230_;
		gchar** _tmp231_;
		gint _tmp231__length1;
		const gchar* _tmp232_;
		GeeBidirIterator* _tmp233_;
		gboolean _tmp234_;
		GeeBidirIterator* _tmp235_;
		GeeBidirIterator* _tmp236_;
		gboolean _tmp237_;
		GeeSortedMapTestsSubMapTestsType _tmp238_;
		GeeBidirIterator* _tmp243_;
		gboolean _tmp244_;
		GeeBidirIterator* _tmp245_;
		gpointer _tmp246_;
		GeeMapEntry* _tmp247_;
		gchar** _tmp248_;
		gint _tmp248__length1;
		const gchar* _tmp249_;
		gchar** _tmp250_;
		gint _tmp250__length1;
		const gchar* _tmp251_;
		_tmp86_ = map_iter;
		_tmp87_ = gee_bidir_map_iterator_last (_tmp86_);
		_vala_assert (_tmp87_, "map_iter.last ()");
		_tmp88_ = map_iter;
		_tmp89_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp88_);
		_tmp90_ = (gchar*) _tmp89_;
		_tmp91_ = contains;
		_tmp91__length1 = contains_length1;
		_tmp92_ = contains;
		_tmp92__length1 = contains_length1;
		_tmp93_ = _tmp91_[_tmp92__length1 - 1];
		_vala_assert (g_strcmp0 (_tmp90_, _tmp93_) == 0, "map_iter.get_key () == contains[contains.length - 1]");
		_g_free0 (_tmp90_);
		_tmp94_ = map_iter;
		_tmp95_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp94_);
		_tmp96_ = (gchar*) _tmp95_;
		_tmp97_ = contains;
		_tmp97__length1 = contains_length1;
		_tmp98_ = contains;
		_tmp98__length1 = contains_length1;
		_tmp99_ = _tmp97_[_tmp98__length1 - 1];
		_vala_assert (g_strcmp0 (_tmp96_, _tmp99_) == 0, "map_iter.get_value () == contains[contains.length - 1]");
		_g_free0 (_tmp96_);
		_tmp100_ = self->priv->submap;
		_tmp101_ = gee_bidir_sorted_map_bidir_map_iterator (_tmp100_);
		_g_object_unref0 (map_iter);
		map_iter = _tmp101_;
		_tmp102_ = map_iter;
		_tmp103_ = gee_map_iterator_next ((GeeMapIterator*) _tmp102_);
		_vala_assert (_tmp103_, "map_iter.next ()");
		_tmp104_ = map_iter;
		_tmp105_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp104_);
		_tmp106_ = (gchar*) _tmp105_;
		_tmp107_ = contains;
		_tmp107__length1 = contains_length1;
		_tmp108_ = _tmp107_[0];
		_vala_assert (g_strcmp0 (_tmp106_, _tmp108_) == 0, "map_iter.get_key () == contains[0]");
		_g_free0 (_tmp106_);
		_tmp109_ = map_iter;
		_tmp110_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp109_);
		_tmp111_ = (gchar*) _tmp110_;
		_tmp112_ = contains;
		_tmp112__length1 = contains_length1;
		_tmp113_ = _tmp112_[0];
		_vala_assert (g_strcmp0 (_tmp111_, _tmp113_) == 0, "map_iter.get_value () == contains[0]");
		_g_free0 (_tmp111_);
		_tmp114_ = map_iter;
		_tmp115_ = gee_map_iterator_has_next ((GeeMapIterator*) _tmp114_);
		_vala_assert (_tmp115_, "map_iter.has_next ()");
		_tmp116_ = map_iter;
		_tmp117_ = gee_map_iterator_next ((GeeMapIterator*) _tmp116_);
		_vala_assert (_tmp117_, "map_iter.next ()");
		_tmp118_ = map_iter;
		_tmp119_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp118_);
		_tmp120_ = (gchar*) _tmp119_;
		_tmp121_ = contains;
		_tmp121__length1 = contains_length1;
		_tmp122_ = _tmp121_[1];
		_vala_assert (g_strcmp0 (_tmp120_, _tmp122_) == 0, "map_iter.get_key () == contains[1]");
		_g_free0 (_tmp120_);
		_tmp123_ = map_iter;
		_tmp124_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp123_);
		_tmp125_ = (gchar*) _tmp124_;
		_tmp126_ = contains;
		_tmp126__length1 = contains_length1;
		_tmp127_ = _tmp126_[1];
		_vala_assert (g_strcmp0 (_tmp125_, _tmp127_) == 0, "map_iter.get_value () == contains[1]");
		_g_free0 (_tmp125_);
		_tmp128_ = map_iter;
		_tmp129_ = gee_bidir_map_iterator_has_previous (_tmp128_);
		_vala_assert (_tmp129_, "map_iter.has_previous ()");
		_tmp130_ = map_iter;
		gee_map_iterator_unset ((GeeMapIterator*) _tmp130_);
		_tmp131_ = map_iter;
		_tmp132_ = gee_bidir_map_iterator_has_previous (_tmp131_);
		_vala_assert (_tmp132_, "map_iter.has_previous ()");
		_tmp133_ = self->priv->type;
		if (_tmp133_ != GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD) {
			GeeBidirMapIterator* _tmp134_;
			gboolean _tmp135_;
			_tmp134_ = map_iter;
			_tmp135_ = gee_map_iterator_has_next ((GeeMapIterator*) _tmp134_);
			_vala_assert (_tmp135_, "map_iter.has_next ()");
		} else {
			GeeBidirMapIterator* _tmp136_;
			gboolean _tmp137_;
			_tmp136_ = map_iter;
			_tmp137_ = gee_map_iterator_has_next ((GeeMapIterator*) _tmp136_);
			_vala_assert (!_tmp137_, "!map_iter.has_next ()");
		}
		_tmp138_ = map_iter;
		_tmp139_ = gee_bidir_map_iterator_previous (_tmp138_);
		_vala_assert (_tmp139_, "map_iter.previous ()");
		_tmp140_ = map_iter;
		_tmp141_ = gee_map_iterator_get_key ((GeeMapIterator*) _tmp140_);
		_tmp142_ = (gchar*) _tmp141_;
		_tmp143_ = contains;
		_tmp143__length1 = contains_length1;
		_tmp144_ = _tmp143_[0];
		_vala_assert (g_strcmp0 (_tmp142_, _tmp144_) == 0, "map_iter.get_key () == contains[0]");
		_g_free0 (_tmp142_);
		_tmp145_ = map_iter;
		_tmp146_ = gee_map_iterator_get_value ((GeeMapIterator*) _tmp145_);
		_tmp147_ = (gchar*) _tmp146_;
		_tmp148_ = contains;
		_tmp148__length1 = contains_length1;
		_tmp149_ = _tmp148_[0];
		_vala_assert (g_strcmp0 (_tmp147_, _tmp149_) == 0, "map_iter.get_value () == contains[0]");
		_g_free0 (_tmp147_);
		_tmp150_ = self->priv->master;
		gee_map_clear ((GeeMap*) _tmp150_);
		bidir_sorted_map_tests_bidir_sub_map_tests_set_default_values (self, &_tmp151_, &_tmp152_, &_tmp153_, &_tmp154_);
		contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
		contains = _tmp151_;
		contains_length1 = _tmp152_;
		_contains_size_ = contains_length1;
		not_contains = (_vala_array_free (not_contains, not_contains_length1, (GDestroyNotify) g_free), NULL);
		not_contains = _tmp153_;
		not_contains_length1 = _tmp154_;
		_not_contains_size_ = not_contains_length1;
		_tmp155_ = keys_iter;
		_tmp156_ = gee_bidir_iterator_last (_tmp155_);
		_vala_assert (_tmp156_, "keys_iter.last ()");
		_tmp157_ = keys_iter;
		_tmp158_ = gee_iterator_get ((GeeIterator*) _tmp157_);
		_tmp159_ = (gchar*) _tmp158_;
		_tmp160_ = contains;
		_tmp160__length1 = contains_length1;
		_tmp161_ = contains;
		_tmp161__length1 = contains_length1;
		_tmp162_ = _tmp160_[_tmp161__length1 - 1];
		_vala_assert (g_strcmp0 (_tmp159_, _tmp162_) == 0, "keys_iter.get () == contains[contains.length - 1]");
		_g_free0 (_tmp159_);
		_tmp163_ = keys_iter;
		_tmp164_ = gee_bidir_iterator_first (_tmp163_);
		_vala_assert (_tmp164_, "keys_iter.first ()");
		_tmp165_ = keys_iter;
		_tmp166_ = gee_iterator_get ((GeeIterator*) _tmp165_);
		_tmp167_ = (gchar*) _tmp166_;
		_tmp168_ = contains;
		_tmp168__length1 = contains_length1;
		_tmp169_ = _tmp168_[0];
		_vala_assert (g_strcmp0 (_tmp167_, _tmp169_) == 0, "keys_iter.get () == contains[0]");
		_g_free0 (_tmp167_);
		_tmp170_ = keys_iter;
		_tmp171_ = gee_iterator_has_next ((GeeIterator*) _tmp170_);
		_vala_assert (_tmp171_, "keys_iter.has_next ()");
		_tmp172_ = keys_iter;
		_tmp173_ = gee_iterator_next ((GeeIterator*) _tmp172_);
		_vala_assert (_tmp173_, "keys_iter.next ()");
		_tmp174_ = keys_iter;
		_tmp175_ = gee_iterator_get ((GeeIterator*) _tmp174_);
		_tmp176_ = (gchar*) _tmp175_;
		_tmp177_ = contains;
		_tmp177__length1 = contains_length1;
		_tmp178_ = _tmp177_[1];
		_vala_assert (g_strcmp0 (_tmp176_, _tmp178_) == 0, "keys_iter.get () == contains[1]");
		_g_free0 (_tmp176_);
		_tmp179_ = keys_iter;
		_tmp180_ = gee_bidir_iterator_has_previous (_tmp179_);
		_vala_assert (_tmp180_, "keys_iter.has_previous ()");
		_tmp181_ = g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR);
		if (_tmp181_) {
			GeeBidirIterator* _tmp182_;
			_tmp182_ = keys_iter;
			gee_iterator_remove ((GeeIterator*) _tmp182_);
			exit (0);
		}
		_tmp183_ = keys_iter;
		_tmp184_ = gee_bidir_iterator_has_previous (_tmp183_);
		_vala_assert (_tmp184_, "keys_iter.has_previous ()");
		_tmp185_ = self->priv->type;
		if (_tmp185_ != GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD) {
			GeeBidirIterator* _tmp186_;
			gboolean _tmp187_;
			_tmp186_ = keys_iter;
			_tmp187_ = gee_iterator_has_next ((GeeIterator*) _tmp186_);
			_vala_assert (_tmp187_, "keys_iter.has_next ()");
		} else {
			GeeBidirIterator* _tmp188_;
			gboolean _tmp189_;
			_tmp188_ = keys_iter;
			_tmp189_ = gee_iterator_has_next ((GeeIterator*) _tmp188_);
			_vala_assert (!_tmp189_, "!keys_iter.has_next ()");
		}
		_tmp190_ = keys_iter;
		_tmp191_ = gee_bidir_iterator_previous (_tmp190_);
		_vala_assert (_tmp191_, "keys_iter.previous ()");
		_tmp192_ = keys_iter;
		_tmp193_ = gee_iterator_get ((GeeIterator*) _tmp192_);
		_tmp194_ = (gchar*) _tmp193_;
		_tmp195_ = contains;
		_tmp195__length1 = contains_length1;
		_tmp196_ = _tmp195_[0];
		_vala_assert (g_strcmp0 (_tmp194_, _tmp196_) == 0, "keys_iter.get () == contains[0]");
		_g_free0 (_tmp194_);
		_tmp197_ = self->priv->master;
		gee_map_clear ((GeeMap*) _tmp197_);
		bidir_sorted_map_tests_bidir_sub_map_tests_set_default_values (self, &_tmp198_, &_tmp199_, &_tmp200_, &_tmp201_);
		contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
		contains = _tmp198_;
		contains_length1 = _tmp199_;
		_contains_size_ = contains_length1;
		not_contains = (_vala_array_free (not_contains, not_contains_length1, (GDestroyNotify) g_free), NULL);
		not_contains = _tmp200_;
		not_contains_length1 = _tmp201_;
		_not_contains_size_ = not_contains_length1;
		_tmp202_ = entries_iter;
		_tmp203_ = gee_bidir_iterator_last (_tmp202_);
		_vala_assert (_tmp203_, "entries_iter.last ()");
		_tmp204_ = entries_iter;
		_tmp205_ = gee_iterator_get ((GeeIterator*) _tmp204_);
		_tmp206_ = (GeeMapEntry*) _tmp205_;
		_tmp207_ = contains;
		_tmp207__length1 = contains_length1;
		_tmp208_ = contains;
		_tmp208__length1 = contains_length1;
		_tmp209_ = _tmp207_[_tmp208__length1 - 1];
		_tmp210_ = contains;
		_tmp210__length1 = contains_length1;
		_tmp211_ = contains;
		_tmp211__length1 = contains_length1;
		_tmp212_ = _tmp210_[_tmp211__length1 - 1];
		map_tests_assert_entry (_tmp206_, _tmp209_, _tmp212_);
		_g_object_unref0 (_tmp206_);
		_tmp213_ = entries_iter;
		_tmp214_ = gee_bidir_iterator_first (_tmp213_);
		_vala_assert (_tmp214_, "entries_iter.first ()");
		_tmp215_ = entries_iter;
		_tmp216_ = gee_iterator_get ((GeeIterator*) _tmp215_);
		_tmp217_ = (GeeMapEntry*) _tmp216_;
		_tmp218_ = contains;
		_tmp218__length1 = contains_length1;
		_tmp219_ = _tmp218_[0];
		_tmp220_ = contains;
		_tmp220__length1 = contains_length1;
		_tmp221_ = _tmp220_[0];
		map_tests_assert_entry (_tmp217_, _tmp219_, _tmp221_);
		_g_object_unref0 (_tmp217_);
		_tmp222_ = entries_iter;
		_tmp223_ = gee_iterator_has_next ((GeeIterator*) _tmp222_);
		_vala_assert (_tmp223_, "entries_iter.has_next ()");
		_tmp224_ = entries_iter;
		_tmp225_ = gee_iterator_next ((GeeIterator*) _tmp224_);
		_vala_assert (_tmp225_, "entries_iter.next ()");
		_tmp226_ = entries_iter;
		_tmp227_ = gee_iterator_get ((GeeIterator*) _tmp226_);
		_tmp228_ = (GeeMapEntry*) _tmp227_;
		_tmp229_ = contains;
		_tmp229__length1 = contains_length1;
		_tmp230_ = _tmp229_[1];
		_tmp231_ = contains;
		_tmp231__length1 = contains_length1;
		_tmp232_ = _tmp231_[1];
		map_tests_assert_entry (_tmp228_, _tmp230_, _tmp232_);
		_g_object_unref0 (_tmp228_);
		_tmp233_ = entries_iter;
		_tmp234_ = gee_bidir_iterator_has_previous (_tmp233_);
		_vala_assert (_tmp234_, "entries_iter.has_previous ()");
		_tmp235_ = entries_iter;
		gee_iterator_remove ((GeeIterator*) _tmp235_);
		_tmp236_ = entries_iter;
		_tmp237_ = gee_bidir_iterator_has_previous (_tmp236_);
		_vala_assert (_tmp237_, "entries_iter.has_previous ()");
		_tmp238_ = self->priv->type;
		if (_tmp238_ != GEE_SORTED_MAP_TESTS_SUB_MAP_TESTS_TYPE_HEAD) {
			GeeBidirIterator* _tmp239_;
			gboolean _tmp240_;
			_tmp239_ = entries_iter;
			_tmp240_ = gee_iterator_has_next ((GeeIterator*) _tmp239_);
			_vala_assert (_tmp240_, "entries_iter.has_next ()");
		} else {
			GeeBidirIterator* _tmp241_;
			gboolean _tmp242_;
			_tmp241_ = entries_iter;
			_tmp242_ = gee_iterator_has_next ((GeeIterator*) _tmp241_);
			_vala_assert (!_tmp242_, "!entries_iter.has_next ()");
		}
		_tmp243_ = entries_iter;
		_tmp244_ = gee_bidir_iterator_previous (_tmp243_);
		_vala_assert (_tmp244_, "entries_iter.previous ()");
		_tmp245_ = entries_iter;
		_tmp246_ = gee_iterator_get ((GeeIterator*) _tmp245_);
		_tmp247_ = (GeeMapEntry*) _tmp246_;
		_tmp248_ = contains;
		_tmp248__length1 = contains_length1;
		_tmp249_ = _tmp248_[0];
		_tmp250_ = contains;
		_tmp250__length1 = contains_length1;
		_tmp251_ = _tmp250_[0];
		map_tests_assert_entry (_tmp247_, _tmp249_, _tmp251_);
		_g_object_unref0 (_tmp247_);
	} else {
		GeeBidirIterator* _tmp252_;
		gboolean _tmp253_;
		GeeBidirIterator* _tmp254_;
		gboolean _tmp255_;
		gboolean _tmp256_;
		GeeBidirIterator* _tmp258_;
		gboolean _tmp259_;
		gboolean _tmp260_;
		_tmp252_ = keys_iter;
		_tmp253_ = gee_bidir_iterator_first (_tmp252_);
		_vala_assert (!_tmp253_, "!keys_iter.first ()");
		_tmp254_ = keys_iter;
		_tmp255_ = gee_bidir_iterator_last (_tmp254_);
		_vala_assert (!_tmp255_, "!keys_iter.last ()");
		_tmp256_ = g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR);
		if (_tmp256_) {
			GeeBidirIterator* _tmp257_;
			_tmp257_ = keys_iter;
			gee_iterator_remove ((GeeIterator*) _tmp257_);
			exit (0);
		}
		g_test_trap_assert_failed ();
		_tmp258_ = entries_iter;
		_tmp259_ = gee_bidir_iterator_first (_tmp258_);
		_vala_assert (!_tmp259_, "!entries_iter.first ()");
		_tmp260_ = g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR);
		if (_tmp260_) {
			GeeBidirIterator* _tmp261_;
			_tmp261_ = entries_iter;
			gee_iterator_remove ((GeeIterator*) _tmp261_);
			exit (0);
		}
		g_test_trap_assert_failed ();
	}
	_g_object_unref0 (map_iter);
	_g_object_unref0 (entries_iter);
	_g_object_unref0 (keys_iter);
	_g_object_unref0 (_map_iter);
	not_contains = (_vala_array_free (not_contains, not_contains_length1, (GDestroyNotify) g_free), NULL);
	contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
}


static void bidir_sorted_map_tests_bidir_sub_map_tests_class_init (BidirSortedMapTestsBidirSubMapTestsClass * klass) {
	bidir_sorted_map_tests_bidir_sub_map_tests_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BidirSortedMapTestsBidirSubMapTestsPrivate));
	((GeeTestCaseClass *) klass)->set_up = (void (*) (GeeTestCase *)) bidir_sorted_map_tests_bidir_sub_map_tests_real_set_up;
	((GeeTestCaseClass *) klass)->tear_down = (void (*) (GeeTestCase *)) bidir_sorted_map_tests_bidir_sub_map_tests_real_tear_down;
	G_OBJECT_CLASS (klass)->finalize = bidir_sorted_map_tests_bidir_sub_map_tests_finalize;
}


static void bidir_sorted_map_tests_bidir_sub_map_tests_instance_init (BidirSortedMapTestsBidirSubMapTests * self) {
	self->priv = BIDIR_SORTED_MAP_TESTS_BIDIR_SUB_MAP_TESTS_GET_PRIVATE (self);
}


static void bidir_sorted_map_tests_bidir_sub_map_tests_finalize (GObject * obj) {
	BidirSortedMapTestsBidirSubMapTests * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BIDIR_SORTED_MAP_TESTS_TYPE_BIDIR_SUB_MAP_TESTS, BidirSortedMapTestsBidirSubMapTests);
	_g_object_unref0 (self->priv->master);
	_g_object_unref0 (self->priv->submap);
	_g_object_unref0 (self->priv->test);
	G_OBJECT_CLASS (bidir_sorted_map_tests_bidir_sub_map_tests_parent_class)->finalize (obj);
}


GType bidir_sorted_map_tests_bidir_sub_map_tests_get_type (void) {
	static volatile gsize bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile = 0;
	if (g_once_init_enter (&bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BidirSortedMapTestsBidirSubMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_map_tests_bidir_sub_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedMapTestsBidirSubMapTests), 0, (GInstanceInitFunc) bidir_sorted_map_tests_bidir_sub_map_tests_instance_init, NULL };
		GType bidir_sorted_map_tests_bidir_sub_map_tests_type_id;
		bidir_sorted_map_tests_bidir_sub_map_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "BidirSortedMapTestsBidirSubMapTests", &g_define_type_info, 0);
		g_once_init_leave (&bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile, bidir_sorted_map_tests_bidir_sub_map_tests_type_id);
	}
	return bidir_sorted_map_tests_bidir_sub_map_tests_type_id__volatile;
}


static void bidir_sorted_map_tests_class_init (BidirSortedMapTestsClass * klass) {
	bidir_sorted_map_tests_parent_class = g_type_class_peek_parent (klass);
}


static void bidir_sorted_map_tests_instance_init (BidirSortedMapTests * self) {
}


GType bidir_sorted_map_tests_get_type (void) {
	static volatile gsize bidir_sorted_map_tests_type_id__volatile = 0;
	if (g_once_init_enter (&bidir_sorted_map_tests_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BidirSortedMapTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_map_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedMapTests), 0, (GInstanceInitFunc) bidir_sorted_map_tests_instance_init, NULL };
		GType bidir_sorted_map_tests_type_id;
		bidir_sorted_map_tests_type_id = g_type_register_static (GEE_TYPE_SORTED_MAP_TESTS, "BidirSortedMapTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&bidir_sorted_map_tests_type_id__volatile, bidir_sorted_map_tests_type_id);
	}
	return bidir_sorted_map_tests_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



