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

/* testbidirsortedset.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_COLLECTION_TESTS (collection_tests_get_type ())
#define COLLECTION_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_COLLECTION_TESTS, CollectionTests))
#define COLLECTION_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_COLLECTION_TESTS, CollectionTestsClass))
#define IS_COLLECTION_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_COLLECTION_TESTS))
#define IS_COLLECTION_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_COLLECTION_TESTS))
#define COLLECTION_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_COLLECTION_TESTS, CollectionTestsClass))

typedef struct _CollectionTests CollectionTests;
typedef struct _CollectionTestsClass CollectionTestsClass;
typedef struct _CollectionTestsPrivate CollectionTestsPrivate;

#define TYPE_SET_TESTS (set_tests_get_type ())
#define SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SET_TESTS, SetTests))
#define SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SET_TESTS, SetTestsClass))
#define IS_SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SET_TESTS))
#define IS_SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SET_TESTS))
#define SET_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SET_TESTS, SetTestsClass))

typedef struct _SetTests SetTests;
typedef struct _SetTestsClass SetTestsClass;
typedef struct _SetTestsPrivate SetTestsPrivate;

#define TYPE_SORTED_SET_TESTS (sorted_set_tests_get_type ())
#define SORTED_SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_SORTED_SET_TESTS, SortedSetTests))
#define SORTED_SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_SORTED_SET_TESTS, SortedSetTestsClass))
#define IS_SORTED_SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_SORTED_SET_TESTS))
#define IS_SORTED_SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_SORTED_SET_TESTS))
#define SORTED_SET_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_SORTED_SET_TESTS, SortedSetTestsClass))

typedef struct _SortedSetTests SortedSetTests;
typedef struct _SortedSetTestsClass SortedSetTestsClass;
typedef struct _SortedSetTestsPrivate SortedSetTestsPrivate;

#define TYPE_BIDIR_SORTED_SET_TESTS (bidir_sorted_set_tests_get_type ())
#define BIDIR_SORTED_SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BIDIR_SORTED_SET_TESTS, BidirSortedSetTests))
#define BIDIR_SORTED_SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BIDIR_SORTED_SET_TESTS, BidirSortedSetTestsClass))
#define IS_BIDIR_SORTED_SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BIDIR_SORTED_SET_TESTS))
#define IS_BIDIR_SORTED_SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BIDIR_SORTED_SET_TESTS))
#define BIDIR_SORTED_SET_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BIDIR_SORTED_SET_TESTS, BidirSortedSetTestsClass))

typedef struct _BidirSortedSetTests BidirSortedSetTests;
typedef struct _BidirSortedSetTestsClass BidirSortedSetTestsClass;
typedef struct _BidirSortedSetTestsPrivate BidirSortedSetTestsPrivate;

#define SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TYPE (sorted_set_tests_sub_set_tests_type_get_type ())

#define BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS (bidir_sorted_set_tests_bidir_sub_set_tests_get_type ())
#define BIDIR_SORTED_SET_TESTS_BIDIR_SUB_SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS, BidirSortedSetTestsBidirSubSetTests))
#define BIDIR_SORTED_SET_TESTS_BIDIR_SUB_SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS, BidirSortedSetTestsBidirSubSetTestsClass))
#define BIDIR_SORTED_SET_TESTS_IS_BIDIR_SUB_SET_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS))
#define BIDIR_SORTED_SET_TESTS_IS_BIDIR_SUB_SET_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS))
#define BIDIR_SORTED_SET_TESTS_BIDIR_SUB_SET_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS, BidirSortedSetTestsBidirSubSetTestsClass))

typedef struct _BidirSortedSetTestsBidirSubSetTests BidirSortedSetTestsBidirSubSetTests;
typedef struct _BidirSortedSetTestsBidirSubSetTestsClass BidirSortedSetTestsBidirSubSetTestsClass;
#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 _BidirSortedSetTestsBidirSubSetTestsPrivate BidirSortedSetTestsBidirSubSetTestsPrivate;
#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 _CollectionTests {
	GeeTestCase parent_instance;
	CollectionTestsPrivate * priv;
	GeeCollection* test_collection;
};

struct _CollectionTestsClass {
	GeeTestCaseClass parent_class;
};

struct _SetTests {
	CollectionTests parent_instance;
	SetTestsPrivate * priv;
};

struct _SetTestsClass {
	CollectionTestsClass parent_class;
	void (*test_duplicates_are_ignored) (SetTests* self);
};

struct _SortedSetTests {
	SetTests parent_instance;
	SortedSetTestsPrivate * priv;
};

struct _SortedSetTestsClass {
	SetTestsClass parent_class;
};

struct _BidirSortedSetTests {
	SortedSetTests parent_instance;
	BidirSortedSetTestsPrivate * priv;
};

struct _BidirSortedSetTestsClass {
	SortedSetTestsClass parent_class;
};

typedef void (*GeeTestCaseTestMethod) (void* user_data);
typedef enum  {
	SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD,
	SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TAIL,
	SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_SUB,
	SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY
} SortedSetTestsSubSetTestsType;

struct _BidirSortedSetTestsBidirSubSetTests {
	GeeTestCase parent_instance;
	BidirSortedSetTestsBidirSubSetTestsPrivate * priv;
};

struct _BidirSortedSetTestsBidirSubSetTestsClass {
	GeeTestCaseClass parent_class;
};

struct _BidirSortedSetTestsBidirSubSetTestsPrivate {
	GeeBidirSortedSet* master;
	GeeBidirSortedSet* subset;
	BidirSortedSetTests* test;
	SortedSetTestsSubSetTestsType type;
};


static gpointer bidir_sorted_set_tests_parent_class = NULL;
static gpointer bidir_sorted_set_tests_bidir_sub_set_tests_parent_class = NULL;

GType gee_test_case_get_type (void) G_GNUC_CONST;
GType collection_tests_get_type (void) G_GNUC_CONST;
GType set_tests_get_type (void) G_GNUC_CONST;
GType sorted_set_tests_get_type (void) G_GNUC_CONST;
GType bidir_sorted_set_tests_get_type (void) G_GNUC_CONST;
enum  {
	BIDIR_SORTED_SET_TESTS_0_PROPERTY
};
BidirSortedSetTests* bidir_sorted_set_tests_construct (GType object_type, const gchar* name);
SortedSetTests* sorted_set_tests_construct (GType object_type, const gchar* name, gboolean strict);
void gee_test_case_add_test (GeeTestCase* self, const gchar* name, GeeTestCaseTestMethod test, void* test_target, GDestroyNotify test_target_destroy_notify);
void bidir_sorted_set_tests_test_bidir_iterator_can_go_backward (BidirSortedSetTests* self);
static void _bidir_sorted_set_tests_test_bidir_iterator_can_go_backward_gee_test_case_test_method (gpointer self);
void bidir_sorted_set_tests_test_mutable_bidir_iterator (BidirSortedSetTests* self);
static void _bidir_sorted_set_tests_test_mutable_bidir_iterator_gee_test_case_test_method (gpointer self);
void bidir_sorted_set_tests_test_bidir_iterator_first (BidirSortedSetTests* self);
static void _bidir_sorted_set_tests_test_bidir_iterator_first_gee_test_case_test_method (gpointer self);
void bidir_sorted_set_tests_test_bidir_iterator_last (BidirSortedSetTests* self);
static void _bidir_sorted_set_tests_test_bidir_iterator_last_gee_test_case_test_method (gpointer self);
GTestSuite* gee_test_case_get_suite (GeeTestCase* self);
GType sorted_set_tests_sub_set_tests_type_get_type (void) G_GNUC_CONST;
BidirSortedSetTestsBidirSubSetTests* bidir_sorted_set_tests_bidir_sub_set_tests_new (BidirSortedSetTests* test, SortedSetTestsSubSetTestsType type);
BidirSortedSetTestsBidirSubSetTests* bidir_sorted_set_tests_bidir_sub_set_tests_construct (GType object_type, BidirSortedSetTests* test, SortedSetTestsSubSetTestsType type);
GType bidir_sorted_set_tests_bidir_sub_set_tests_get_type (void) G_GNUC_CONST;
#define BIDIR_SORTED_SET_TESTS_BIDIR_SUB_SET_TESTS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS, BidirSortedSetTestsBidirSubSetTestsPrivate))
enum  {
	BIDIR_SORTED_SET_TESTS_BIDIR_SUB_SET_TESTS_0_PROPERTY
};
const gchar* sorted_set_tests_sub_set_tests_type_to_string (SortedSetTestsSubSetTestsType self);
GeeTestCase* gee_test_case_construct (GType object_type, const gchar* name);
void bidir_sorted_set_tests_bidir_sub_set_tests_test_bidir_iterator (BidirSortedSetTestsBidirSubSetTests* self);
static void _bidir_sorted_set_tests_bidir_sub_set_tests_test_bidir_iterator_gee_test_case_test_method (gpointer self);
static void bidir_sorted_set_tests_bidir_sub_set_tests_real_set_up (GeeTestCase* base);
void gee_test_case_set_up (GeeTestCase* self);
static void bidir_sorted_set_tests_bidir_sub_set_tests_real_tear_down (GeeTestCase* base);
void gee_test_case_tear_down (GeeTestCase* self);
static void bidir_sorted_set_tests_bidir_sub_set_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_set_tests_test_bidir_iterator_can_go_backward_gee_test_case_test_method (gpointer self) {
	bidir_sorted_set_tests_test_bidir_iterator_can_go_backward ((BidirSortedSetTests*) self);
}


static void _bidir_sorted_set_tests_test_mutable_bidir_iterator_gee_test_case_test_method (gpointer self) {
	bidir_sorted_set_tests_test_mutable_bidir_iterator ((BidirSortedSetTests*) self);
}


static void _bidir_sorted_set_tests_test_bidir_iterator_first_gee_test_case_test_method (gpointer self) {
	bidir_sorted_set_tests_test_bidir_iterator_first ((BidirSortedSetTests*) self);
}


static void _bidir_sorted_set_tests_test_bidir_iterator_last_gee_test_case_test_method (gpointer self) {
	bidir_sorted_set_tests_test_bidir_iterator_last ((BidirSortedSetTests*) self);
}


BidirSortedSetTests* bidir_sorted_set_tests_construct (GType object_type, const gchar* name) {
	BidirSortedSetTests * self = NULL;
	const gchar* _tmp0_;
	GTestSuite* _tmp1_;
	BidirSortedSetTestsBidirSubSetTests* _tmp2_;
	BidirSortedSetTestsBidirSubSetTests* _tmp3_;
	GTestSuite* _tmp4_;
	GTestSuite* _tmp5_;
	BidirSortedSetTestsBidirSubSetTests* _tmp6_;
	BidirSortedSetTestsBidirSubSetTests* _tmp7_;
	GTestSuite* _tmp8_;
	GTestSuite* _tmp9_;
	BidirSortedSetTestsBidirSubSetTests* _tmp10_;
	BidirSortedSetTestsBidirSubSetTests* _tmp11_;
	GTestSuite* _tmp12_;
	GTestSuite* _tmp13_;
	BidirSortedSetTestsBidirSubSetTests* _tmp14_;
	BidirSortedSetTestsBidirSubSetTests* _tmp15_;
	GTestSuite* _tmp16_;
	g_return_val_if_fail (name != NULL, NULL);
	_tmp0_ = name;
	self = (BidirSortedSetTests*) sorted_set_tests_construct (object_type, _tmp0_, TRUE);
	gee_test_case_add_test ((GeeTestCase*) self, "[SortedSet] bi-directional iterators can go backward", _bidir_sorted_set_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 are mutable", _bidir_sorted_set_tests_test_mutable_bidir_iterator_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 beginning", _bidir_sorted_set_tests_test_bidir_iterator_first_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_set_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_set_tests_bidir_sub_set_tests_new (self, SORTED_SET_TESTS_SUB_SET_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_set_tests_bidir_sub_set_tests_new (self, SORTED_SET_TESTS_SUB_SET_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_set_tests_bidir_sub_set_tests_new (self, SORTED_SET_TESTS_SUB_SET_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_set_tests_bidir_sub_set_tests_new (self, SORTED_SET_TESTS_SUB_SET_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_set_tests_test_bidir_iterator_can_go_backward (BidirSortedSetTests* self) {
	GeeBidirSortedSet* test_set = NULL;
	GeeCollection* _tmp0_;
	GeeBidirSortedSet* _tmp1_;
	GeeBidirIterator* iterator = NULL;
	GeeBidirIterator* _tmp2_;
	GeeBidirIterator* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	GeeBidirIterator* _tmp11_;
	GeeBidirIterator* _tmp12_;
	gboolean _tmp13_;
	GeeBidirIterator* _tmp14_;
	gpointer _tmp15_;
	gchar* _tmp16_;
	GeeBidirIterator* _tmp17_;
	gboolean _tmp18_;
	GeeBidirIterator* _tmp19_;
	gboolean _tmp20_;
	GeeBidirIterator* _tmp21_;
	gpointer _tmp22_;
	gchar* _tmp23_;
	GeeBidirIterator* _tmp24_;
	gboolean _tmp25_;
	GeeBidirIterator* _tmp26_;
	gboolean _tmp27_;
	GeeBidirIterator* _tmp28_;
	gpointer _tmp29_;
	gchar* _tmp30_;
	GeeBidirIterator* _tmp31_;
	gboolean _tmp32_;
	GeeBidirIterator* _tmp33_;
	gboolean _tmp34_;
	GeeBidirIterator* _tmp35_;
	gpointer _tmp36_;
	gchar* _tmp37_;
	GeeBidirIterator* _tmp38_;
	gboolean _tmp39_;
	GeeBidirIterator* _tmp40_;
	gboolean _tmp41_;
	GeeBidirIterator* _tmp42_;
	gpointer _tmp43_;
	gchar* _tmp44_;
	GeeBidirIterator* _tmp45_;
	gboolean _tmp46_;
	GeeBidirIterator* _tmp47_;
	gboolean _tmp48_;
	GeeBidirIterator* _tmp49_;
	gpointer _tmp50_;
	gchar* _tmp51_;
	GeeBidirIterator* _tmp52_;
	gboolean _tmp53_;
	GeeBidirIterator* _tmp54_;
	gboolean _tmp55_;
	GeeBidirIterator* _tmp56_;
	gboolean _tmp57_;
	GeeBidirIterator* _tmp58_;
	gpointer _tmp59_;
	gchar* _tmp60_;
	GeeBidirIterator* _tmp61_;
	gboolean _tmp62_;
	GeeBidirIterator* _tmp63_;
	gpointer _tmp64_;
	gchar* _tmp65_;
	GeeBidirIterator* _tmp66_;
	gboolean _tmp67_;
	GeeBidirIterator* _tmp68_;
	gpointer _tmp69_;
	gchar* _tmp70_;
	GeeBidirIterator* _tmp71_;
	gboolean _tmp72_;
	GeeBidirIterator* _tmp73_;
	gpointer _tmp74_;
	gchar* _tmp75_;
	GeeBidirIterator* _tmp76_;
	gboolean _tmp77_;
	GeeBidirIterator* _tmp78_;
	gpointer _tmp79_;
	gchar* _tmp80_;
	GeeBidirIterator* _tmp81_;
	gboolean _tmp82_;
	GeeBidirIterator* _tmp83_;
	gpointer _tmp84_;
	gchar* _tmp85_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((CollectionTests*) self)->test_collection;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp0_) : NULL);
	test_set = _tmp1_;
	_tmp2_ = gee_bidir_sorted_set_bidir_iterator (test_set);
	iterator = _tmp2_;
	_tmp3_ = iterator;
	_tmp4_ = gee_bidir_iterator_has_previous (_tmp3_);
	_vala_assert (!_tmp4_, "!iterator.has_previous ()");
	_tmp5_ = gee_collection_add ((GeeCollection*) test_set, "one");
	_vala_assert (_tmp5_, "test_set.add (\"one\")");
	_tmp6_ = gee_collection_add ((GeeCollection*) test_set, "two");
	_vala_assert (_tmp6_, "test_set.add (\"two\")");
	_tmp7_ = gee_collection_add ((GeeCollection*) test_set, "three");
	_vala_assert (_tmp7_, "test_set.add (\"three\")");
	_tmp8_ = gee_collection_add ((GeeCollection*) test_set, "four");
	_vala_assert (_tmp8_, "test_set.add (\"four\")");
	_tmp9_ = gee_collection_add ((GeeCollection*) test_set, "five");
	_vala_assert (_tmp9_, "test_set.add (\"five\")");
	_tmp10_ = gee_collection_add ((GeeCollection*) test_set, "six");
	_vala_assert (_tmp10_, "test_set.add (\"six\")");
	_tmp11_ = gee_bidir_sorted_set_bidir_iterator (test_set);
	_g_object_unref0 (iterator);
	iterator = _tmp11_;
	_tmp12_ = iterator;
	_tmp13_ = gee_iterator_next ((GeeIterator*) _tmp12_);
	_vala_assert (_tmp13_, "iterator.next ()");
	_tmp14_ = iterator;
	_tmp15_ = gee_iterator_get ((GeeIterator*) _tmp14_);
	_tmp16_ = (gchar*) _tmp15_;
	_vala_assert (g_strcmp0 (_tmp16_, "five") == 0, "iterator.get () == \"five\"");
	_g_free0 (_tmp16_);
	_tmp17_ = iterator;
	_tmp18_ = gee_bidir_iterator_has_previous (_tmp17_);
	_vala_assert (!_tmp18_, "!iterator.has_previous ()");
	_tmp19_ = iterator;
	_tmp20_ = gee_iterator_next ((GeeIterator*) _tmp19_);
	_vala_assert (_tmp20_, "iterator.next ()");
	_tmp21_ = iterator;
	_tmp22_ = gee_iterator_get ((GeeIterator*) _tmp21_);
	_tmp23_ = (gchar*) _tmp22_;
	_vala_assert (g_strcmp0 (_tmp23_, "four") == 0, "iterator.get () == \"four\"");
	_g_free0 (_tmp23_);
	_tmp24_ = iterator;
	_tmp25_ = gee_bidir_iterator_has_previous (_tmp24_);
	_vala_assert (_tmp25_, "iterator.has_previous ()");
	_tmp26_ = iterator;
	_tmp27_ = gee_iterator_next ((GeeIterator*) _tmp26_);
	_vala_assert (_tmp27_, "iterator.next ()");
	_tmp28_ = iterator;
	_tmp29_ = gee_iterator_get ((GeeIterator*) _tmp28_);
	_tmp30_ = (gchar*) _tmp29_;
	_vala_assert (g_strcmp0 (_tmp30_, "one") == 0, "iterator.get () == \"one\"");
	_g_free0 (_tmp30_);
	_tmp31_ = iterator;
	_tmp32_ = gee_bidir_iterator_has_previous (_tmp31_);
	_vala_assert (_tmp32_, "iterator.has_previous ()");
	_tmp33_ = iterator;
	_tmp34_ = gee_iterator_next ((GeeIterator*) _tmp33_);
	_vala_assert (_tmp34_, "iterator.next ()");
	_tmp35_ = iterator;
	_tmp36_ = gee_iterator_get ((GeeIterator*) _tmp35_);
	_tmp37_ = (gchar*) _tmp36_;
	_vala_assert (g_strcmp0 (_tmp37_, "six") == 0, "iterator.get () == \"six\"");
	_g_free0 (_tmp37_);
	_tmp38_ = iterator;
	_tmp39_ = gee_bidir_iterator_has_previous (_tmp38_);
	_vala_assert (_tmp39_, "iterator.has_previous ()");
	_tmp40_ = iterator;
	_tmp41_ = gee_iterator_next ((GeeIterator*) _tmp40_);
	_vala_assert (_tmp41_, "iterator.next ()");
	_tmp42_ = iterator;
	_tmp43_ = gee_iterator_get ((GeeIterator*) _tmp42_);
	_tmp44_ = (gchar*) _tmp43_;
	_vala_assert (g_strcmp0 (_tmp44_, "three") == 0, "iterator.get () == \"three\"");
	_g_free0 (_tmp44_);
	_tmp45_ = iterator;
	_tmp46_ = gee_bidir_iterator_has_previous (_tmp45_);
	_vala_assert (_tmp46_, "iterator.has_previous ()");
	_tmp47_ = iterator;
	_tmp48_ = gee_iterator_next ((GeeIterator*) _tmp47_);
	_vala_assert (_tmp48_, "iterator.next ()");
	_tmp49_ = iterator;
	_tmp50_ = gee_iterator_get ((GeeIterator*) _tmp49_);
	_tmp51_ = (gchar*) _tmp50_;
	_vala_assert (g_strcmp0 (_tmp51_, "two") == 0, "iterator.get () == \"two\"");
	_g_free0 (_tmp51_);
	_tmp52_ = iterator;
	_tmp53_ = gee_bidir_iterator_has_previous (_tmp52_);
	_vala_assert (_tmp53_, "iterator.has_previous ()");
	_tmp54_ = iterator;
	_tmp55_ = gee_iterator_next ((GeeIterator*) _tmp54_);
	_vala_assert (!_tmp55_, "!iterator.next ()");
	_tmp56_ = iterator;
	_tmp57_ = gee_bidir_iterator_previous (_tmp56_);
	_vala_assert (_tmp57_, "iterator.previous ()");
	_tmp58_ = iterator;
	_tmp59_ = gee_iterator_get ((GeeIterator*) _tmp58_);
	_tmp60_ = (gchar*) _tmp59_;
	_vala_assert (g_strcmp0 (_tmp60_, "three") == 0, "iterator.get () == \"three\"");
	_g_free0 (_tmp60_);
	_tmp61_ = iterator;
	_tmp62_ = gee_bidir_iterator_previous (_tmp61_);
	_vala_assert (_tmp62_, "iterator.previous ()");
	_tmp63_ = iterator;
	_tmp64_ = gee_iterator_get ((GeeIterator*) _tmp63_);
	_tmp65_ = (gchar*) _tmp64_;
	_vala_assert (g_strcmp0 (_tmp65_, "six") == 0, "iterator.get () == \"six\"");
	_g_free0 (_tmp65_);
	_tmp66_ = iterator;
	_tmp67_ = gee_bidir_iterator_previous (_tmp66_);
	_vala_assert (_tmp67_, "iterator.previous ()");
	_tmp68_ = iterator;
	_tmp69_ = gee_iterator_get ((GeeIterator*) _tmp68_);
	_tmp70_ = (gchar*) _tmp69_;
	_vala_assert (g_strcmp0 (_tmp70_, "one") == 0, "iterator.get () == \"one\"");
	_g_free0 (_tmp70_);
	_tmp71_ = iterator;
	_tmp72_ = gee_bidir_iterator_previous (_tmp71_);
	_vala_assert (_tmp72_, "iterator.previous ()");
	_tmp73_ = iterator;
	_tmp74_ = gee_iterator_get ((GeeIterator*) _tmp73_);
	_tmp75_ = (gchar*) _tmp74_;
	_vala_assert (g_strcmp0 (_tmp75_, "four") == 0, "iterator.get () == \"four\"");
	_g_free0 (_tmp75_);
	_tmp76_ = iterator;
	_tmp77_ = gee_bidir_iterator_previous (_tmp76_);
	_vala_assert (_tmp77_, "iterator.previous ()");
	_tmp78_ = iterator;
	_tmp79_ = gee_iterator_get ((GeeIterator*) _tmp78_);
	_tmp80_ = (gchar*) _tmp79_;
	_vala_assert (g_strcmp0 (_tmp80_, "five") == 0, "iterator.get () == \"five\"");
	_g_free0 (_tmp80_);
	_tmp81_ = iterator;
	_tmp82_ = gee_bidir_iterator_previous (_tmp81_);
	_vala_assert (!_tmp82_, "!iterator.previous ()");
	_tmp83_ = iterator;
	_tmp84_ = gee_iterator_get ((GeeIterator*) _tmp83_);
	_tmp85_ = (gchar*) _tmp84_;
	_vala_assert (g_strcmp0 (_tmp85_, "five") == 0, "iterator.get () == \"five\"");
	_g_free0 (_tmp85_);
	_g_object_unref0 (iterator);
	_g_object_unref0 (test_set);
}


void bidir_sorted_set_tests_test_bidir_iterator_first (BidirSortedSetTests* self) {
	GeeBidirSortedSet* test_set = NULL;
	GeeCollection* _tmp0_;
	GeeBidirSortedSet* _tmp1_;
	GeeBidirIterator* iterator = NULL;
	GeeBidirIterator* _tmp2_;
	GeeBidirIterator* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	GeeBidirIterator* _tmp11_;
	GeeBidirIterator* _tmp12_;
	gboolean _tmp13_;
	GeeBidirIterator* _tmp14_;
	gpointer _tmp15_;
	gchar* _tmp16_;
	GeeBidirIterator* _tmp17_;
	gboolean _tmp18_;
	GeeBidirIterator* _tmp19_;
	gpointer _tmp20_;
	gchar* _tmp21_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((CollectionTests*) self)->test_collection;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp0_) : NULL);
	test_set = _tmp1_;
	_tmp2_ = gee_bidir_sorted_set_bidir_iterator (test_set);
	iterator = _tmp2_;
	_tmp3_ = iterator;
	_tmp4_ = gee_bidir_iterator_first (_tmp3_);
	_vala_assert (!_tmp4_, "!iterator.first ()");
	_tmp5_ = gee_collection_add ((GeeCollection*) test_set, "one");
	_vala_assert (_tmp5_, "test_set.add (\"one\")");
	_tmp6_ = gee_collection_add ((GeeCollection*) test_set, "two");
	_vala_assert (_tmp6_, "test_set.add (\"two\")");
	_tmp7_ = gee_collection_add ((GeeCollection*) test_set, "three");
	_vala_assert (_tmp7_, "test_set.add (\"three\")");
	_tmp8_ = gee_collection_add ((GeeCollection*) test_set, "four");
	_vala_assert (_tmp8_, "test_set.add (\"four\")");
	_tmp9_ = gee_collection_add ((GeeCollection*) test_set, "five");
	_vala_assert (_tmp9_, "test_set.add (\"five\")");
	_tmp10_ = gee_collection_add ((GeeCollection*) test_set, "six");
	_vala_assert (_tmp10_, "test_set.add (\"six\")");
	_tmp11_ = gee_bidir_sorted_set_bidir_iterator (test_set);
	_g_object_unref0 (iterator);
	iterator = _tmp11_;
	_tmp12_ = iterator;
	_tmp13_ = gee_bidir_iterator_last (_tmp12_);
	_vala_assert (_tmp13_, "iterator.last ()");
	_tmp14_ = iterator;
	_tmp15_ = gee_iterator_get ((GeeIterator*) _tmp14_);
	_tmp16_ = (gchar*) _tmp15_;
	_vala_assert (g_strcmp0 (_tmp16_, "two") == 0, "iterator.get () == \"two\"");
	_g_free0 (_tmp16_);
	_tmp17_ = iterator;
	_tmp18_ = gee_bidir_iterator_first (_tmp17_);
	_vala_assert (_tmp18_, "iterator.first ()");
	_tmp19_ = iterator;
	_tmp20_ = gee_iterator_get ((GeeIterator*) _tmp19_);
	_tmp21_ = (gchar*) _tmp20_;
	_vala_assert (g_strcmp0 (_tmp21_, "five") == 0, "iterator.get () == \"five\"");
	_g_free0 (_tmp21_);
	_g_object_unref0 (iterator);
	_g_object_unref0 (test_set);
}


void bidir_sorted_set_tests_test_bidir_iterator_last (BidirSortedSetTests* self) {
	GeeBidirSortedSet* test_set = NULL;
	GeeCollection* _tmp0_;
	GeeBidirSortedSet* _tmp1_;
	GeeBidirIterator* iterator = NULL;
	GeeBidirIterator* _tmp2_;
	GeeBidirIterator* _tmp3_;
	gboolean _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	GeeBidirIterator* _tmp11_;
	GeeBidirIterator* _tmp12_;
	gboolean _tmp13_;
	GeeBidirIterator* _tmp14_;
	gpointer _tmp15_;
	gchar* _tmp16_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((CollectionTests*) self)->test_collection;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp0_) : NULL);
	test_set = _tmp1_;
	_tmp2_ = gee_bidir_sorted_set_bidir_iterator (test_set);
	iterator = _tmp2_;
	_tmp3_ = iterator;
	_tmp4_ = gee_bidir_iterator_last (_tmp3_);
	_vala_assert (!_tmp4_, "!iterator.last ()");
	_tmp5_ = gee_collection_add ((GeeCollection*) test_set, "one");
	_vala_assert (_tmp5_, "test_set.add (\"one\")");
	_tmp6_ = gee_collection_add ((GeeCollection*) test_set, "two");
	_vala_assert (_tmp6_, "test_set.add (\"two\")");
	_tmp7_ = gee_collection_add ((GeeCollection*) test_set, "three");
	_vala_assert (_tmp7_, "test_set.add (\"three\")");
	_tmp8_ = gee_collection_add ((GeeCollection*) test_set, "four");
	_vala_assert (_tmp8_, "test_set.add (\"four\")");
	_tmp9_ = gee_collection_add ((GeeCollection*) test_set, "five");
	_vala_assert (_tmp9_, "test_set.add (\"five\")");
	_tmp10_ = gee_collection_add ((GeeCollection*) test_set, "six");
	_vala_assert (_tmp10_, "test_set.add (\"six\")");
	_tmp11_ = gee_bidir_sorted_set_bidir_iterator (test_set);
	_g_object_unref0 (iterator);
	iterator = _tmp11_;
	_tmp12_ = iterator;
	_tmp13_ = gee_bidir_iterator_last (_tmp12_);
	_vala_assert (_tmp13_, "iterator.last ()");
	_tmp14_ = iterator;
	_tmp15_ = gee_iterator_get ((GeeIterator*) _tmp14_);
	_tmp16_ = (gchar*) _tmp15_;
	_vala_assert (g_strcmp0 (_tmp16_, "two") == 0, "iterator.get () == \"two\"");
	_g_free0 (_tmp16_);
	_g_object_unref0 (iterator);
	_g_object_unref0 (test_set);
}


void bidir_sorted_set_tests_test_mutable_bidir_iterator (BidirSortedSetTests* self) {
	GeeBidirSortedSet* test_set = NULL;
	GeeCollection* _tmp0_;
	GeeBidirSortedSet* _tmp1_;
	GeeBidirIterator* iterator = NULL;
	GeeBidirSortedSet* _tmp2_;
	GeeBidirIterator* _tmp3_;
	GeeBidirIterator* _tmp4_;
	gboolean _tmp5_;
	GeeBidirSortedSet* _tmp6_;
	gboolean _tmp7_;
	GeeBidirSortedSet* _tmp8_;
	gboolean _tmp9_;
	GeeBidirSortedSet* _tmp10_;
	gboolean _tmp11_;
	GeeBidirSortedSet* _tmp12_;
	gboolean _tmp13_;
	GeeBidirSortedSet* _tmp14_;
	gboolean _tmp15_;
	GeeBidirSortedSet* _tmp16_;
	gboolean _tmp17_;
	GeeBidirSortedSet* _tmp18_;
	GeeBidirIterator* _tmp19_;
	gboolean _tmp20_;
	GeeBidirIterator* _tmp22_;
	gboolean _tmp23_;
	GeeBidirIterator* _tmp24_;
	gpointer _tmp25_;
	gchar* _tmp26_;
	GeeBidirIterator* _tmp27_;
	GeeBidirSortedSet* _tmp28_;
	gboolean _tmp29_;
	GeeBidirIterator* _tmp30_;
	gboolean _tmp31_;
	GeeBidirIterator* _tmp32_;
	gboolean _tmp33_;
	gboolean _tmp34_;
	GeeBidirIterator* _tmp38_;
	gboolean _tmp39_;
	GeeBidirIterator* _tmp40_;
	gboolean _tmp41_;
	GeeBidirIterator* _tmp42_;
	gpointer _tmp43_;
	gchar* _tmp44_;
	GeeBidirIterator* _tmp45_;
	gboolean _tmp46_;
	GeeBidirIterator* _tmp47_;
	gpointer _tmp48_;
	gchar* _tmp49_;
	GeeBidirIterator* _tmp50_;
	GeeBidirSortedSet* _tmp51_;
	gboolean _tmp52_;
	GeeBidirIterator* _tmp53_;
	gboolean _tmp54_;
	GeeBidirIterator* _tmp55_;
	gboolean _tmp56_;
	GeeBidirIterator* _tmp57_;
	gboolean _tmp58_;
	GeeBidirIterator* _tmp59_;
	gpointer _tmp60_;
	gchar* _tmp61_;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((CollectionTests*) self)->test_collection;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp0_) : NULL);
	test_set = _tmp1_;
	_tmp2_ = test_set;
	_tmp3_ = gee_bidir_sorted_set_bidir_iterator (_tmp2_);
	iterator = _tmp3_;
	_tmp4_ = iterator;
	_tmp5_ = gee_bidir_iterator_has_previous (_tmp4_);
	_vala_assert (!_tmp5_, "!iterator.has_previous ()");
	_tmp6_ = test_set;
	_tmp7_ = gee_collection_add ((GeeCollection*) _tmp6_, "one");
	_vala_assert (_tmp7_, "test_set.add (\"one\")");
	_tmp8_ = test_set;
	_tmp9_ = gee_collection_add ((GeeCollection*) _tmp8_, "two");
	_vala_assert (_tmp9_, "test_set.add (\"two\")");
	_tmp10_ = test_set;
	_tmp11_ = gee_collection_add ((GeeCollection*) _tmp10_, "three");
	_vala_assert (_tmp11_, "test_set.add (\"three\")");
	_tmp12_ = test_set;
	_tmp13_ = gee_collection_add ((GeeCollection*) _tmp12_, "four");
	_vala_assert (_tmp13_, "test_set.add (\"four\")");
	_tmp14_ = test_set;
	_tmp15_ = gee_collection_add ((GeeCollection*) _tmp14_, "five");
	_vala_assert (_tmp15_, "test_set.add (\"five\")");
	_tmp16_ = test_set;
	_tmp17_ = gee_collection_add ((GeeCollection*) _tmp16_, "six");
	_vala_assert (_tmp17_, "test_set.add (\"six\")");
	_tmp18_ = test_set;
	_tmp19_ = gee_bidir_sorted_set_bidir_iterator (_tmp18_);
	_g_object_unref0 (iterator);
	iterator = _tmp19_;
	_tmp20_ = g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR);
	if (_tmp20_) {
		GeeBidirIterator* _tmp21_;
		_tmp21_ = iterator;
		gee_iterator_remove ((GeeIterator*) _tmp21_);
		exit (0);
	}
	g_test_trap_assert_failed ();
	_tmp22_ = iterator;
	_tmp23_ = gee_iterator_next ((GeeIterator*) _tmp22_);
	_vala_assert (_tmp23_, "iterator.next ()");
	_tmp24_ = iterator;
	_tmp25_ = gee_iterator_get ((GeeIterator*) _tmp24_);
	_tmp26_ = (gchar*) _tmp25_;
	_vala_assert (g_strcmp0 (_tmp26_, "five") == 0, "iterator.get () == \"five\"");
	_g_free0 (_tmp26_);
	_tmp27_ = iterator;
	gee_iterator_remove ((GeeIterator*) _tmp27_);
	_tmp28_ = test_set;
	_tmp29_ = gee_collection_contains ((GeeCollection*) _tmp28_, "five");
	_vala_assert (!_tmp29_, "!test_set.contains (\"five\")");
	_tmp30_ = iterator;
	_tmp31_ = gee_iterator_has_next ((GeeIterator*) _tmp30_);
	_vala_assert (_tmp31_, "iterator.has_next ()");
	_tmp32_ = iterator;
	_tmp33_ = gee_bidir_iterator_has_previous (_tmp32_);
	_vala_assert (!_tmp33_, "!iterator.has_previous ()");
	_tmp34_ = g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR);
	if (_tmp34_) {
		GeeBidirIterator* _tmp35_;
		gpointer _tmp36_;
		gchar* _tmp37_;
		_tmp35_ = iterator;
		_tmp36_ = gee_iterator_get ((GeeIterator*) _tmp35_);
		_tmp37_ = (gchar*) _tmp36_;
		_g_free0 (_tmp37_);
		exit (0);
	}
	_tmp38_ = iterator;
	_tmp39_ = gee_bidir_iterator_previous (_tmp38_);
	_vala_assert (!_tmp39_, "!iterator.previous ()");
	_tmp40_ = iterator;
	_tmp41_ = gee_iterator_next ((GeeIterator*) _tmp40_);
	_vala_assert (_tmp41_, "iterator.next ()");
	_tmp42_ = iterator;
	_tmp43_ = gee_iterator_get ((GeeIterator*) _tmp42_);
	_tmp44_ = (gchar*) _tmp43_;
	_vala_assert (g_strcmp0 (_tmp44_, "four") == 0, "iterator.get () == \"four\"");
	_g_free0 (_tmp44_);
	_tmp45_ = iterator;
	_tmp46_ = gee_iterator_next ((GeeIterator*) _tmp45_);
	_vala_assert (_tmp46_, "iterator.next ()");
	_tmp47_ = iterator;
	_tmp48_ = gee_iterator_get ((GeeIterator*) _tmp47_);
	_tmp49_ = (gchar*) _tmp48_;
	_vala_assert (g_strcmp0 (_tmp49_, "one") == 0, "iterator.get () == \"one\"");
	_g_free0 (_tmp49_);
	_tmp50_ = iterator;
	gee_iterator_remove ((GeeIterator*) _tmp50_);
	_tmp51_ = test_set;
	_tmp52_ = gee_collection_contains ((GeeCollection*) _tmp51_, "one");
	_vala_assert (!_tmp52_, "!test_set.contains (\"one\")");
	_tmp53_ = iterator;
	_tmp54_ = gee_iterator_has_next ((GeeIterator*) _tmp53_);
	_vala_assert (_tmp54_, "iterator.has_next ()");
	_tmp55_ = iterator;
	_tmp56_ = gee_bidir_iterator_has_previous (_tmp55_);
	_vala_assert (_tmp56_, "iterator.has_previous ()");
	_tmp57_ = iterator;
	_tmp58_ = gee_bidir_iterator_previous (_tmp57_);
	_vala_assert (_tmp58_, "iterator.previous ()");
	_tmp59_ = iterator;
	_tmp60_ = gee_iterator_get ((GeeIterator*) _tmp59_);
	_tmp61_ = (gchar*) _tmp60_;
	_vala_assert (g_strcmp0 (_tmp61_, "four") == 0, "iterator.get () == \"four\"");
	_g_free0 (_tmp61_);
	_g_object_unref0 (iterator);
	_g_object_unref0 (test_set);
}


static void _bidir_sorted_set_tests_bidir_sub_set_tests_test_bidir_iterator_gee_test_case_test_method (gpointer self) {
	bidir_sorted_set_tests_bidir_sub_set_tests_test_bidir_iterator ((BidirSortedSetTestsBidirSubSetTests*) self);
}


BidirSortedSetTestsBidirSubSetTests* bidir_sorted_set_tests_bidir_sub_set_tests_construct (GType object_type, BidirSortedSetTests* test, SortedSetTestsSubSetTestsType type) {
	BidirSortedSetTestsBidirSubSetTests * self = NULL;
	SortedSetTestsSubSetTestsType _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	BidirSortedSetTests* _tmp4_;
	BidirSortedSetTests* _tmp5_;
	SortedSetTestsSubSetTestsType _tmp6_;
	g_return_val_if_fail (test != NULL, NULL);
	_tmp0_ = type;
	_tmp1_ = sorted_set_tests_sub_set_tests_type_to_string (_tmp0_);
	_tmp2_ = g_strdup_printf ("%s Subset", _tmp1_);
	_tmp3_ = _tmp2_;
	self = (BidirSortedSetTestsBidirSubSetTests*) 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_set_tests_bidir_sub_set_tests_test_bidir_iterator_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	return self;
}


BidirSortedSetTestsBidirSubSetTests* bidir_sorted_set_tests_bidir_sub_set_tests_new (BidirSortedSetTests* test, SortedSetTestsSubSetTestsType type) {
	return bidir_sorted_set_tests_bidir_sub_set_tests_construct (BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS, test, type);
}


static void bidir_sorted_set_tests_bidir_sub_set_tests_real_set_up (GeeTestCase* base) {
	BidirSortedSetTestsBidirSubSetTests * self;
	BidirSortedSetTests* _tmp0_;
	BidirSortedSetTests* _tmp1_;
	GeeCollection* _tmp2_;
	GeeBidirSortedSet* _tmp3_;
	SortedSetTestsSubSetTestsType _tmp4_;
	self = (BidirSortedSetTestsBidirSubSetTests*) base;
	_tmp0_ = self->priv->test;
	gee_test_case_set_up ((GeeTestCase*) _tmp0_);
	_tmp1_ = self->priv->test;
	_tmp2_ = ((CollectionTests*) _tmp1_)->test_collection;
	_tmp3_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp2_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp2_) : NULL);
	_g_object_unref0 (self->priv->master);
	self->priv->master = _tmp3_;
	_tmp4_ = self->priv->type;
	switch (_tmp4_) {
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD:
		{
			GeeBidirSortedSet* _tmp5_;
			GeeSortedSet* _tmp6_;
			GeeBidirSortedSet* _tmp7_;
			_tmp5_ = self->priv->master;
			_tmp6_ = gee_sorted_set_head_set ((GeeSortedSet*) _tmp5_, "one");
			_tmp7_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp6_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp6_) : NULL;
			if (_tmp7_ == NULL) {
				_g_object_unref0 (_tmp6_);
			}
			_g_object_unref0 (self->priv->subset);
			self->priv->subset = _tmp7_;
			break;
		}
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TAIL:
		{
			GeeBidirSortedSet* _tmp8_;
			GeeSortedSet* _tmp9_;
			GeeBidirSortedSet* _tmp10_;
			_tmp8_ = self->priv->master;
			_tmp9_ = gee_sorted_set_tail_set ((GeeSortedSet*) _tmp8_, "six");
			_tmp10_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp9_) : NULL;
			if (_tmp10_ == NULL) {
				_g_object_unref0 (_tmp9_);
			}
			_g_object_unref0 (self->priv->subset);
			self->priv->subset = _tmp10_;
			break;
		}
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_SUB:
		{
			GeeBidirSortedSet* _tmp11_;
			GeeSortedSet* _tmp12_;
			GeeBidirSortedSet* _tmp13_;
			_tmp11_ = self->priv->master;
			_tmp12_ = gee_sorted_set_sub_set ((GeeSortedSet*) _tmp11_, "four", "three");
			_tmp13_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp12_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp12_) : NULL;
			if (_tmp13_ == NULL) {
				_g_object_unref0 (_tmp12_);
			}
			_g_object_unref0 (self->priv->subset);
			self->priv->subset = _tmp13_;
			break;
		}
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY:
		{
			GeeBidirSortedSet* _tmp14_;
			GeeSortedSet* _tmp15_;
			GeeBidirSortedSet* _tmp16_;
			_tmp14_ = self->priv->master;
			_tmp15_ = gee_sorted_set_sub_set ((GeeSortedSet*) _tmp14_, "three", "four");
			_tmp16_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp15_, GEE_TYPE_BIDIR_SORTED_SET) ? ((GeeBidirSortedSet*) _tmp15_) : NULL;
			if (_tmp16_ == NULL) {
				_g_object_unref0 (_tmp15_);
			}
			_g_object_unref0 (self->priv->subset);
			self->priv->subset = _tmp16_;
			break;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}


static void bidir_sorted_set_tests_bidir_sub_set_tests_real_tear_down (GeeTestCase* base) {
	BidirSortedSetTestsBidirSubSetTests * self;
	BidirSortedSetTests* _tmp0_;
	self = (BidirSortedSetTestsBidirSubSetTests*) base;
	_tmp0_ = self->priv->test;
	gee_test_case_tear_down ((GeeTestCase*) _tmp0_);
}


void bidir_sorted_set_tests_bidir_sub_set_tests_test_bidir_iterator (BidirSortedSetTestsBidirSubSetTests* self) {
	GeeBidirSortedSet* _tmp0_;
	gboolean _tmp1_;
	GeeBidirSortedSet* _tmp2_;
	gboolean _tmp3_;
	GeeBidirSortedSet* _tmp4_;
	gboolean _tmp5_;
	GeeBidirSortedSet* _tmp6_;
	gboolean _tmp7_;
	GeeBidirSortedSet* _tmp8_;
	gboolean _tmp9_;
	GeeBidirSortedSet* _tmp10_;
	gboolean _tmp11_;
	GeeBidirSortedSet* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
	gchar** contains = NULL;
	gint contains_length1 = 0;
	gint _contains_size_ = 0;
	SortedSetTestsSubSetTestsType _tmp15_;
	guint i = 0U;
	guint _tmp38_;
	gchar** _tmp39_;
	gint _tmp39__length1;
	GeeBidirIterator* iter = NULL;
	GeeBidirSortedSet* _tmp40_;
	GeeBidirIterator* _tmp41_;
	SortedSetTestsSubSetTestsType _tmp42_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->master;
	_tmp1_ = gee_collection_add ((GeeCollection*) _tmp0_, "one");
	_vala_assert (_tmp1_, "master.add (\"one\")");
	_tmp2_ = self->priv->master;
	_tmp3_ = gee_collection_add ((GeeCollection*) _tmp2_, "two");
	_vala_assert (_tmp3_, "master.add (\"two\")");
	_tmp4_ = self->priv->master;
	_tmp5_ = gee_collection_add ((GeeCollection*) _tmp4_, "three");
	_vala_assert (_tmp5_, "master.add (\"three\")");
	_tmp6_ = self->priv->master;
	_tmp7_ = gee_collection_add ((GeeCollection*) _tmp6_, "four");
	_vala_assert (_tmp7_, "master.add (\"four\")");
	_tmp8_ = self->priv->master;
	_tmp9_ = gee_collection_add ((GeeCollection*) _tmp8_, "five");
	_vala_assert (_tmp9_, "master.add (\"five\")");
	_tmp10_ = self->priv->master;
	_tmp11_ = gee_collection_add ((GeeCollection*) _tmp10_, "six");
	_vala_assert (_tmp11_, "master.add (\"six\")");
	_tmp12_ = self->priv->master;
	_tmp13_ = gee_collection_get_size ((GeeCollection*) _tmp12_);
	_tmp14_ = _tmp13_;
	_vala_assert (_tmp14_ == 6, "master.size == 6");
	_tmp15_ = self->priv->type;
	switch (_tmp15_) {
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD:
		{
			gchar* _tmp16_;
			gchar* _tmp17_;
			gchar** _tmp18_;
			_tmp16_ = g_strdup ("five");
			_tmp17_ = g_strdup ("four");
			_tmp18_ = g_new0 (gchar*, 2 + 1);
			_tmp18_[0] = _tmp16_;
			_tmp18_[1] = _tmp17_;
			contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
			contains = _tmp18_;
			contains_length1 = 2;
			_contains_size_ = contains_length1;
			break;
		}
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_TAIL:
		{
			gchar* _tmp19_;
			gchar* _tmp20_;
			gchar* _tmp21_;
			gchar** _tmp22_;
			_tmp19_ = g_strdup ("six");
			_tmp20_ = g_strdup ("three");
			_tmp21_ = g_strdup ("two");
			_tmp22_ = g_new0 (gchar*, 3 + 1);
			_tmp22_[0] = _tmp19_;
			_tmp22_[1] = _tmp20_;
			_tmp22_[2] = _tmp21_;
			contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
			contains = _tmp22_;
			contains_length1 = 3;
			_contains_size_ = contains_length1;
			break;
		}
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_SUB:
		{
			gchar* _tmp23_;
			gchar* _tmp24_;
			gchar* _tmp25_;
			gchar** _tmp26_;
			_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_;
			contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
			contains = _tmp26_;
			contains_length1 = 3;
			_contains_size_ = contains_length1;
			break;
		}
		case SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY:
		{
			gchar** _tmp27_;
			_tmp27_ = g_new0 (gchar*, 0 + 1);
			contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
			contains = _tmp27_;
			contains_length1 = 0;
			_contains_size_ = contains_length1;
			break;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
	i = (guint) 0;
	{
		GeeIterator* _e_it = NULL;
		GeeBidirSortedSet* _tmp28_;
		GeeIterator* _tmp29_;
		_tmp28_ = self->priv->subset;
		_tmp29_ = gee_iterable_iterator ((GeeIterable*) _tmp28_);
		_e_it = _tmp29_;
		while (TRUE) {
			GeeIterator* _tmp30_;
			gboolean _tmp31_;
			gchar* e = NULL;
			GeeIterator* _tmp32_;
			gpointer _tmp33_;
			const gchar* _tmp34_;
			gchar** _tmp35_;
			gint _tmp35__length1;
			guint _tmp36_;
			const gchar* _tmp37_;
			_tmp30_ = _e_it;
			_tmp31_ = gee_iterator_next (_tmp30_);
			if (!_tmp31_) {
				break;
			}
			_tmp32_ = _e_it;
			_tmp33_ = gee_iterator_get (_tmp32_);
			e = (gchar*) _tmp33_;
			_tmp34_ = e;
			_tmp35_ = contains;
			_tmp35__length1 = contains_length1;
			_tmp36_ = i;
			i = _tmp36_ + 1;
			_tmp37_ = _tmp35_[_tmp36_];
			_vala_assert (g_strcmp0 (_tmp34_, _tmp37_) == 0, "e == contains[i++]");
			_g_free0 (e);
		}
		_g_object_unref0 (_e_it);
	}
	_tmp38_ = i;
	_tmp39_ = contains;
	_tmp39__length1 = contains_length1;
	_vala_assert (_tmp38_ == ((guint) _tmp39__length1), "i == contains.length");
	_tmp40_ = self->priv->subset;
	_tmp41_ = gee_bidir_sorted_set_bidir_iterator (_tmp40_);
	iter = _tmp41_;
	_tmp42_ = self->priv->type;
	if (_tmp42_ != SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_EMPTY) {
		GeeBidirIterator* _tmp43_;
		gboolean _tmp44_;
		GeeBidirIterator* _tmp45_;
		gpointer _tmp46_;
		gchar* _tmp47_;
		gchar** _tmp48_;
		gint _tmp48__length1;
		gchar** _tmp49_;
		gint _tmp49__length1;
		const gchar* _tmp50_;
		GeeBidirIterator* _tmp51_;
		gboolean _tmp52_;
		GeeBidirIterator* _tmp53_;
		gpointer _tmp54_;
		gchar* _tmp55_;
		gchar** _tmp56_;
		gint _tmp56__length1;
		const gchar* _tmp57_;
		GeeBidirIterator* _tmp58_;
		gboolean _tmp59_;
		GeeBidirIterator* _tmp60_;
		gboolean _tmp61_;
		GeeBidirIterator* _tmp62_;
		gpointer _tmp63_;
		gchar* _tmp64_;
		gchar** _tmp65_;
		gint _tmp65__length1;
		const gchar* _tmp66_;
		GeeBidirIterator* _tmp67_;
		gboolean _tmp68_;
		GeeBidirIterator* _tmp69_;
		GeeBidirIterator* _tmp70_;
		gboolean _tmp71_;
		SortedSetTestsSubSetTestsType _tmp72_;
		GeeBidirIterator* _tmp77_;
		gboolean _tmp78_;
		GeeBidirIterator* _tmp79_;
		gpointer _tmp80_;
		gchar* _tmp81_;
		gchar** _tmp82_;
		gint _tmp82__length1;
		const gchar* _tmp83_;
		_tmp43_ = iter;
		_tmp44_ = gee_bidir_iterator_last (_tmp43_);
		_vala_assert (_tmp44_, "iter.last ()");
		_tmp45_ = iter;
		_tmp46_ = gee_iterator_get ((GeeIterator*) _tmp45_);
		_tmp47_ = (gchar*) _tmp46_;
		_tmp48_ = contains;
		_tmp48__length1 = contains_length1;
		_tmp49_ = contains;
		_tmp49__length1 = contains_length1;
		_tmp50_ = _tmp48_[_tmp49__length1 - 1];
		_vala_assert (g_strcmp0 (_tmp47_, _tmp50_) == 0, "iter.get () == contains[contains.length - 1]");
		_g_free0 (_tmp47_);
		_tmp51_ = iter;
		_tmp52_ = gee_bidir_iterator_first (_tmp51_);
		_vala_assert (_tmp52_, "iter.first ()");
		_tmp53_ = iter;
		_tmp54_ = gee_iterator_get ((GeeIterator*) _tmp53_);
		_tmp55_ = (gchar*) _tmp54_;
		_tmp56_ = contains;
		_tmp56__length1 = contains_length1;
		_tmp57_ = _tmp56_[0];
		_vala_assert (g_strcmp0 (_tmp55_, _tmp57_) == 0, "iter.get () == contains[0]");
		_g_free0 (_tmp55_);
		_tmp58_ = iter;
		_tmp59_ = gee_iterator_has_next ((GeeIterator*) _tmp58_);
		_vala_assert (_tmp59_, "iter.has_next ()");
		_tmp60_ = iter;
		_tmp61_ = gee_iterator_next ((GeeIterator*) _tmp60_);
		_vala_assert (_tmp61_, "iter.next ()");
		_tmp62_ = iter;
		_tmp63_ = gee_iterator_get ((GeeIterator*) _tmp62_);
		_tmp64_ = (gchar*) _tmp63_;
		_tmp65_ = contains;
		_tmp65__length1 = contains_length1;
		_tmp66_ = _tmp65_[1];
		_vala_assert (g_strcmp0 (_tmp64_, _tmp66_) == 0, "iter.get () == contains[1]");
		_g_free0 (_tmp64_);
		_tmp67_ = iter;
		_tmp68_ = gee_bidir_iterator_has_previous (_tmp67_);
		_vala_assert (_tmp68_, "iter.has_previous ()");
		_tmp69_ = iter;
		gee_iterator_remove ((GeeIterator*) _tmp69_);
		_tmp70_ = iter;
		_tmp71_ = gee_bidir_iterator_has_previous (_tmp70_);
		_vala_assert (_tmp71_, "iter.has_previous ()");
		_tmp72_ = self->priv->type;
		if (_tmp72_ != SORTED_SET_TESTS_SUB_SET_TESTS_TYPE_HEAD) {
			GeeBidirIterator* _tmp73_;
			gboolean _tmp74_;
			_tmp73_ = iter;
			_tmp74_ = gee_iterator_has_next ((GeeIterator*) _tmp73_);
			_vala_assert (_tmp74_, "iter.has_next ()");
		} else {
			GeeBidirIterator* _tmp75_;
			gboolean _tmp76_;
			_tmp75_ = iter;
			_tmp76_ = gee_iterator_has_next ((GeeIterator*) _tmp75_);
			_vala_assert (!_tmp76_, "!iter.has_next ()");
		}
		_tmp77_ = iter;
		_tmp78_ = gee_bidir_iterator_previous (_tmp77_);
		_vala_assert (_tmp78_, "iter.previous ()");
		_tmp79_ = iter;
		_tmp80_ = gee_iterator_get ((GeeIterator*) _tmp79_);
		_tmp81_ = (gchar*) _tmp80_;
		_tmp82_ = contains;
		_tmp82__length1 = contains_length1;
		_tmp83_ = _tmp82_[0];
		_vala_assert (g_strcmp0 (_tmp81_, _tmp83_) == 0, "iter.get () == contains[0]");
		_g_free0 (_tmp81_);
	} else {
		GeeBidirIterator* _tmp84_;
		gboolean _tmp85_;
		gboolean _tmp86_;
		_tmp84_ = iter;
		_tmp85_ = gee_bidir_iterator_first (_tmp84_);
		_vala_assert (!_tmp85_, "!iter.first ()");
		_tmp86_ = g_test_trap_fork ((guint64) 0, G_TEST_TRAP_SILENCE_STDOUT | G_TEST_TRAP_SILENCE_STDERR);
		if (_tmp86_) {
			GeeBidirIterator* _tmp87_;
			_tmp87_ = iter;
			gee_iterator_remove ((GeeIterator*) _tmp87_);
			exit (0);
		}
		g_test_trap_assert_failed ();
	}
	_g_object_unref0 (iter);
	contains = (_vala_array_free (contains, contains_length1, (GDestroyNotify) g_free), NULL);
}


static void bidir_sorted_set_tests_bidir_sub_set_tests_class_init (BidirSortedSetTestsBidirSubSetTestsClass * klass) {
	bidir_sorted_set_tests_bidir_sub_set_tests_parent_class = g_type_class_peek_parent (klass);
	g_type_class_add_private (klass, sizeof (BidirSortedSetTestsBidirSubSetTestsPrivate));
	((GeeTestCaseClass *) klass)->set_up = (void (*) (GeeTestCase *)) bidir_sorted_set_tests_bidir_sub_set_tests_real_set_up;
	((GeeTestCaseClass *) klass)->tear_down = (void (*) (GeeTestCase *)) bidir_sorted_set_tests_bidir_sub_set_tests_real_tear_down;
	G_OBJECT_CLASS (klass)->finalize = bidir_sorted_set_tests_bidir_sub_set_tests_finalize;
}


static void bidir_sorted_set_tests_bidir_sub_set_tests_instance_init (BidirSortedSetTestsBidirSubSetTests * self) {
	self->priv = BIDIR_SORTED_SET_TESTS_BIDIR_SUB_SET_TESTS_GET_PRIVATE (self);
}


static void bidir_sorted_set_tests_bidir_sub_set_tests_finalize (GObject * obj) {
	BidirSortedSetTestsBidirSubSetTests * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, BIDIR_SORTED_SET_TESTS_TYPE_BIDIR_SUB_SET_TESTS, BidirSortedSetTestsBidirSubSetTests);
	_g_object_unref0 (self->priv->master);
	_g_object_unref0 (self->priv->subset);
	_g_object_unref0 (self->priv->test);
	G_OBJECT_CLASS (bidir_sorted_set_tests_bidir_sub_set_tests_parent_class)->finalize (obj);
}


GType bidir_sorted_set_tests_bidir_sub_set_tests_get_type (void) {
	static volatile gsize bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile = 0;
	if (g_once_init_enter (&bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BidirSortedSetTestsBidirSubSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_set_tests_bidir_sub_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedSetTestsBidirSubSetTests), 0, (GInstanceInitFunc) bidir_sorted_set_tests_bidir_sub_set_tests_instance_init, NULL };
		GType bidir_sorted_set_tests_bidir_sub_set_tests_type_id;
		bidir_sorted_set_tests_bidir_sub_set_tests_type_id = g_type_register_static (GEE_TYPE_TEST_CASE, "BidirSortedSetTestsBidirSubSetTests", &g_define_type_info, 0);
		g_once_init_leave (&bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile, bidir_sorted_set_tests_bidir_sub_set_tests_type_id);
	}
	return bidir_sorted_set_tests_bidir_sub_set_tests_type_id__volatile;
}


static void bidir_sorted_set_tests_class_init (BidirSortedSetTestsClass * klass) {
	bidir_sorted_set_tests_parent_class = g_type_class_peek_parent (klass);
}


static void bidir_sorted_set_tests_instance_init (BidirSortedSetTests * self) {
}


GType bidir_sorted_set_tests_get_type (void) {
	static volatile gsize bidir_sorted_set_tests_type_id__volatile = 0;
	if (g_once_init_enter (&bidir_sorted_set_tests_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BidirSortedSetTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) bidir_sorted_set_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BidirSortedSetTests), 0, (GInstanceInitFunc) bidir_sorted_set_tests_instance_init, NULL };
		GType bidir_sorted_set_tests_type_id;
		bidir_sorted_set_tests_type_id = g_type_register_static (TYPE_SORTED_SET_TESTS, "BidirSortedSetTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&bidir_sorted_set_tests_type_id__volatile, bidir_sorted_set_tests_type_id);
	}
	return bidir_sorted_set_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);
}



