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

/* testdeque.vala
 *
 * Copyright (C) 2009  Didier Villevalois
 *
 * 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:
 * 	Didier 'Ptitjes' Villevalois <ptitjes@free.fr>
 */

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


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

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

#define TYPE_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_QUEUE_TESTS (queue_tests_get_type ())
#define QUEUE_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_QUEUE_TESTS, QueueTests))
#define QUEUE_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_QUEUE_TESTS, QueueTestsClass))
#define IS_QUEUE_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_QUEUE_TESTS))
#define IS_QUEUE_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_QUEUE_TESTS))
#define QUEUE_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_QUEUE_TESTS, QueueTestsClass))

typedef struct _QueueTests QueueTests;
typedef struct _QueueTestsClass QueueTestsClass;
typedef struct _QueueTestsPrivate QueueTestsPrivate;

#define TYPE_DEQUE_TESTS (deque_tests_get_type ())
#define DEQUE_TESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_DEQUE_TESTS, DequeTests))
#define DEQUE_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_DEQUE_TESTS, DequeTestsClass))
#define IS_DEQUE_TESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_DEQUE_TESTS))
#define IS_DEQUE_TESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_DEQUE_TESTS))
#define DEQUE_TESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_DEQUE_TESTS, DequeTestsClass))

typedef struct _DequeTests DequeTests;
typedef struct _DequeTestsClass DequeTestsClass;
typedef struct _DequeTestsPrivate DequeTestsPrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _vala_assert(expr, msg) if G_LIKELY (expr) ; else g_assertion_message_expr (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 _QueueTests {
	CollectionTests parent_instance;
	QueueTestsPrivate * priv;
};

struct _QueueTestsClass {
	CollectionTestsClass parent_class;
};

struct _DequeTests {
	QueueTests parent_instance;
	DequeTestsPrivate * priv;
};

struct _DequeTestsClass {
	QueueTestsClass parent_class;
};

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

static gpointer deque_tests_parent_class = NULL;

GType gee_test_case_get_type (void) G_GNUC_CONST;
GType collection_tests_get_type (void) G_GNUC_CONST;
GType queue_tests_get_type (void) G_GNUC_CONST;
GType deque_tests_get_type (void) G_GNUC_CONST;
enum  {
	DEQUE_TESTS_DUMMY_PROPERTY
};
DequeTests* deque_tests_construct (GType object_type, const gchar* name);
QueueTests* queue_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 deque_tests_test_queue_use (DequeTests* self);
static void _deque_tests_test_queue_use_gee_test_case_test_method (gpointer self);
void deque_tests_test_stack_use (DequeTests* self);
static void _deque_tests_test_stack_use_gee_test_case_test_method (gpointer self);
void deque_tests_test_reversed_stack_use (DequeTests* self);
static void _deque_tests_test_reversed_stack_use_gee_test_case_test_method (gpointer self);
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 _deque_tests_test_queue_use_gee_test_case_test_method (gpointer self) {
	deque_tests_test_queue_use ((DequeTests*) self);
}


static void _deque_tests_test_stack_use_gee_test_case_test_method (gpointer self) {
	deque_tests_test_stack_use ((DequeTests*) self);
}


static void _deque_tests_test_reversed_stack_use_gee_test_case_test_method (gpointer self) {
	deque_tests_test_reversed_stack_use ((DequeTests*) self);
}


DequeTests* deque_tests_construct (GType object_type, const gchar* name) {
	DequeTests * self = NULL;
	const gchar* _tmp0_ = NULL;
	g_return_val_if_fail (name != NULL, NULL);
	_tmp0_ = name;
	self = (DequeTests*) queue_tests_construct (object_type, _tmp0_);
	gee_test_case_add_test ((GeeTestCase*) self, "[Deque] queue use", _deque_tests_test_queue_use_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	gee_test_case_add_test ((GeeTestCase*) self, "[Deque] stack use", _deque_tests_test_stack_use_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	gee_test_case_add_test ((GeeTestCase*) self, "[Deque] reversed stack use", _deque_tests_test_reversed_stack_use_gee_test_case_test_method, g_object_ref (self), g_object_unref);
	return self;
}


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


void deque_tests_test_queue_use (DequeTests* self) {
	GeeDeque* test_deque = NULL;
	GeeCollection* _tmp0_ = NULL;
	GeeDeque* _tmp1_ = NULL;
	GeeArrayList* recipient = NULL;
	GeeArrayList* _tmp2_ = NULL;
	GeeDeque* _tmp3_ = NULL;
	gchar** to_offer = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	gchar* _tmp17_ = NULL;
	gchar* _tmp18_ = NULL;
	gchar* _tmp19_ = NULL;
	gchar* _tmp20_ = NULL;
	gchar* _tmp21_ = NULL;
	gchar* _tmp22_ = NULL;
	gchar* _tmp23_ = NULL;
	gchar* _tmp24_ = NULL;
	gchar* _tmp25_ = NULL;
	gchar* _tmp26_ = NULL;
	gchar* _tmp27_ = NULL;
	gchar* _tmp28_ = NULL;
	gchar* _tmp29_ = NULL;
	gchar* _tmp30_ = NULL;
	gchar* _tmp31_ = NULL;
	gchar* _tmp32_ = NULL;
	gchar* _tmp33_ = NULL;
	gchar* _tmp34_ = NULL;
	gchar* _tmp35_ = NULL;
	gchar* _tmp36_ = NULL;
	gchar* _tmp37_ = NULL;
	gchar* _tmp38_ = NULL;
	gchar* _tmp39_ = NULL;
	gchar* _tmp40_ = NULL;
	gchar* _tmp41_ = NULL;
	gchar* _tmp42_ = NULL;
	gchar** _tmp43_ = NULL;
	gint to_offer_length1 = 0;
	gint _to_offer_size_ = 0;
	GeeDeque* _tmp78_ = NULL;
	gpointer _tmp79_ = NULL;
	gchar* _tmp80_ = NULL;
	GeeDeque* _tmp81_ = NULL;
	gpointer _tmp82_ = NULL;
	gchar* _tmp83_ = NULL;
	GeeArrayList* _tmp84_ = NULL;
	GeeDeque* _tmp94_ = NULL;
	gint _tmp95_ = 0;
	gint _tmp96_ = 0;
	gchar** _tmp97_ = NULL;
	gint _tmp97__length1 = 0;
	GeeDeque* _tmp98_ = NULL;
	GeeArrayList* _tmp99_ = NULL;
	gint _tmp100_ = 0;
	GeeDeque* _tmp101_ = NULL;
	gint _tmp102_ = 0;
	gint _tmp103_ = 0;
	gchar** _tmp104_ = NULL;
	gint _tmp104__length1 = 0;
	GeeArrayList* _tmp105_ = NULL;
	gint _tmp106_ = 0;
	gint _tmp107_ = 0;
	GeeArrayList* _tmp108_ = NULL;
	gpointer _tmp109_ = NULL;
	gchar* _tmp110_ = NULL;
	gchar** _tmp111_ = NULL;
	gint _tmp111__length1 = 0;
	const gchar* _tmp112_ = NULL;
	GeeDeque* _tmp113_ = NULL;
	GeeArrayList* _tmp114_ = NULL;
	gint _tmp115_ = 0;
	gchar** _tmp116_ = NULL;
	gint _tmp116__length1 = 0;
	GeeDeque* _tmp117_ = NULL;
	gint _tmp118_ = 0;
	gint _tmp119_ = 0;
	GeeArrayList* _tmp120_ = NULL;
	gint _tmp121_ = 0;
	gint _tmp122_ = 0;
	gchar** _tmp123_ = NULL;
	gint _tmp123__length1 = 0;
	GeeArrayList* _tmp135_ = NULL;
	GeeDeque* _tmp136_ = NULL;
	GeeArrayList* _tmp137_ = NULL;
	gint _tmp138_ = 0;
	GeeDeque* _tmp139_ = NULL;
	gint _tmp140_ = 0;
	gint _tmp141_ = 0;
	GeeArrayList* _tmp142_ = NULL;
	gint _tmp143_ = 0;
	gint _tmp144_ = 0;
	GeeArrayList* _tmp145_ = NULL;
	GeeDeque* _tmp146_ = NULL;
	GeeArrayList* _tmp147_ = NULL;
	gint _tmp148_ = 0;
	GeeDeque* _tmp149_ = NULL;
	gint _tmp150_ = 0;
	gint _tmp151_ = 0;
	GeeArrayList* _tmp152_ = NULL;
	gint _tmp153_ = 0;
	gint _tmp154_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((CollectionTests*) self)->test_collection;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_DEQUE) ? ((GeeDeque*) _tmp0_) : NULL);
	test_deque = _tmp1_;
	_tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
	recipient = _tmp2_;
	_tmp3_ = test_deque;
	_vala_assert (_tmp3_ != NULL, "test_deque != null");
	_tmp4_ = g_strdup ("one");
	_tmp5_ = g_strdup ("two");
	_tmp6_ = g_strdup ("three");
	_tmp7_ = g_strdup ("four");
	_tmp8_ = g_strdup ("five");
	_tmp9_ = g_strdup ("six");
	_tmp10_ = g_strdup ("seven");
	_tmp11_ = g_strdup ("\neight");
	_tmp12_ = g_strdup ("nine");
	_tmp13_ = g_strdup ("ten");
	_tmp14_ = g_strdup ("eleven");
	_tmp15_ = g_strdup ("twelve");
	_tmp16_ = g_strdup ("thirteen");
	_tmp17_ = g_strdup ("fourteen\n");
	_tmp18_ = g_strdup ("fifteen");
	_tmp19_ = g_strdup ("sixteen");
	_tmp20_ = g_strdup ("seventeen");
	_tmp21_ = g_strdup ("eighteen");
	_tmp22_ = g_strdup ("nineteen\n");
	_tmp23_ = g_strdup ("twenty");
	_tmp24_ = g_strdup ("twenty one");
	_tmp25_ = g_strdup ("twenty two");
	_tmp26_ = g_strdup ("twenty three");
	_tmp27_ = g_strdup ("twenty four");
	_tmp28_ = g_strdup ("twenty five");
	_tmp29_ = g_strdup ("twenty six");
	_tmp30_ = g_strdup ("twenty seven");
	_tmp31_ = g_strdup ("twenty eight");
	_tmp32_ = g_strdup ("twenty nine");
	_tmp33_ = g_strdup ("thirty");
	_tmp34_ = g_strdup ("thirty one");
	_tmp35_ = g_strdup ("thirty two");
	_tmp36_ = g_strdup ("thirty four");
	_tmp37_ = g_strdup ("thirty five");
	_tmp38_ = g_strdup ("thirty six");
	_tmp39_ = g_strdup ("thirty seven");
	_tmp40_ = g_strdup ("thirty eight");
	_tmp41_ = g_strdup ("thirty nine");
	_tmp42_ = g_strdup ("fourty");
	_tmp43_ = g_new0 (gchar*, 39 + 1);
	_tmp43_[0] = _tmp4_;
	_tmp43_[1] = _tmp5_;
	_tmp43_[2] = _tmp6_;
	_tmp43_[3] = _tmp7_;
	_tmp43_[4] = _tmp8_;
	_tmp43_[5] = _tmp9_;
	_tmp43_[6] = _tmp10_;
	_tmp43_[7] = _tmp11_;
	_tmp43_[8] = _tmp12_;
	_tmp43_[9] = _tmp13_;
	_tmp43_[10] = _tmp14_;
	_tmp43_[11] = _tmp15_;
	_tmp43_[12] = _tmp16_;
	_tmp43_[13] = _tmp17_;
	_tmp43_[14] = _tmp18_;
	_tmp43_[15] = _tmp19_;
	_tmp43_[16] = _tmp20_;
	_tmp43_[17] = _tmp21_;
	_tmp43_[18] = _tmp22_;
	_tmp43_[19] = _tmp23_;
	_tmp43_[20] = _tmp24_;
	_tmp43_[21] = _tmp25_;
	_tmp43_[22] = _tmp26_;
	_tmp43_[23] = _tmp27_;
	_tmp43_[24] = _tmp28_;
	_tmp43_[25] = _tmp29_;
	_tmp43_[26] = _tmp30_;
	_tmp43_[27] = _tmp31_;
	_tmp43_[28] = _tmp32_;
	_tmp43_[29] = _tmp33_;
	_tmp43_[30] = _tmp34_;
	_tmp43_[31] = _tmp35_;
	_tmp43_[32] = _tmp36_;
	_tmp43_[33] = _tmp37_;
	_tmp43_[34] = _tmp38_;
	_tmp43_[35] = _tmp39_;
	_tmp43_[36] = _tmp40_;
	_tmp43_[37] = _tmp41_;
	_tmp43_[38] = _tmp42_;
	to_offer = _tmp43_;
	to_offer_length1 = 39;
	_to_offer_size_ = to_offer_length1;
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp44_ = FALSE;
			_tmp44_ = TRUE;
			while (TRUE) {
				gint _tmp46_ = 0;
				gchar** _tmp47_ = NULL;
				gint _tmp47__length1 = 0;
				GeeDeque* _tmp48_ = NULL;
				gchar** _tmp49_ = NULL;
				gint _tmp49__length1 = 0;
				gint _tmp50_ = 0;
				const gchar* _tmp51_ = NULL;
				gboolean _tmp52_ = FALSE;
				GeeDeque* _tmp53_ = NULL;
				gint _tmp54_ = 0;
				gint _tmp55_ = 0;
				gint _tmp56_ = 0;
				if (!_tmp44_) {
					gint _tmp45_ = 0;
					_tmp45_ = i;
					i = _tmp45_ + 1;
				}
				_tmp44_ = FALSE;
				_tmp46_ = i;
				_tmp47_ = to_offer;
				_tmp47__length1 = to_offer_length1;
				if (!(_tmp46_ < _tmp47__length1)) {
					break;
				}
				_tmp48_ = test_deque;
				_tmp49_ = to_offer;
				_tmp49__length1 = to_offer_length1;
				_tmp50_ = i;
				_tmp51_ = _tmp49_[_tmp50_];
				_tmp52_ = gee_deque_offer_tail (_tmp48_, _tmp51_);
				_vala_assert (_tmp52_, "test_deque.offer_tail (to_offer[i])");
				_tmp53_ = test_deque;
				_tmp54_ = gee_collection_get_size ((GeeCollection*) _tmp53_);
				_tmp55_ = _tmp54_;
				_tmp56_ = i;
				_vala_assert (_tmp55_ == (_tmp56_ + 1), "test_deque.size == i + 1");
			}
		}
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp57_ = FALSE;
			_tmp57_ = TRUE;
			while (TRUE) {
				gint _tmp59_ = 0;
				gchar** _tmp60_ = NULL;
				gint _tmp60__length1 = 0;
				GeeDeque* _tmp61_ = NULL;
				gpointer _tmp62_ = NULL;
				gchar* _tmp63_ = NULL;
				gchar** _tmp64_ = NULL;
				gint _tmp64__length1 = 0;
				gint _tmp65_ = 0;
				const gchar* _tmp66_ = NULL;
				GeeDeque* _tmp67_ = NULL;
				gpointer _tmp68_ = NULL;
				gchar* _tmp69_ = NULL;
				gchar** _tmp70_ = NULL;
				gint _tmp70__length1 = 0;
				gint _tmp71_ = 0;
				const gchar* _tmp72_ = NULL;
				GeeDeque* _tmp73_ = NULL;
				gint _tmp74_ = 0;
				gint _tmp75_ = 0;
				gchar** _tmp76_ = NULL;
				gint _tmp76__length1 = 0;
				gint _tmp77_ = 0;
				if (!_tmp57_) {
					gint _tmp58_ = 0;
					_tmp58_ = i;
					i = _tmp58_ + 1;
				}
				_tmp57_ = FALSE;
				_tmp59_ = i;
				_tmp60_ = to_offer;
				_tmp60__length1 = to_offer_length1;
				if (!(_tmp59_ < _tmp60__length1)) {
					break;
				}
				_tmp61_ = test_deque;
				_tmp62_ = gee_deque_peek_head (_tmp61_);
				_tmp63_ = (gchar*) _tmp62_;
				_tmp64_ = to_offer;
				_tmp64__length1 = to_offer_length1;
				_tmp65_ = i;
				_tmp66_ = _tmp64_[_tmp65_];
				_vala_assert (g_strcmp0 (_tmp63_, _tmp66_) == 0, "test_deque.peek_head () == to_offer[i]");
				_g_free0 (_tmp63_);
				_tmp67_ = test_deque;
				_tmp68_ = gee_deque_poll_head (_tmp67_);
				_tmp69_ = (gchar*) _tmp68_;
				_tmp70_ = to_offer;
				_tmp70__length1 = to_offer_length1;
				_tmp71_ = i;
				_tmp72_ = _tmp70_[_tmp71_];
				_vala_assert (g_strcmp0 (_tmp69_, _tmp72_) == 0, "test_deque.poll_head () == to_offer[i]");
				_g_free0 (_tmp69_);
				_tmp73_ = test_deque;
				_tmp74_ = gee_collection_get_size ((GeeCollection*) _tmp73_);
				_tmp75_ = _tmp74_;
				_tmp76_ = to_offer;
				_tmp76__length1 = to_offer_length1;
				_tmp77_ = i;
				_vala_assert (_tmp75_ == ((_tmp76__length1 - _tmp77_) - 1), "test_deque.size == to_offer.length - i - 1");
			}
		}
	}
	_tmp78_ = test_deque;
	_tmp79_ = gee_deque_peek_head (_tmp78_);
	_tmp80_ = (gchar*) _tmp79_;
	_vala_assert (_tmp80_ == NULL, "test_deque.peek_head () == null");
	_g_free0 (_tmp80_);
	_tmp81_ = test_deque;
	_tmp82_ = gee_deque_poll_head (_tmp81_);
	_tmp83_ = (gchar*) _tmp82_;
	_vala_assert (_tmp83_ == NULL, "test_deque.poll_head () == null");
	_g_free0 (_tmp83_);
	_tmp84_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp84_);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp85_ = FALSE;
			_tmp85_ = TRUE;
			while (TRUE) {
				gint _tmp87_ = 0;
				gchar** _tmp88_ = NULL;
				gint _tmp88__length1 = 0;
				GeeDeque* _tmp89_ = NULL;
				gchar** _tmp90_ = NULL;
				gint _tmp90__length1 = 0;
				gint _tmp91_ = 0;
				const gchar* _tmp92_ = NULL;
				gboolean _tmp93_ = FALSE;
				if (!_tmp85_) {
					gint _tmp86_ = 0;
					_tmp86_ = i;
					i = _tmp86_ + 1;
				}
				_tmp85_ = FALSE;
				_tmp87_ = i;
				_tmp88_ = to_offer;
				_tmp88__length1 = to_offer_length1;
				if (!(_tmp87_ < _tmp88__length1)) {
					break;
				}
				_tmp89_ = test_deque;
				_tmp90_ = to_offer;
				_tmp90__length1 = to_offer_length1;
				_tmp91_ = i;
				_tmp92_ = _tmp90_[_tmp91_];
				_tmp93_ = gee_deque_offer_tail (_tmp89_, _tmp92_);
				_vala_assert (_tmp93_, "test_deque.offer_tail (to_offer[i])");
			}
		}
	}
	_tmp94_ = test_deque;
	_tmp95_ = gee_collection_get_size ((GeeCollection*) _tmp94_);
	_tmp96_ = _tmp95_;
	_tmp97_ = to_offer;
	_tmp97__length1 = to_offer_length1;
	_vala_assert (_tmp96_ == _tmp97__length1, "test_deque.size == to_offer.length");
	_tmp98_ = test_deque;
	_tmp99_ = recipient;
	_tmp100_ = gee_deque_drain_head (_tmp98_, (GeeCollection*) _tmp99_, 1);
	_vala_assert (_tmp100_ == 1, "test_deque.drain_head (recipient, 1) == 1");
	_tmp101_ = test_deque;
	_tmp102_ = gee_collection_get_size ((GeeCollection*) _tmp101_);
	_tmp103_ = _tmp102_;
	_tmp104_ = to_offer;
	_tmp104__length1 = to_offer_length1;
	_vala_assert (_tmp103_ == (_tmp104__length1 - 1), "test_deque.size == to_offer.length - 1");
	_tmp105_ = recipient;
	_tmp106_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp105_);
	_tmp107_ = _tmp106_;
	_vala_assert (_tmp107_ == 1, "recipient.size == 1");
	_tmp108_ = recipient;
	_tmp109_ = gee_abstract_list_get ((GeeAbstractList*) _tmp108_, 0);
	_tmp110_ = (gchar*) _tmp109_;
	_tmp111_ = to_offer;
	_tmp111__length1 = to_offer_length1;
	_tmp112_ = _tmp111_[0];
	_vala_assert (g_strcmp0 (_tmp110_, _tmp112_) == 0, "recipient.get (0) == to_offer[0]");
	_g_free0 (_tmp110_);
	_tmp113_ = test_deque;
	_tmp114_ = recipient;
	_tmp115_ = gee_deque_drain_head (_tmp113_, (GeeCollection*) _tmp114_, -1);
	_tmp116_ = to_offer;
	_tmp116__length1 = to_offer_length1;
	_vala_assert (_tmp115_ == (_tmp116__length1 - 1), "test_deque.drain_head (recipient) == to_offer.length - 1");
	_tmp117_ = test_deque;
	_tmp118_ = gee_collection_get_size ((GeeCollection*) _tmp117_);
	_tmp119_ = _tmp118_;
	_vala_assert (_tmp119_ == 0, "test_deque.size == 0");
	_tmp120_ = recipient;
	_tmp121_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp120_);
	_tmp122_ = _tmp121_;
	_tmp123_ = to_offer;
	_tmp123__length1 = to_offer_length1;
	_vala_assert (_tmp122_ == _tmp123__length1, "recipient.size == to_offer.length");
	{
		gint i = 0;
		i = 1;
		{
			gboolean _tmp124_ = FALSE;
			_tmp124_ = TRUE;
			while (TRUE) {
				gint _tmp126_ = 0;
				gchar** _tmp127_ = NULL;
				gint _tmp127__length1 = 0;
				GeeArrayList* _tmp128_ = NULL;
				gint _tmp129_ = 0;
				gpointer _tmp130_ = NULL;
				gchar* _tmp131_ = NULL;
				gchar** _tmp132_ = NULL;
				gint _tmp132__length1 = 0;
				gint _tmp133_ = 0;
				const gchar* _tmp134_ = NULL;
				if (!_tmp124_) {
					gint _tmp125_ = 0;
					_tmp125_ = i;
					i = _tmp125_ + 1;
				}
				_tmp124_ = FALSE;
				_tmp126_ = i;
				_tmp127_ = to_offer;
				_tmp127__length1 = to_offer_length1;
				if (!(_tmp126_ < _tmp127__length1)) {
					break;
				}
				_tmp128_ = recipient;
				_tmp129_ = i;
				_tmp130_ = gee_abstract_list_get ((GeeAbstractList*) _tmp128_, _tmp129_);
				_tmp131_ = (gchar*) _tmp130_;
				_tmp132_ = to_offer;
				_tmp132__length1 = to_offer_length1;
				_tmp133_ = i;
				_tmp134_ = _tmp132_[_tmp133_];
				_vala_assert (g_strcmp0 (_tmp131_, _tmp134_) == 0, "recipient.get (i) == to_offer[i]");
				_g_free0 (_tmp131_);
			}
		}
	}
	_tmp135_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp135_);
	_tmp136_ = test_deque;
	_tmp137_ = recipient;
	_tmp138_ = gee_deque_drain_head (_tmp136_, (GeeCollection*) _tmp137_, 1);
	_vala_assert (_tmp138_ == 0, "test_deque.drain_head (recipient, 1) == 0");
	_tmp139_ = test_deque;
	_tmp140_ = gee_collection_get_size ((GeeCollection*) _tmp139_);
	_tmp141_ = _tmp140_;
	_vala_assert (_tmp141_ == 0, "test_deque.size == 0");
	_tmp142_ = recipient;
	_tmp143_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp142_);
	_tmp144_ = _tmp143_;
	_vala_assert (_tmp144_ == 0, "recipient.size == 0");
	_tmp145_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp145_);
	_tmp146_ = test_deque;
	_tmp147_ = recipient;
	_tmp148_ = gee_deque_drain_head (_tmp146_, (GeeCollection*) _tmp147_, -1);
	_vala_assert (_tmp148_ == 0, "test_deque.drain_head (recipient) == 0");
	_tmp149_ = test_deque;
	_tmp150_ = gee_collection_get_size ((GeeCollection*) _tmp149_);
	_tmp151_ = _tmp150_;
	_vala_assert (_tmp151_ == 0, "test_deque.size == 0");
	_tmp152_ = recipient;
	_tmp153_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp152_);
	_tmp154_ = _tmp153_;
	_vala_assert (_tmp154_ == 0, "recipient.size == 0");
	to_offer = (_vala_array_free (to_offer, to_offer_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (recipient);
	_g_object_unref0 (test_deque);
}


void deque_tests_test_stack_use (DequeTests* self) {
	GeeDeque* test_deque = NULL;
	GeeCollection* _tmp0_ = NULL;
	GeeDeque* _tmp1_ = NULL;
	GeeArrayList* recipient = NULL;
	GeeArrayList* _tmp2_ = NULL;
	gchar** to_offer = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	gchar* _tmp17_ = NULL;
	gchar* _tmp18_ = NULL;
	gchar* _tmp19_ = NULL;
	gchar* _tmp20_ = NULL;
	gchar* _tmp21_ = NULL;
	gchar* _tmp22_ = NULL;
	gchar* _tmp23_ = NULL;
	gchar* _tmp24_ = NULL;
	gchar* _tmp25_ = NULL;
	gchar* _tmp26_ = NULL;
	gchar* _tmp27_ = NULL;
	gchar* _tmp28_ = NULL;
	gchar* _tmp29_ = NULL;
	gchar* _tmp30_ = NULL;
	gchar* _tmp31_ = NULL;
	gchar* _tmp32_ = NULL;
	gchar* _tmp33_ = NULL;
	gchar* _tmp34_ = NULL;
	gchar* _tmp35_ = NULL;
	gchar* _tmp36_ = NULL;
	gchar* _tmp37_ = NULL;
	gchar* _tmp38_ = NULL;
	gchar* _tmp39_ = NULL;
	gchar* _tmp40_ = NULL;
	gchar* _tmp41_ = NULL;
	gchar** _tmp42_ = NULL;
	gint to_offer_length1 = 0;
	gint _to_offer_size_ = 0;
	GeeDeque* _tmp43_ = NULL;
	GeeDeque* _tmp77_ = NULL;
	gpointer _tmp78_ = NULL;
	gchar* _tmp79_ = NULL;
	GeeDeque* _tmp80_ = NULL;
	gpointer _tmp81_ = NULL;
	gchar* _tmp82_ = NULL;
	GeeArrayList* _tmp83_ = NULL;
	GeeDeque* _tmp93_ = NULL;
	gint _tmp94_ = 0;
	gint _tmp95_ = 0;
	gchar** _tmp96_ = NULL;
	gint _tmp96__length1 = 0;
	GeeDeque* _tmp97_ = NULL;
	GeeArrayList* _tmp98_ = NULL;
	gint _tmp99_ = 0;
	GeeDeque* _tmp100_ = NULL;
	gint _tmp101_ = 0;
	gint _tmp102_ = 0;
	gchar** _tmp103_ = NULL;
	gint _tmp103__length1 = 0;
	GeeArrayList* _tmp104_ = NULL;
	gint _tmp105_ = 0;
	gint _tmp106_ = 0;
	GeeArrayList* _tmp107_ = NULL;
	gpointer _tmp108_ = NULL;
	gchar* _tmp109_ = NULL;
	gchar** _tmp110_ = NULL;
	gint _tmp110__length1 = 0;
	gchar** _tmp111_ = NULL;
	gint _tmp111__length1 = 0;
	const gchar* _tmp112_ = NULL;
	GeeDeque* _tmp113_ = NULL;
	GeeArrayList* _tmp114_ = NULL;
	gint _tmp115_ = 0;
	gchar** _tmp116_ = NULL;
	gint _tmp116__length1 = 0;
	GeeDeque* _tmp117_ = NULL;
	gint _tmp118_ = 0;
	gint _tmp119_ = 0;
	GeeArrayList* _tmp120_ = NULL;
	gint _tmp121_ = 0;
	gint _tmp122_ = 0;
	gchar** _tmp123_ = NULL;
	gint _tmp123__length1 = 0;
	GeeArrayList* _tmp136_ = NULL;
	GeeDeque* _tmp137_ = NULL;
	GeeArrayList* _tmp138_ = NULL;
	gint _tmp139_ = 0;
	GeeDeque* _tmp140_ = NULL;
	gint _tmp141_ = 0;
	gint _tmp142_ = 0;
	GeeArrayList* _tmp143_ = NULL;
	gint _tmp144_ = 0;
	gint _tmp145_ = 0;
	GeeArrayList* _tmp146_ = NULL;
	GeeDeque* _tmp147_ = NULL;
	GeeArrayList* _tmp148_ = NULL;
	gint _tmp149_ = 0;
	GeeDeque* _tmp150_ = NULL;
	gint _tmp151_ = 0;
	gint _tmp152_ = 0;
	GeeArrayList* _tmp153_ = NULL;
	gint _tmp154_ = 0;
	gint _tmp155_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((CollectionTests*) self)->test_collection;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_DEQUE) ? ((GeeDeque*) _tmp0_) : NULL);
	test_deque = _tmp1_;
	_tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
	recipient = _tmp2_;
	_tmp3_ = g_strdup ("one");
	_tmp4_ = g_strdup ("two");
	_tmp5_ = g_strdup ("three");
	_tmp6_ = g_strdup ("four");
	_tmp7_ = g_strdup ("five");
	_tmp8_ = g_strdup ("six");
	_tmp9_ = g_strdup ("seven");
	_tmp10_ = g_strdup ("\neight");
	_tmp11_ = g_strdup ("nine");
	_tmp12_ = g_strdup ("ten");
	_tmp13_ = g_strdup ("eleven");
	_tmp14_ = g_strdup ("twelve");
	_tmp15_ = g_strdup ("thirteen");
	_tmp16_ = g_strdup ("fourteen\n");
	_tmp17_ = g_strdup ("fifteen");
	_tmp18_ = g_strdup ("sixteen");
	_tmp19_ = g_strdup ("seventeen");
	_tmp20_ = g_strdup ("eighteen");
	_tmp21_ = g_strdup ("nineteen\n");
	_tmp22_ = g_strdup ("twenty");
	_tmp23_ = g_strdup ("twenty one");
	_tmp24_ = g_strdup ("twenty two");
	_tmp25_ = g_strdup ("twenty three");
	_tmp26_ = g_strdup ("twenty four");
	_tmp27_ = g_strdup ("twenty five");
	_tmp28_ = g_strdup ("twenty six");
	_tmp29_ = g_strdup ("twenty seven");
	_tmp30_ = g_strdup ("twenty eight");
	_tmp31_ = g_strdup ("twenty nine");
	_tmp32_ = g_strdup ("thirty");
	_tmp33_ = g_strdup ("thirty one");
	_tmp34_ = g_strdup ("thirty two");
	_tmp35_ = g_strdup ("thirty four");
	_tmp36_ = g_strdup ("thirty five");
	_tmp37_ = g_strdup ("thirty six");
	_tmp38_ = g_strdup ("thirty seven");
	_tmp39_ = g_strdup ("thirty eight");
	_tmp40_ = g_strdup ("thirty nine");
	_tmp41_ = g_strdup ("fourty");
	_tmp42_ = g_new0 (gchar*, 39 + 1);
	_tmp42_[0] = _tmp3_;
	_tmp42_[1] = _tmp4_;
	_tmp42_[2] = _tmp5_;
	_tmp42_[3] = _tmp6_;
	_tmp42_[4] = _tmp7_;
	_tmp42_[5] = _tmp8_;
	_tmp42_[6] = _tmp9_;
	_tmp42_[7] = _tmp10_;
	_tmp42_[8] = _tmp11_;
	_tmp42_[9] = _tmp12_;
	_tmp42_[10] = _tmp13_;
	_tmp42_[11] = _tmp14_;
	_tmp42_[12] = _tmp15_;
	_tmp42_[13] = _tmp16_;
	_tmp42_[14] = _tmp17_;
	_tmp42_[15] = _tmp18_;
	_tmp42_[16] = _tmp19_;
	_tmp42_[17] = _tmp20_;
	_tmp42_[18] = _tmp21_;
	_tmp42_[19] = _tmp22_;
	_tmp42_[20] = _tmp23_;
	_tmp42_[21] = _tmp24_;
	_tmp42_[22] = _tmp25_;
	_tmp42_[23] = _tmp26_;
	_tmp42_[24] = _tmp27_;
	_tmp42_[25] = _tmp28_;
	_tmp42_[26] = _tmp29_;
	_tmp42_[27] = _tmp30_;
	_tmp42_[28] = _tmp31_;
	_tmp42_[29] = _tmp32_;
	_tmp42_[30] = _tmp33_;
	_tmp42_[31] = _tmp34_;
	_tmp42_[32] = _tmp35_;
	_tmp42_[33] = _tmp36_;
	_tmp42_[34] = _tmp37_;
	_tmp42_[35] = _tmp38_;
	_tmp42_[36] = _tmp39_;
	_tmp42_[37] = _tmp40_;
	_tmp42_[38] = _tmp41_;
	to_offer = _tmp42_;
	to_offer_length1 = 39;
	_to_offer_size_ = to_offer_length1;
	_tmp43_ = test_deque;
	_vala_assert (_tmp43_ != NULL, "test_deque != null");
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp44_ = FALSE;
			_tmp44_ = TRUE;
			while (TRUE) {
				gint _tmp46_ = 0;
				gchar** _tmp47_ = NULL;
				gint _tmp47__length1 = 0;
				GeeDeque* _tmp48_ = NULL;
				gchar** _tmp49_ = NULL;
				gint _tmp49__length1 = 0;
				gint _tmp50_ = 0;
				const gchar* _tmp51_ = NULL;
				gboolean _tmp52_ = FALSE;
				GeeDeque* _tmp53_ = NULL;
				gint _tmp54_ = 0;
				gint _tmp55_ = 0;
				gint _tmp56_ = 0;
				if (!_tmp44_) {
					gint _tmp45_ = 0;
					_tmp45_ = i;
					i = _tmp45_ + 1;
				}
				_tmp44_ = FALSE;
				_tmp46_ = i;
				_tmp47_ = to_offer;
				_tmp47__length1 = to_offer_length1;
				if (!(_tmp46_ < _tmp47__length1)) {
					break;
				}
				_tmp48_ = test_deque;
				_tmp49_ = to_offer;
				_tmp49__length1 = to_offer_length1;
				_tmp50_ = i;
				_tmp51_ = _tmp49_[_tmp50_];
				_tmp52_ = gee_deque_offer_head (_tmp48_, _tmp51_);
				_vala_assert (_tmp52_, "test_deque.offer_head (to_offer[i])");
				_tmp53_ = test_deque;
				_tmp54_ = gee_collection_get_size ((GeeCollection*) _tmp53_);
				_tmp55_ = _tmp54_;
				_tmp56_ = i;
				_vala_assert (_tmp55_ == (_tmp56_ + 1), "test_deque.size == i + 1");
			}
		}
	}
	{
		gint i = 0;
		gchar** _tmp57_ = NULL;
		gint _tmp57__length1 = 0;
		_tmp57_ = to_offer;
		_tmp57__length1 = to_offer_length1;
		i = _tmp57__length1 - 1;
		{
			gboolean _tmp58_ = FALSE;
			_tmp58_ = TRUE;
			while (TRUE) {
				gint _tmp60_ = 0;
				GeeDeque* _tmp61_ = NULL;
				gpointer _tmp62_ = NULL;
				gchar* _tmp63_ = NULL;
				gchar** _tmp64_ = NULL;
				gint _tmp64__length1 = 0;
				gint _tmp65_ = 0;
				const gchar* _tmp66_ = NULL;
				GeeDeque* _tmp67_ = NULL;
				gpointer _tmp68_ = NULL;
				gchar* _tmp69_ = NULL;
				gchar** _tmp70_ = NULL;
				gint _tmp70__length1 = 0;
				gint _tmp71_ = 0;
				const gchar* _tmp72_ = NULL;
				GeeDeque* _tmp73_ = NULL;
				gint _tmp74_ = 0;
				gint _tmp75_ = 0;
				gint _tmp76_ = 0;
				if (!_tmp58_) {
					gint _tmp59_ = 0;
					_tmp59_ = i;
					i = _tmp59_ - 1;
				}
				_tmp58_ = FALSE;
				_tmp60_ = i;
				if (!(_tmp60_ >= 0)) {
					break;
				}
				_tmp61_ = test_deque;
				_tmp62_ = gee_deque_peek_head (_tmp61_);
				_tmp63_ = (gchar*) _tmp62_;
				_tmp64_ = to_offer;
				_tmp64__length1 = to_offer_length1;
				_tmp65_ = i;
				_tmp66_ = _tmp64_[_tmp65_];
				_vala_assert (g_strcmp0 (_tmp63_, _tmp66_) == 0, "test_deque.peek_head () == to_offer[i]");
				_g_free0 (_tmp63_);
				_tmp67_ = test_deque;
				_tmp68_ = gee_deque_poll_head (_tmp67_);
				_tmp69_ = (gchar*) _tmp68_;
				_tmp70_ = to_offer;
				_tmp70__length1 = to_offer_length1;
				_tmp71_ = i;
				_tmp72_ = _tmp70_[_tmp71_];
				_vala_assert (g_strcmp0 (_tmp69_, _tmp72_) == 0, "test_deque.poll_head () == to_offer[i]");
				_g_free0 (_tmp69_);
				_tmp73_ = test_deque;
				_tmp74_ = gee_collection_get_size ((GeeCollection*) _tmp73_);
				_tmp75_ = _tmp74_;
				_tmp76_ = i;
				_vala_assert (_tmp75_ == _tmp76_, "test_deque.size == i");
			}
		}
	}
	_tmp77_ = test_deque;
	_tmp78_ = gee_deque_peek_head (_tmp77_);
	_tmp79_ = (gchar*) _tmp78_;
	_vala_assert (_tmp79_ == NULL, "test_deque.peek_head () == null");
	_g_free0 (_tmp79_);
	_tmp80_ = test_deque;
	_tmp81_ = gee_deque_poll_head (_tmp80_);
	_tmp82_ = (gchar*) _tmp81_;
	_vala_assert (_tmp82_ == NULL, "test_deque.poll_head () == null");
	_g_free0 (_tmp82_);
	_tmp83_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp83_);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp84_ = FALSE;
			_tmp84_ = TRUE;
			while (TRUE) {
				gint _tmp86_ = 0;
				gchar** _tmp87_ = NULL;
				gint _tmp87__length1 = 0;
				GeeDeque* _tmp88_ = NULL;
				gchar** _tmp89_ = NULL;
				gint _tmp89__length1 = 0;
				gint _tmp90_ = 0;
				const gchar* _tmp91_ = NULL;
				gboolean _tmp92_ = FALSE;
				if (!_tmp84_) {
					gint _tmp85_ = 0;
					_tmp85_ = i;
					i = _tmp85_ + 1;
				}
				_tmp84_ = FALSE;
				_tmp86_ = i;
				_tmp87_ = to_offer;
				_tmp87__length1 = to_offer_length1;
				if (!(_tmp86_ < _tmp87__length1)) {
					break;
				}
				_tmp88_ = test_deque;
				_tmp89_ = to_offer;
				_tmp89__length1 = to_offer_length1;
				_tmp90_ = i;
				_tmp91_ = _tmp89_[_tmp90_];
				_tmp92_ = gee_deque_offer_head (_tmp88_, _tmp91_);
				_vala_assert (_tmp92_, "test_deque.offer_head (to_offer[i])");
			}
		}
	}
	_tmp93_ = test_deque;
	_tmp94_ = gee_collection_get_size ((GeeCollection*) _tmp93_);
	_tmp95_ = _tmp94_;
	_tmp96_ = to_offer;
	_tmp96__length1 = to_offer_length1;
	_vala_assert (_tmp95_ == _tmp96__length1, "test_deque.size == to_offer.length");
	_tmp97_ = test_deque;
	_tmp98_ = recipient;
	_tmp99_ = gee_deque_drain_head (_tmp97_, (GeeCollection*) _tmp98_, 1);
	_vala_assert (_tmp99_ == 1, "test_deque.drain_head (recipient, 1) == 1");
	_tmp100_ = test_deque;
	_tmp101_ = gee_collection_get_size ((GeeCollection*) _tmp100_);
	_tmp102_ = _tmp101_;
	_tmp103_ = to_offer;
	_tmp103__length1 = to_offer_length1;
	_vala_assert (_tmp102_ == (_tmp103__length1 - 1), "test_deque.size == to_offer.length - 1");
	_tmp104_ = recipient;
	_tmp105_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp104_);
	_tmp106_ = _tmp105_;
	_vala_assert (_tmp106_ == 1, "recipient.size == 1");
	_tmp107_ = recipient;
	_tmp108_ = gee_abstract_list_get ((GeeAbstractList*) _tmp107_, 0);
	_tmp109_ = (gchar*) _tmp108_;
	_tmp110_ = to_offer;
	_tmp110__length1 = to_offer_length1;
	_tmp111_ = to_offer;
	_tmp111__length1 = to_offer_length1;
	_tmp112_ = _tmp110_[_tmp111__length1 - 1];
	_vala_assert (g_strcmp0 (_tmp109_, _tmp112_) == 0, "recipient.get (0) == to_offer[to_offer.length - 1]");
	_g_free0 (_tmp109_);
	_tmp113_ = test_deque;
	_tmp114_ = recipient;
	_tmp115_ = gee_deque_drain_head (_tmp113_, (GeeCollection*) _tmp114_, -1);
	_tmp116_ = to_offer;
	_tmp116__length1 = to_offer_length1;
	_vala_assert (_tmp115_ == (_tmp116__length1 - 1), "test_deque.drain_head (recipient) == to_offer.length - 1");
	_tmp117_ = test_deque;
	_tmp118_ = gee_collection_get_size ((GeeCollection*) _tmp117_);
	_tmp119_ = _tmp118_;
	_vala_assert (_tmp119_ == 0, "test_deque.size == 0");
	_tmp120_ = recipient;
	_tmp121_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp120_);
	_tmp122_ = _tmp121_;
	_tmp123_ = to_offer;
	_tmp123__length1 = to_offer_length1;
	_vala_assert (_tmp122_ == _tmp123__length1, "recipient.size == to_offer.length");
	{
		gint i = 0;
		i = 1;
		{
			gboolean _tmp124_ = FALSE;
			_tmp124_ = TRUE;
			while (TRUE) {
				gint _tmp126_ = 0;
				gchar** _tmp127_ = NULL;
				gint _tmp127__length1 = 0;
				GeeArrayList* _tmp128_ = NULL;
				gint _tmp129_ = 0;
				gpointer _tmp130_ = NULL;
				gchar* _tmp131_ = NULL;
				gchar** _tmp132_ = NULL;
				gint _tmp132__length1 = 0;
				gchar** _tmp133_ = NULL;
				gint _tmp133__length1 = 0;
				gint _tmp134_ = 0;
				const gchar* _tmp135_ = NULL;
				if (!_tmp124_) {
					gint _tmp125_ = 0;
					_tmp125_ = i;
					i = _tmp125_ + 1;
				}
				_tmp124_ = FALSE;
				_tmp126_ = i;
				_tmp127_ = to_offer;
				_tmp127__length1 = to_offer_length1;
				if (!(_tmp126_ < _tmp127__length1)) {
					break;
				}
				_tmp128_ = recipient;
				_tmp129_ = i;
				_tmp130_ = gee_abstract_list_get ((GeeAbstractList*) _tmp128_, _tmp129_);
				_tmp131_ = (gchar*) _tmp130_;
				_tmp132_ = to_offer;
				_tmp132__length1 = to_offer_length1;
				_tmp133_ = to_offer;
				_tmp133__length1 = to_offer_length1;
				_tmp134_ = i;
				_tmp135_ = _tmp132_[(_tmp133__length1 - _tmp134_) - 1];
				_vala_assert (g_strcmp0 (_tmp131_, _tmp135_) == 0, "recipient.get (i) == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp131_);
			}
		}
	}
	_tmp136_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp136_);
	_tmp137_ = test_deque;
	_tmp138_ = recipient;
	_tmp139_ = gee_deque_drain_head (_tmp137_, (GeeCollection*) _tmp138_, 1);
	_vala_assert (_tmp139_ == 0, "test_deque.drain_head (recipient, 1) == 0");
	_tmp140_ = test_deque;
	_tmp141_ = gee_collection_get_size ((GeeCollection*) _tmp140_);
	_tmp142_ = _tmp141_;
	_vala_assert (_tmp142_ == 0, "test_deque.size == 0");
	_tmp143_ = recipient;
	_tmp144_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp143_);
	_tmp145_ = _tmp144_;
	_vala_assert (_tmp145_ == 0, "recipient.size == 0");
	_tmp146_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp146_);
	_tmp147_ = test_deque;
	_tmp148_ = recipient;
	_tmp149_ = gee_deque_drain_head (_tmp147_, (GeeCollection*) _tmp148_, -1);
	_vala_assert (_tmp149_ == 0, "test_deque.drain_head (recipient) == 0");
	_tmp150_ = test_deque;
	_tmp151_ = gee_collection_get_size ((GeeCollection*) _tmp150_);
	_tmp152_ = _tmp151_;
	_vala_assert (_tmp152_ == 0, "test_deque.size == 0");
	_tmp153_ = recipient;
	_tmp154_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp153_);
	_tmp155_ = _tmp154_;
	_vala_assert (_tmp155_ == 0, "recipient.size == 0");
	to_offer = (_vala_array_free (to_offer, to_offer_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (recipient);
	_g_object_unref0 (test_deque);
}


void deque_tests_test_reversed_stack_use (DequeTests* self) {
	GeeDeque* test_deque = NULL;
	GeeCollection* _tmp0_ = NULL;
	GeeDeque* _tmp1_ = NULL;
	GeeArrayList* recipient = NULL;
	GeeArrayList* _tmp2_ = NULL;
	gchar** to_offer = NULL;
	gchar* _tmp3_ = NULL;
	gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	gchar* _tmp6_ = NULL;
	gchar* _tmp7_ = NULL;
	gchar* _tmp8_ = NULL;
	gchar* _tmp9_ = NULL;
	gchar* _tmp10_ = NULL;
	gchar* _tmp11_ = NULL;
	gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	gchar* _tmp15_ = NULL;
	gchar* _tmp16_ = NULL;
	gchar* _tmp17_ = NULL;
	gchar* _tmp18_ = NULL;
	gchar* _tmp19_ = NULL;
	gchar* _tmp20_ = NULL;
	gchar* _tmp21_ = NULL;
	gchar* _tmp22_ = NULL;
	gchar* _tmp23_ = NULL;
	gchar* _tmp24_ = NULL;
	gchar* _tmp25_ = NULL;
	gchar* _tmp26_ = NULL;
	gchar* _tmp27_ = NULL;
	gchar* _tmp28_ = NULL;
	gchar* _tmp29_ = NULL;
	gchar* _tmp30_ = NULL;
	gchar* _tmp31_ = NULL;
	gchar* _tmp32_ = NULL;
	gchar* _tmp33_ = NULL;
	gchar* _tmp34_ = NULL;
	gchar* _tmp35_ = NULL;
	gchar* _tmp36_ = NULL;
	gchar* _tmp37_ = NULL;
	gchar* _tmp38_ = NULL;
	gchar* _tmp39_ = NULL;
	gchar* _tmp40_ = NULL;
	gchar* _tmp41_ = NULL;
	gchar** _tmp42_ = NULL;
	gint to_offer_length1 = 0;
	gint _to_offer_size_ = 0;
	GeeDeque* _tmp43_ = NULL;
	GeeDeque* _tmp80_ = NULL;
	gpointer _tmp81_ = NULL;
	gchar* _tmp82_ = NULL;
	GeeDeque* _tmp83_ = NULL;
	gpointer _tmp84_ = NULL;
	gchar* _tmp85_ = NULL;
	GeeArrayList* _tmp86_ = NULL;
	GeeDeque* _tmp96_ = NULL;
	gint _tmp97_ = 0;
	gint _tmp98_ = 0;
	gchar** _tmp99_ = NULL;
	gint _tmp99__length1 = 0;
	GeeDeque* _tmp100_ = NULL;
	GeeArrayList* _tmp101_ = NULL;
	gint _tmp102_ = 0;
	GeeDeque* _tmp103_ = NULL;
	gint _tmp104_ = 0;
	gint _tmp105_ = 0;
	gchar** _tmp106_ = NULL;
	gint _tmp106__length1 = 0;
	GeeArrayList* _tmp107_ = NULL;
	gint _tmp108_ = 0;
	gint _tmp109_ = 0;
	GeeArrayList* _tmp110_ = NULL;
	gpointer _tmp111_ = NULL;
	gchar* _tmp112_ = NULL;
	gchar** _tmp113_ = NULL;
	gint _tmp113__length1 = 0;
	gchar** _tmp114_ = NULL;
	gint _tmp114__length1 = 0;
	const gchar* _tmp115_ = NULL;
	GeeDeque* _tmp116_ = NULL;
	GeeArrayList* _tmp117_ = NULL;
	gint _tmp118_ = 0;
	gchar** _tmp119_ = NULL;
	gint _tmp119__length1 = 0;
	GeeDeque* _tmp120_ = NULL;
	gint _tmp121_ = 0;
	gint _tmp122_ = 0;
	GeeArrayList* _tmp123_ = NULL;
	gint _tmp124_ = 0;
	gint _tmp125_ = 0;
	gchar** _tmp126_ = NULL;
	gint _tmp126__length1 = 0;
	GeeArrayList* _tmp139_ = NULL;
	GeeDeque* _tmp140_ = NULL;
	GeeArrayList* _tmp141_ = NULL;
	gint _tmp142_ = 0;
	GeeDeque* _tmp143_ = NULL;
	gint _tmp144_ = 0;
	gint _tmp145_ = 0;
	GeeArrayList* _tmp146_ = NULL;
	gint _tmp147_ = 0;
	gint _tmp148_ = 0;
	GeeArrayList* _tmp149_ = NULL;
	GeeDeque* _tmp150_ = NULL;
	GeeArrayList* _tmp151_ = NULL;
	gint _tmp152_ = 0;
	GeeDeque* _tmp153_ = NULL;
	gint _tmp154_ = 0;
	gint _tmp155_ = 0;
	GeeArrayList* _tmp156_ = NULL;
	gint _tmp157_ = 0;
	gint _tmp158_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = ((CollectionTests*) self)->test_collection;
	_tmp1_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, GEE_TYPE_DEQUE) ? ((GeeDeque*) _tmp0_) : NULL);
	test_deque = _tmp1_;
	_tmp2_ = gee_array_list_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, g_free, NULL, NULL, NULL);
	recipient = _tmp2_;
	_tmp3_ = g_strdup ("one");
	_tmp4_ = g_strdup ("two");
	_tmp5_ = g_strdup ("three");
	_tmp6_ = g_strdup ("four");
	_tmp7_ = g_strdup ("five");
	_tmp8_ = g_strdup ("six");
	_tmp9_ = g_strdup ("seven");
	_tmp10_ = g_strdup ("\neight");
	_tmp11_ = g_strdup ("nine");
	_tmp12_ = g_strdup ("ten");
	_tmp13_ = g_strdup ("eleven");
	_tmp14_ = g_strdup ("twelve");
	_tmp15_ = g_strdup ("thirteen");
	_tmp16_ = g_strdup ("fourteen\n");
	_tmp17_ = g_strdup ("fifteen");
	_tmp18_ = g_strdup ("sixteen");
	_tmp19_ = g_strdup ("seventeen");
	_tmp20_ = g_strdup ("eighteen");
	_tmp21_ = g_strdup ("nineteen\n");
	_tmp22_ = g_strdup ("twenty");
	_tmp23_ = g_strdup ("twenty one");
	_tmp24_ = g_strdup ("twenty two");
	_tmp25_ = g_strdup ("twenty three");
	_tmp26_ = g_strdup ("twenty four");
	_tmp27_ = g_strdup ("twenty five");
	_tmp28_ = g_strdup ("twenty six");
	_tmp29_ = g_strdup ("twenty seven");
	_tmp30_ = g_strdup ("twenty eight");
	_tmp31_ = g_strdup ("twenty nine");
	_tmp32_ = g_strdup ("thirty");
	_tmp33_ = g_strdup ("thirty one");
	_tmp34_ = g_strdup ("thirty two");
	_tmp35_ = g_strdup ("thirty four");
	_tmp36_ = g_strdup ("thirty five");
	_tmp37_ = g_strdup ("thirty six");
	_tmp38_ = g_strdup ("thirty seven");
	_tmp39_ = g_strdup ("thirty eight");
	_tmp40_ = g_strdup ("thirty nine");
	_tmp41_ = g_strdup ("fourty");
	_tmp42_ = g_new0 (gchar*, 39 + 1);
	_tmp42_[0] = _tmp3_;
	_tmp42_[1] = _tmp4_;
	_tmp42_[2] = _tmp5_;
	_tmp42_[3] = _tmp6_;
	_tmp42_[4] = _tmp7_;
	_tmp42_[5] = _tmp8_;
	_tmp42_[6] = _tmp9_;
	_tmp42_[7] = _tmp10_;
	_tmp42_[8] = _tmp11_;
	_tmp42_[9] = _tmp12_;
	_tmp42_[10] = _tmp13_;
	_tmp42_[11] = _tmp14_;
	_tmp42_[12] = _tmp15_;
	_tmp42_[13] = _tmp16_;
	_tmp42_[14] = _tmp17_;
	_tmp42_[15] = _tmp18_;
	_tmp42_[16] = _tmp19_;
	_tmp42_[17] = _tmp20_;
	_tmp42_[18] = _tmp21_;
	_tmp42_[19] = _tmp22_;
	_tmp42_[20] = _tmp23_;
	_tmp42_[21] = _tmp24_;
	_tmp42_[22] = _tmp25_;
	_tmp42_[23] = _tmp26_;
	_tmp42_[24] = _tmp27_;
	_tmp42_[25] = _tmp28_;
	_tmp42_[26] = _tmp29_;
	_tmp42_[27] = _tmp30_;
	_tmp42_[28] = _tmp31_;
	_tmp42_[29] = _tmp32_;
	_tmp42_[30] = _tmp33_;
	_tmp42_[31] = _tmp34_;
	_tmp42_[32] = _tmp35_;
	_tmp42_[33] = _tmp36_;
	_tmp42_[34] = _tmp37_;
	_tmp42_[35] = _tmp38_;
	_tmp42_[36] = _tmp39_;
	_tmp42_[37] = _tmp40_;
	_tmp42_[38] = _tmp41_;
	to_offer = _tmp42_;
	to_offer_length1 = 39;
	_to_offer_size_ = to_offer_length1;
	_tmp43_ = test_deque;
	_vala_assert (_tmp43_ != NULL, "test_deque != null");
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp44_ = FALSE;
			_tmp44_ = TRUE;
			while (TRUE) {
				gint _tmp46_ = 0;
				gchar** _tmp47_ = NULL;
				gint _tmp47__length1 = 0;
				GeeDeque* _tmp48_ = NULL;
				gchar** _tmp49_ = NULL;
				gint _tmp49__length1 = 0;
				gint _tmp50_ = 0;
				const gchar* _tmp51_ = NULL;
				gboolean _tmp52_ = FALSE;
				GeeDeque* _tmp53_ = NULL;
				gint _tmp54_ = 0;
				gint _tmp55_ = 0;
				gint _tmp56_ = 0;
				if (!_tmp44_) {
					gint _tmp45_ = 0;
					_tmp45_ = i;
					i = _tmp45_ + 1;
				}
				_tmp44_ = FALSE;
				_tmp46_ = i;
				_tmp47_ = to_offer;
				_tmp47__length1 = to_offer_length1;
				if (!(_tmp46_ < _tmp47__length1)) {
					break;
				}
				_tmp48_ = test_deque;
				_tmp49_ = to_offer;
				_tmp49__length1 = to_offer_length1;
				_tmp50_ = i;
				_tmp51_ = _tmp49_[_tmp50_];
				_tmp52_ = gee_deque_offer_tail (_tmp48_, _tmp51_);
				_vala_assert (_tmp52_, "test_deque.offer_tail (to_offer[i])");
				_tmp53_ = test_deque;
				_tmp54_ = gee_collection_get_size ((GeeCollection*) _tmp53_);
				_tmp55_ = _tmp54_;
				_tmp56_ = i;
				_vala_assert (_tmp55_ == (_tmp56_ + 1), "test_deque.size == i + 1");
			}
		}
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp57_ = FALSE;
			_tmp57_ = TRUE;
			while (TRUE) {
				gint _tmp59_ = 0;
				gchar** _tmp60_ = NULL;
				gint _tmp60__length1 = 0;
				GeeDeque* _tmp61_ = NULL;
				gpointer _tmp62_ = NULL;
				gchar* _tmp63_ = NULL;
				gchar** _tmp64_ = NULL;
				gint _tmp64__length1 = 0;
				gchar** _tmp65_ = NULL;
				gint _tmp65__length1 = 0;
				gint _tmp66_ = 0;
				const gchar* _tmp67_ = NULL;
				GeeDeque* _tmp68_ = NULL;
				gpointer _tmp69_ = NULL;
				gchar* _tmp70_ = NULL;
				gchar** _tmp71_ = NULL;
				gint _tmp71__length1 = 0;
				gchar** _tmp72_ = NULL;
				gint _tmp72__length1 = 0;
				gint _tmp73_ = 0;
				const gchar* _tmp74_ = NULL;
				GeeDeque* _tmp75_ = NULL;
				gint _tmp76_ = 0;
				gint _tmp77_ = 0;
				gchar** _tmp78_ = NULL;
				gint _tmp78__length1 = 0;
				gint _tmp79_ = 0;
				if (!_tmp57_) {
					gint _tmp58_ = 0;
					_tmp58_ = i;
					i = _tmp58_ + 1;
				}
				_tmp57_ = FALSE;
				_tmp59_ = i;
				_tmp60_ = to_offer;
				_tmp60__length1 = to_offer_length1;
				if (!(_tmp59_ < _tmp60__length1)) {
					break;
				}
				_tmp61_ = test_deque;
				_tmp62_ = gee_deque_peek_tail (_tmp61_);
				_tmp63_ = (gchar*) _tmp62_;
				_tmp64_ = to_offer;
				_tmp64__length1 = to_offer_length1;
				_tmp65_ = to_offer;
				_tmp65__length1 = to_offer_length1;
				_tmp66_ = i;
				_tmp67_ = _tmp64_[(_tmp65__length1 - _tmp66_) - 1];
				_vala_assert (g_strcmp0 (_tmp63_, _tmp67_) == 0, "test_deque.peek_tail () == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp63_);
				_tmp68_ = test_deque;
				_tmp69_ = gee_deque_poll_tail (_tmp68_);
				_tmp70_ = (gchar*) _tmp69_;
				_tmp71_ = to_offer;
				_tmp71__length1 = to_offer_length1;
				_tmp72_ = to_offer;
				_tmp72__length1 = to_offer_length1;
				_tmp73_ = i;
				_tmp74_ = _tmp71_[(_tmp72__length1 - _tmp73_) - 1];
				_vala_assert (g_strcmp0 (_tmp70_, _tmp74_) == 0, "test_deque.poll_tail () == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp70_);
				_tmp75_ = test_deque;
				_tmp76_ = gee_collection_get_size ((GeeCollection*) _tmp75_);
				_tmp77_ = _tmp76_;
				_tmp78_ = to_offer;
				_tmp78__length1 = to_offer_length1;
				_tmp79_ = i;
				_vala_assert (_tmp77_ == ((_tmp78__length1 - _tmp79_) - 1), "test_deque.size == to_offer.length - i - 1");
			}
		}
	}
	_tmp80_ = test_deque;
	_tmp81_ = gee_deque_peek_tail (_tmp80_);
	_tmp82_ = (gchar*) _tmp81_;
	_vala_assert (_tmp82_ == NULL, "test_deque.peek_tail () == null");
	_g_free0 (_tmp82_);
	_tmp83_ = test_deque;
	_tmp84_ = gee_deque_poll_tail (_tmp83_);
	_tmp85_ = (gchar*) _tmp84_;
	_vala_assert (_tmp85_ == NULL, "test_deque.poll_tail () == null");
	_g_free0 (_tmp85_);
	_tmp86_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp86_);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp87_ = FALSE;
			_tmp87_ = TRUE;
			while (TRUE) {
				gint _tmp89_ = 0;
				gchar** _tmp90_ = NULL;
				gint _tmp90__length1 = 0;
				GeeDeque* _tmp91_ = NULL;
				gchar** _tmp92_ = NULL;
				gint _tmp92__length1 = 0;
				gint _tmp93_ = 0;
				const gchar* _tmp94_ = NULL;
				gboolean _tmp95_ = FALSE;
				if (!_tmp87_) {
					gint _tmp88_ = 0;
					_tmp88_ = i;
					i = _tmp88_ + 1;
				}
				_tmp87_ = FALSE;
				_tmp89_ = i;
				_tmp90_ = to_offer;
				_tmp90__length1 = to_offer_length1;
				if (!(_tmp89_ < _tmp90__length1)) {
					break;
				}
				_tmp91_ = test_deque;
				_tmp92_ = to_offer;
				_tmp92__length1 = to_offer_length1;
				_tmp93_ = i;
				_tmp94_ = _tmp92_[_tmp93_];
				_tmp95_ = gee_deque_offer_tail (_tmp91_, _tmp94_);
				_vala_assert (_tmp95_, "test_deque.offer_tail (to_offer[i])");
			}
		}
	}
	_tmp96_ = test_deque;
	_tmp97_ = gee_collection_get_size ((GeeCollection*) _tmp96_);
	_tmp98_ = _tmp97_;
	_tmp99_ = to_offer;
	_tmp99__length1 = to_offer_length1;
	_vala_assert (_tmp98_ == _tmp99__length1, "test_deque.size == to_offer.length");
	_tmp100_ = test_deque;
	_tmp101_ = recipient;
	_tmp102_ = gee_deque_drain_tail (_tmp100_, (GeeCollection*) _tmp101_, 1);
	_vala_assert (_tmp102_ == 1, "test_deque.drain_tail (recipient, 1) == 1");
	_tmp103_ = test_deque;
	_tmp104_ = gee_collection_get_size ((GeeCollection*) _tmp103_);
	_tmp105_ = _tmp104_;
	_tmp106_ = to_offer;
	_tmp106__length1 = to_offer_length1;
	_vala_assert (_tmp105_ == (_tmp106__length1 - 1), "test_deque.size == to_offer.length - 1");
	_tmp107_ = recipient;
	_tmp108_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp107_);
	_tmp109_ = _tmp108_;
	_vala_assert (_tmp109_ == 1, "recipient.size == 1");
	_tmp110_ = recipient;
	_tmp111_ = gee_abstract_list_get ((GeeAbstractList*) _tmp110_, 0);
	_tmp112_ = (gchar*) _tmp111_;
	_tmp113_ = to_offer;
	_tmp113__length1 = to_offer_length1;
	_tmp114_ = to_offer;
	_tmp114__length1 = to_offer_length1;
	_tmp115_ = _tmp113_[_tmp114__length1 - 1];
	_vala_assert (g_strcmp0 (_tmp112_, _tmp115_) == 0, "recipient.get (0) == to_offer[to_offer.length - 1]");
	_g_free0 (_tmp112_);
	_tmp116_ = test_deque;
	_tmp117_ = recipient;
	_tmp118_ = gee_deque_drain_tail (_tmp116_, (GeeCollection*) _tmp117_, -1);
	_tmp119_ = to_offer;
	_tmp119__length1 = to_offer_length1;
	_vala_assert (_tmp118_ == (_tmp119__length1 - 1), "test_deque.drain_tail (recipient) == to_offer.length - 1");
	_tmp120_ = test_deque;
	_tmp121_ = gee_collection_get_size ((GeeCollection*) _tmp120_);
	_tmp122_ = _tmp121_;
	_vala_assert (_tmp122_ == 0, "test_deque.size == 0");
	_tmp123_ = recipient;
	_tmp124_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp123_);
	_tmp125_ = _tmp124_;
	_tmp126_ = to_offer;
	_tmp126__length1 = to_offer_length1;
	_vala_assert (_tmp125_ == _tmp126__length1, "recipient.size == to_offer.length");
	{
		gint i = 0;
		i = 1;
		{
			gboolean _tmp127_ = FALSE;
			_tmp127_ = TRUE;
			while (TRUE) {
				gint _tmp129_ = 0;
				gchar** _tmp130_ = NULL;
				gint _tmp130__length1 = 0;
				GeeArrayList* _tmp131_ = NULL;
				gint _tmp132_ = 0;
				gpointer _tmp133_ = NULL;
				gchar* _tmp134_ = NULL;
				gchar** _tmp135_ = NULL;
				gint _tmp135__length1 = 0;
				gchar** _tmp136_ = NULL;
				gint _tmp136__length1 = 0;
				gint _tmp137_ = 0;
				const gchar* _tmp138_ = NULL;
				if (!_tmp127_) {
					gint _tmp128_ = 0;
					_tmp128_ = i;
					i = _tmp128_ + 1;
				}
				_tmp127_ = FALSE;
				_tmp129_ = i;
				_tmp130_ = to_offer;
				_tmp130__length1 = to_offer_length1;
				if (!(_tmp129_ < _tmp130__length1)) {
					break;
				}
				_tmp131_ = recipient;
				_tmp132_ = i;
				_tmp133_ = gee_abstract_list_get ((GeeAbstractList*) _tmp131_, _tmp132_);
				_tmp134_ = (gchar*) _tmp133_;
				_tmp135_ = to_offer;
				_tmp135__length1 = to_offer_length1;
				_tmp136_ = to_offer;
				_tmp136__length1 = to_offer_length1;
				_tmp137_ = i;
				_tmp138_ = _tmp135_[(_tmp136__length1 - _tmp137_) - 1];
				_vala_assert (g_strcmp0 (_tmp134_, _tmp138_) == 0, "recipient.get (i) == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp134_);
			}
		}
	}
	_tmp139_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp139_);
	_tmp140_ = test_deque;
	_tmp141_ = recipient;
	_tmp142_ = gee_deque_drain_tail (_tmp140_, (GeeCollection*) _tmp141_, 1);
	_vala_assert (_tmp142_ == 0, "test_deque.drain_tail (recipient, 1) == 0");
	_tmp143_ = test_deque;
	_tmp144_ = gee_collection_get_size ((GeeCollection*) _tmp143_);
	_tmp145_ = _tmp144_;
	_vala_assert (_tmp145_ == 0, "test_deque.size == 0");
	_tmp146_ = recipient;
	_tmp147_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp146_);
	_tmp148_ = _tmp147_;
	_vala_assert (_tmp148_ == 0, "recipient.size == 0");
	_tmp149_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp149_);
	_tmp150_ = test_deque;
	_tmp151_ = recipient;
	_tmp152_ = gee_deque_drain_tail (_tmp150_, (GeeCollection*) _tmp151_, -1);
	_vala_assert (_tmp152_ == 0, "test_deque.drain_tail (recipient) == 0");
	_tmp153_ = test_deque;
	_tmp154_ = gee_collection_get_size ((GeeCollection*) _tmp153_);
	_tmp155_ = _tmp154_;
	_vala_assert (_tmp155_ == 0, "test_deque.size == 0");
	_tmp156_ = recipient;
	_tmp157_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp156_);
	_tmp158_ = _tmp157_;
	_vala_assert (_tmp158_ == 0, "recipient.size == 0");
	to_offer = (_vala_array_free (to_offer, to_offer_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (recipient);
	_g_object_unref0 (test_deque);
}


static void deque_tests_class_init (DequeTestsClass * klass) {
	deque_tests_parent_class = g_type_class_peek_parent (klass);
}


static void deque_tests_instance_init (DequeTests * self) {
}


GType deque_tests_get_type (void) {
	static volatile gsize deque_tests_type_id__volatile = 0;
	if (g_once_init_enter (&deque_tests_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (DequeTestsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) deque_tests_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (DequeTests), 0, (GInstanceInitFunc) deque_tests_instance_init, NULL };
		GType deque_tests_type_id;
		deque_tests_type_id = g_type_register_static (TYPE_QUEUE_TESTS, "DequeTests", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
		g_once_init_leave (&deque_tests_type_id__volatile, deque_tests_type_id);
	}
	return deque_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);
}



