/* testdeque.c generated by valac 0.23.1.16-ce7f, 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* _tmp80_ = NULL;
	gpointer _tmp81_ = NULL;
	gchar* _tmp82_ = NULL;
	GeeDeque* _tmp83_ = NULL;
	gpointer _tmp84_ = NULL;
	gchar* _tmp85_ = NULL;
	GeeArrayList* _tmp86_ = NULL;
	GeeDeque* _tmp97_ = NULL;
	gint _tmp98_ = 0;
	gint _tmp99_ = 0;
	gchar** _tmp100_ = NULL;
	gint _tmp100__length1 = 0;
	GeeDeque* _tmp101_ = NULL;
	GeeArrayList* _tmp102_ = NULL;
	gint _tmp103_ = 0;
	GeeDeque* _tmp104_ = NULL;
	gint _tmp105_ = 0;
	gint _tmp106_ = 0;
	gchar** _tmp107_ = NULL;
	gint _tmp107__length1 = 0;
	GeeArrayList* _tmp108_ = NULL;
	gint _tmp109_ = 0;
	gint _tmp110_ = 0;
	GeeArrayList* _tmp111_ = NULL;
	gpointer _tmp112_ = NULL;
	gchar* _tmp113_ = NULL;
	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_ = 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) {
				gboolean _tmp45_ = FALSE;
				gint _tmp47_ = 0;
				gchar** _tmp48_ = NULL;
				gint _tmp48__length1 = 0;
				GeeDeque* _tmp49_ = NULL;
				gchar** _tmp50_ = NULL;
				gint _tmp50__length1 = 0;
				gint _tmp51_ = 0;
				const gchar* _tmp52_ = NULL;
				gboolean _tmp53_ = FALSE;
				GeeDeque* _tmp54_ = NULL;
				gint _tmp55_ = 0;
				gint _tmp56_ = 0;
				gint _tmp57_ = 0;
				_tmp45_ = _tmp44_;
				if (!_tmp45_) {
					gint _tmp46_ = 0;
					_tmp46_ = i;
					i = _tmp46_ + 1;
				}
				_tmp44_ = FALSE;
				_tmp47_ = i;
				_tmp48_ = to_offer;
				_tmp48__length1 = to_offer_length1;
				if (!(_tmp47_ < _tmp48__length1)) {
					break;
				}
				_tmp49_ = test_deque;
				_tmp50_ = to_offer;
				_tmp50__length1 = to_offer_length1;
				_tmp51_ = i;
				_tmp52_ = _tmp50_[_tmp51_];
				_tmp53_ = gee_deque_offer_tail (_tmp49_, _tmp52_);
				_vala_assert (_tmp53_, "test_deque.offer_tail (to_offer[i])");
				_tmp54_ = test_deque;
				_tmp55_ = gee_collection_get_size ((GeeCollection*) _tmp54_);
				_tmp56_ = _tmp55_;
				_tmp57_ = i;
				_vala_assert (_tmp56_ == (_tmp57_ + 1), "test_deque.size == i + 1");
			}
		}
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp58_ = FALSE;
			_tmp58_ = TRUE;
			while (TRUE) {
				gboolean _tmp59_ = FALSE;
				gint _tmp61_ = 0;
				gchar** _tmp62_ = NULL;
				gint _tmp62__length1 = 0;
				GeeDeque* _tmp63_ = NULL;
				gpointer _tmp64_ = NULL;
				gchar* _tmp65_ = NULL;
				gchar** _tmp66_ = NULL;
				gint _tmp66__length1 = 0;
				gint _tmp67_ = 0;
				const gchar* _tmp68_ = NULL;
				GeeDeque* _tmp69_ = NULL;
				gpointer _tmp70_ = NULL;
				gchar* _tmp71_ = NULL;
				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;
				_tmp59_ = _tmp58_;
				if (!_tmp59_) {
					gint _tmp60_ = 0;
					_tmp60_ = i;
					i = _tmp60_ + 1;
				}
				_tmp58_ = FALSE;
				_tmp61_ = i;
				_tmp62_ = to_offer;
				_tmp62__length1 = to_offer_length1;
				if (!(_tmp61_ < _tmp62__length1)) {
					break;
				}
				_tmp63_ = test_deque;
				_tmp64_ = gee_deque_peek_head (_tmp63_);
				_tmp65_ = (gchar*) _tmp64_;
				_tmp66_ = to_offer;
				_tmp66__length1 = to_offer_length1;
				_tmp67_ = i;
				_tmp68_ = _tmp66_[_tmp67_];
				_vala_assert (g_strcmp0 (_tmp65_, _tmp68_) == 0, "test_deque.peek_head () == to_offer[i]");
				_g_free0 (_tmp65_);
				_tmp69_ = test_deque;
				_tmp70_ = gee_deque_poll_head (_tmp69_);
				_tmp71_ = (gchar*) _tmp70_;
				_tmp72_ = to_offer;
				_tmp72__length1 = to_offer_length1;
				_tmp73_ = i;
				_tmp74_ = _tmp72_[_tmp73_];
				_vala_assert (g_strcmp0 (_tmp71_, _tmp74_) == 0, "test_deque.poll_head () == to_offer[i]");
				_g_free0 (_tmp71_);
				_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_head (_tmp80_);
	_tmp82_ = (gchar*) _tmp81_;
	_vala_assert (_tmp82_ == NULL, "test_deque.peek_head () == null");
	_g_free0 (_tmp82_);
	_tmp83_ = test_deque;
	_tmp84_ = gee_deque_poll_head (_tmp83_);
	_tmp85_ = (gchar*) _tmp84_;
	_vala_assert (_tmp85_ == NULL, "test_deque.poll_head () == null");
	_g_free0 (_tmp85_);
	_tmp86_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp86_);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp87_ = FALSE;
			_tmp87_ = TRUE;
			while (TRUE) {
				gboolean _tmp88_ = FALSE;
				gint _tmp90_ = 0;
				gchar** _tmp91_ = NULL;
				gint _tmp91__length1 = 0;
				GeeDeque* _tmp92_ = NULL;
				gchar** _tmp93_ = NULL;
				gint _tmp93__length1 = 0;
				gint _tmp94_ = 0;
				const gchar* _tmp95_ = NULL;
				gboolean _tmp96_ = FALSE;
				_tmp88_ = _tmp87_;
				if (!_tmp88_) {
					gint _tmp89_ = 0;
					_tmp89_ = i;
					i = _tmp89_ + 1;
				}
				_tmp87_ = FALSE;
				_tmp90_ = i;
				_tmp91_ = to_offer;
				_tmp91__length1 = to_offer_length1;
				if (!(_tmp90_ < _tmp91__length1)) {
					break;
				}
				_tmp92_ = test_deque;
				_tmp93_ = to_offer;
				_tmp93__length1 = to_offer_length1;
				_tmp94_ = i;
				_tmp95_ = _tmp93_[_tmp94_];
				_tmp96_ = gee_deque_offer_tail (_tmp92_, _tmp95_);
				_vala_assert (_tmp96_, "test_deque.offer_tail (to_offer[i])");
			}
		}
	}
	_tmp97_ = test_deque;
	_tmp98_ = gee_collection_get_size ((GeeCollection*) _tmp97_);
	_tmp99_ = _tmp98_;
	_tmp100_ = to_offer;
	_tmp100__length1 = to_offer_length1;
	_vala_assert (_tmp99_ == _tmp100__length1, "test_deque.size == to_offer.length");
	_tmp101_ = test_deque;
	_tmp102_ = recipient;
	_tmp103_ = gee_deque_drain_head (_tmp101_, (GeeCollection*) _tmp102_, 1);
	_vala_assert (_tmp103_ == 1, "test_deque.drain_head (recipient, 1) == 1");
	_tmp104_ = test_deque;
	_tmp105_ = gee_collection_get_size ((GeeCollection*) _tmp104_);
	_tmp106_ = _tmp105_;
	_tmp107_ = to_offer;
	_tmp107__length1 = to_offer_length1;
	_vala_assert (_tmp106_ == (_tmp107__length1 - 1), "test_deque.size == to_offer.length - 1");
	_tmp108_ = recipient;
	_tmp109_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp108_);
	_tmp110_ = _tmp109_;
	_vala_assert (_tmp110_ == 1, "recipient.size == 1");
	_tmp111_ = recipient;
	_tmp112_ = gee_abstract_list_get ((GeeAbstractList*) _tmp111_, 0);
	_tmp113_ = (gchar*) _tmp112_;
	_tmp114_ = to_offer;
	_tmp114__length1 = to_offer_length1;
	_tmp115_ = _tmp114_[0];
	_vala_assert (g_strcmp0 (_tmp113_, _tmp115_) == 0, "recipient.get (0) == to_offer[0]");
	_g_free0 (_tmp113_);
	_tmp116_ = test_deque;
	_tmp117_ = recipient;
	_tmp118_ = gee_deque_drain_head (_tmp116_, (GeeCollection*) _tmp117_, -1);
	_tmp119_ = to_offer;
	_tmp119__length1 = to_offer_length1;
	_vala_assert (_tmp118_ == (_tmp119__length1 - 1), "test_deque.drain_head (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) {
				gboolean _tmp128_ = FALSE;
				gint _tmp130_ = 0;
				gchar** _tmp131_ = NULL;
				gint _tmp131__length1 = 0;
				GeeArrayList* _tmp132_ = NULL;
				gint _tmp133_ = 0;
				gpointer _tmp134_ = NULL;
				gchar* _tmp135_ = NULL;
				gchar** _tmp136_ = NULL;
				gint _tmp136__length1 = 0;
				gint _tmp137_ = 0;
				const gchar* _tmp138_ = NULL;
				_tmp128_ = _tmp127_;
				if (!_tmp128_) {
					gint _tmp129_ = 0;
					_tmp129_ = i;
					i = _tmp129_ + 1;
				}
				_tmp127_ = FALSE;
				_tmp130_ = i;
				_tmp131_ = to_offer;
				_tmp131__length1 = to_offer_length1;
				if (!(_tmp130_ < _tmp131__length1)) {
					break;
				}
				_tmp132_ = recipient;
				_tmp133_ = i;
				_tmp134_ = gee_abstract_list_get ((GeeAbstractList*) _tmp132_, _tmp133_);
				_tmp135_ = (gchar*) _tmp134_;
				_tmp136_ = to_offer;
				_tmp136__length1 = to_offer_length1;
				_tmp137_ = i;
				_tmp138_ = _tmp136_[_tmp137_];
				_vala_assert (g_strcmp0 (_tmp135_, _tmp138_) == 0, "recipient.get (i) == to_offer[i]");
				_g_free0 (_tmp135_);
			}
		}
	}
	_tmp139_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp139_);
	_tmp140_ = test_deque;
	_tmp141_ = recipient;
	_tmp142_ = gee_deque_drain_head (_tmp140_, (GeeCollection*) _tmp141_, 1);
	_vala_assert (_tmp142_ == 0, "test_deque.drain_head (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_head (_tmp150_, (GeeCollection*) _tmp151_, -1);
	_vala_assert (_tmp152_ == 0, "test_deque.drain_head (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);
}


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* _tmp79_ = NULL;
	gpointer _tmp80_ = NULL;
	gchar* _tmp81_ = NULL;
	GeeDeque* _tmp82_ = NULL;
	gpointer _tmp83_ = NULL;
	gchar* _tmp84_ = NULL;
	GeeArrayList* _tmp85_ = 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* _tmp140_ = NULL;
	GeeDeque* _tmp141_ = NULL;
	GeeArrayList* _tmp142_ = NULL;
	gint _tmp143_ = 0;
	GeeDeque* _tmp144_ = NULL;
	gint _tmp145_ = 0;
	gint _tmp146_ = 0;
	GeeArrayList* _tmp147_ = NULL;
	gint _tmp148_ = 0;
	gint _tmp149_ = 0;
	GeeArrayList* _tmp150_ = NULL;
	GeeDeque* _tmp151_ = NULL;
	GeeArrayList* _tmp152_ = NULL;
	gint _tmp153_ = 0;
	GeeDeque* _tmp154_ = NULL;
	gint _tmp155_ = 0;
	gint _tmp156_ = 0;
	GeeArrayList* _tmp157_ = NULL;
	gint _tmp158_ = 0;
	gint _tmp159_ = 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) {
				gboolean _tmp45_ = FALSE;
				gint _tmp47_ = 0;
				gchar** _tmp48_ = NULL;
				gint _tmp48__length1 = 0;
				GeeDeque* _tmp49_ = NULL;
				gchar** _tmp50_ = NULL;
				gint _tmp50__length1 = 0;
				gint _tmp51_ = 0;
				const gchar* _tmp52_ = NULL;
				gboolean _tmp53_ = FALSE;
				GeeDeque* _tmp54_ = NULL;
				gint _tmp55_ = 0;
				gint _tmp56_ = 0;
				gint _tmp57_ = 0;
				_tmp45_ = _tmp44_;
				if (!_tmp45_) {
					gint _tmp46_ = 0;
					_tmp46_ = i;
					i = _tmp46_ + 1;
				}
				_tmp44_ = FALSE;
				_tmp47_ = i;
				_tmp48_ = to_offer;
				_tmp48__length1 = to_offer_length1;
				if (!(_tmp47_ < _tmp48__length1)) {
					break;
				}
				_tmp49_ = test_deque;
				_tmp50_ = to_offer;
				_tmp50__length1 = to_offer_length1;
				_tmp51_ = i;
				_tmp52_ = _tmp50_[_tmp51_];
				_tmp53_ = gee_deque_offer_head (_tmp49_, _tmp52_);
				_vala_assert (_tmp53_, "test_deque.offer_head (to_offer[i])");
				_tmp54_ = test_deque;
				_tmp55_ = gee_collection_get_size ((GeeCollection*) _tmp54_);
				_tmp56_ = _tmp55_;
				_tmp57_ = i;
				_vala_assert (_tmp56_ == (_tmp57_ + 1), "test_deque.size == i + 1");
			}
		}
	}
	{
		gint i = 0;
		gchar** _tmp58_ = NULL;
		gint _tmp58__length1 = 0;
		_tmp58_ = to_offer;
		_tmp58__length1 = to_offer_length1;
		i = _tmp58__length1 - 1;
		{
			gboolean _tmp59_ = FALSE;
			_tmp59_ = TRUE;
			while (TRUE) {
				gboolean _tmp60_ = FALSE;
				gint _tmp62_ = 0;
				GeeDeque* _tmp63_ = NULL;
				gpointer _tmp64_ = NULL;
				gchar* _tmp65_ = NULL;
				gchar** _tmp66_ = NULL;
				gint _tmp66__length1 = 0;
				gint _tmp67_ = 0;
				const gchar* _tmp68_ = NULL;
				GeeDeque* _tmp69_ = NULL;
				gpointer _tmp70_ = NULL;
				gchar* _tmp71_ = NULL;
				gchar** _tmp72_ = NULL;
				gint _tmp72__length1 = 0;
				gint _tmp73_ = 0;
				const gchar* _tmp74_ = NULL;
				GeeDeque* _tmp75_ = NULL;
				gint _tmp76_ = 0;
				gint _tmp77_ = 0;
				gint _tmp78_ = 0;
				_tmp60_ = _tmp59_;
				if (!_tmp60_) {
					gint _tmp61_ = 0;
					_tmp61_ = i;
					i = _tmp61_ - 1;
				}
				_tmp59_ = FALSE;
				_tmp62_ = i;
				if (!(_tmp62_ >= 0)) {
					break;
				}
				_tmp63_ = test_deque;
				_tmp64_ = gee_deque_peek_head (_tmp63_);
				_tmp65_ = (gchar*) _tmp64_;
				_tmp66_ = to_offer;
				_tmp66__length1 = to_offer_length1;
				_tmp67_ = i;
				_tmp68_ = _tmp66_[_tmp67_];
				_vala_assert (g_strcmp0 (_tmp65_, _tmp68_) == 0, "test_deque.peek_head () == to_offer[i]");
				_g_free0 (_tmp65_);
				_tmp69_ = test_deque;
				_tmp70_ = gee_deque_poll_head (_tmp69_);
				_tmp71_ = (gchar*) _tmp70_;
				_tmp72_ = to_offer;
				_tmp72__length1 = to_offer_length1;
				_tmp73_ = i;
				_tmp74_ = _tmp72_[_tmp73_];
				_vala_assert (g_strcmp0 (_tmp71_, _tmp74_) == 0, "test_deque.poll_head () == to_offer[i]");
				_g_free0 (_tmp71_);
				_tmp75_ = test_deque;
				_tmp76_ = gee_collection_get_size ((GeeCollection*) _tmp75_);
				_tmp77_ = _tmp76_;
				_tmp78_ = i;
				_vala_assert (_tmp77_ == _tmp78_, "test_deque.size == i");
			}
		}
	}
	_tmp79_ = test_deque;
	_tmp80_ = gee_deque_peek_head (_tmp79_);
	_tmp81_ = (gchar*) _tmp80_;
	_vala_assert (_tmp81_ == NULL, "test_deque.peek_head () == null");
	_g_free0 (_tmp81_);
	_tmp82_ = test_deque;
	_tmp83_ = gee_deque_poll_head (_tmp82_);
	_tmp84_ = (gchar*) _tmp83_;
	_vala_assert (_tmp84_ == NULL, "test_deque.poll_head () == null");
	_g_free0 (_tmp84_);
	_tmp85_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp85_);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp86_ = FALSE;
			_tmp86_ = TRUE;
			while (TRUE) {
				gboolean _tmp87_ = FALSE;
				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;
				_tmp87_ = _tmp86_;
				if (!_tmp87_) {
					gint _tmp88_ = 0;
					_tmp88_ = i;
					i = _tmp88_ + 1;
				}
				_tmp86_ = 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_head (_tmp91_, _tmp94_);
				_vala_assert (_tmp95_, "test_deque.offer_head (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_head (_tmp100_, (GeeCollection*) _tmp101_, 1);
	_vala_assert (_tmp102_ == 1, "test_deque.drain_head (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_head (_tmp116_, (GeeCollection*) _tmp117_, -1);
	_tmp119_ = to_offer;
	_tmp119__length1 = to_offer_length1;
	_vala_assert (_tmp118_ == (_tmp119__length1 - 1), "test_deque.drain_head (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) {
				gboolean _tmp128_ = FALSE;
				gint _tmp130_ = 0;
				gchar** _tmp131_ = NULL;
				gint _tmp131__length1 = 0;
				GeeArrayList* _tmp132_ = NULL;
				gint _tmp133_ = 0;
				gpointer _tmp134_ = NULL;
				gchar* _tmp135_ = NULL;
				gchar** _tmp136_ = NULL;
				gint _tmp136__length1 = 0;
				gchar** _tmp137_ = NULL;
				gint _tmp137__length1 = 0;
				gint _tmp138_ = 0;
				const gchar* _tmp139_ = NULL;
				_tmp128_ = _tmp127_;
				if (!_tmp128_) {
					gint _tmp129_ = 0;
					_tmp129_ = i;
					i = _tmp129_ + 1;
				}
				_tmp127_ = FALSE;
				_tmp130_ = i;
				_tmp131_ = to_offer;
				_tmp131__length1 = to_offer_length1;
				if (!(_tmp130_ < _tmp131__length1)) {
					break;
				}
				_tmp132_ = recipient;
				_tmp133_ = i;
				_tmp134_ = gee_abstract_list_get ((GeeAbstractList*) _tmp132_, _tmp133_);
				_tmp135_ = (gchar*) _tmp134_;
				_tmp136_ = to_offer;
				_tmp136__length1 = to_offer_length1;
				_tmp137_ = to_offer;
				_tmp137__length1 = to_offer_length1;
				_tmp138_ = i;
				_tmp139_ = _tmp136_[(_tmp137__length1 - _tmp138_) - 1];
				_vala_assert (g_strcmp0 (_tmp135_, _tmp139_) == 0, "recipient.get (i) == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp135_);
			}
		}
	}
	_tmp140_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp140_);
	_tmp141_ = test_deque;
	_tmp142_ = recipient;
	_tmp143_ = gee_deque_drain_head (_tmp141_, (GeeCollection*) _tmp142_, 1);
	_vala_assert (_tmp143_ == 0, "test_deque.drain_head (recipient, 1) == 0");
	_tmp144_ = test_deque;
	_tmp145_ = gee_collection_get_size ((GeeCollection*) _tmp144_);
	_tmp146_ = _tmp145_;
	_vala_assert (_tmp146_ == 0, "test_deque.size == 0");
	_tmp147_ = recipient;
	_tmp148_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp147_);
	_tmp149_ = _tmp148_;
	_vala_assert (_tmp149_ == 0, "recipient.size == 0");
	_tmp150_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp150_);
	_tmp151_ = test_deque;
	_tmp152_ = recipient;
	_tmp153_ = gee_deque_drain_head (_tmp151_, (GeeCollection*) _tmp152_, -1);
	_vala_assert (_tmp153_ == 0, "test_deque.drain_head (recipient) == 0");
	_tmp154_ = test_deque;
	_tmp155_ = gee_collection_get_size ((GeeCollection*) _tmp154_);
	_tmp156_ = _tmp155_;
	_vala_assert (_tmp156_ == 0, "test_deque.size == 0");
	_tmp157_ = recipient;
	_tmp158_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp157_);
	_tmp159_ = _tmp158_;
	_vala_assert (_tmp159_ == 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* _tmp82_ = NULL;
	gpointer _tmp83_ = NULL;
	gchar* _tmp84_ = NULL;
	GeeDeque* _tmp85_ = NULL;
	gpointer _tmp86_ = NULL;
	gchar* _tmp87_ = NULL;
	GeeArrayList* _tmp88_ = NULL;
	GeeDeque* _tmp99_ = NULL;
	gint _tmp100_ = 0;
	gint _tmp101_ = 0;
	gchar** _tmp102_ = NULL;
	gint _tmp102__length1 = 0;
	GeeDeque* _tmp103_ = NULL;
	GeeArrayList* _tmp104_ = NULL;
	gint _tmp105_ = 0;
	GeeDeque* _tmp106_ = NULL;
	gint _tmp107_ = 0;
	gint _tmp108_ = 0;
	gchar** _tmp109_ = NULL;
	gint _tmp109__length1 = 0;
	GeeArrayList* _tmp110_ = NULL;
	gint _tmp111_ = 0;
	gint _tmp112_ = 0;
	GeeArrayList* _tmp113_ = NULL;
	gpointer _tmp114_ = NULL;
	gchar* _tmp115_ = NULL;
	gchar** _tmp116_ = NULL;
	gint _tmp116__length1 = 0;
	gchar** _tmp117_ = NULL;
	gint _tmp117__length1 = 0;
	const gchar* _tmp118_ = NULL;
	GeeDeque* _tmp119_ = NULL;
	GeeArrayList* _tmp120_ = NULL;
	gint _tmp121_ = 0;
	gchar** _tmp122_ = NULL;
	gint _tmp122__length1 = 0;
	GeeDeque* _tmp123_ = NULL;
	gint _tmp124_ = 0;
	gint _tmp125_ = 0;
	GeeArrayList* _tmp126_ = NULL;
	gint _tmp127_ = 0;
	gint _tmp128_ = 0;
	gchar** _tmp129_ = NULL;
	gint _tmp129__length1 = 0;
	GeeArrayList* _tmp143_ = NULL;
	GeeDeque* _tmp144_ = NULL;
	GeeArrayList* _tmp145_ = NULL;
	gint _tmp146_ = 0;
	GeeDeque* _tmp147_ = NULL;
	gint _tmp148_ = 0;
	gint _tmp149_ = 0;
	GeeArrayList* _tmp150_ = NULL;
	gint _tmp151_ = 0;
	gint _tmp152_ = 0;
	GeeArrayList* _tmp153_ = NULL;
	GeeDeque* _tmp154_ = NULL;
	GeeArrayList* _tmp155_ = NULL;
	gint _tmp156_ = 0;
	GeeDeque* _tmp157_ = NULL;
	gint _tmp158_ = 0;
	gint _tmp159_ = 0;
	GeeArrayList* _tmp160_ = NULL;
	gint _tmp161_ = 0;
	gint _tmp162_ = 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) {
				gboolean _tmp45_ = FALSE;
				gint _tmp47_ = 0;
				gchar** _tmp48_ = NULL;
				gint _tmp48__length1 = 0;
				GeeDeque* _tmp49_ = NULL;
				gchar** _tmp50_ = NULL;
				gint _tmp50__length1 = 0;
				gint _tmp51_ = 0;
				const gchar* _tmp52_ = NULL;
				gboolean _tmp53_ = FALSE;
				GeeDeque* _tmp54_ = NULL;
				gint _tmp55_ = 0;
				gint _tmp56_ = 0;
				gint _tmp57_ = 0;
				_tmp45_ = _tmp44_;
				if (!_tmp45_) {
					gint _tmp46_ = 0;
					_tmp46_ = i;
					i = _tmp46_ + 1;
				}
				_tmp44_ = FALSE;
				_tmp47_ = i;
				_tmp48_ = to_offer;
				_tmp48__length1 = to_offer_length1;
				if (!(_tmp47_ < _tmp48__length1)) {
					break;
				}
				_tmp49_ = test_deque;
				_tmp50_ = to_offer;
				_tmp50__length1 = to_offer_length1;
				_tmp51_ = i;
				_tmp52_ = _tmp50_[_tmp51_];
				_tmp53_ = gee_deque_offer_tail (_tmp49_, _tmp52_);
				_vala_assert (_tmp53_, "test_deque.offer_tail (to_offer[i])");
				_tmp54_ = test_deque;
				_tmp55_ = gee_collection_get_size ((GeeCollection*) _tmp54_);
				_tmp56_ = _tmp55_;
				_tmp57_ = i;
				_vala_assert (_tmp56_ == (_tmp57_ + 1), "test_deque.size == i + 1");
			}
		}
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp58_ = FALSE;
			_tmp58_ = TRUE;
			while (TRUE) {
				gboolean _tmp59_ = FALSE;
				gint _tmp61_ = 0;
				gchar** _tmp62_ = NULL;
				gint _tmp62__length1 = 0;
				GeeDeque* _tmp63_ = NULL;
				gpointer _tmp64_ = NULL;
				gchar* _tmp65_ = NULL;
				gchar** _tmp66_ = NULL;
				gint _tmp66__length1 = 0;
				gchar** _tmp67_ = NULL;
				gint _tmp67__length1 = 0;
				gint _tmp68_ = 0;
				const gchar* _tmp69_ = NULL;
				GeeDeque* _tmp70_ = NULL;
				gpointer _tmp71_ = NULL;
				gchar* _tmp72_ = NULL;
				gchar** _tmp73_ = NULL;
				gint _tmp73__length1 = 0;
				gchar** _tmp74_ = NULL;
				gint _tmp74__length1 = 0;
				gint _tmp75_ = 0;
				const gchar* _tmp76_ = NULL;
				GeeDeque* _tmp77_ = NULL;
				gint _tmp78_ = 0;
				gint _tmp79_ = 0;
				gchar** _tmp80_ = NULL;
				gint _tmp80__length1 = 0;
				gint _tmp81_ = 0;
				_tmp59_ = _tmp58_;
				if (!_tmp59_) {
					gint _tmp60_ = 0;
					_tmp60_ = i;
					i = _tmp60_ + 1;
				}
				_tmp58_ = FALSE;
				_tmp61_ = i;
				_tmp62_ = to_offer;
				_tmp62__length1 = to_offer_length1;
				if (!(_tmp61_ < _tmp62__length1)) {
					break;
				}
				_tmp63_ = test_deque;
				_tmp64_ = gee_deque_peek_tail (_tmp63_);
				_tmp65_ = (gchar*) _tmp64_;
				_tmp66_ = to_offer;
				_tmp66__length1 = to_offer_length1;
				_tmp67_ = to_offer;
				_tmp67__length1 = to_offer_length1;
				_tmp68_ = i;
				_tmp69_ = _tmp66_[(_tmp67__length1 - _tmp68_) - 1];
				_vala_assert (g_strcmp0 (_tmp65_, _tmp69_) == 0, "test_deque.peek_tail () == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp65_);
				_tmp70_ = test_deque;
				_tmp71_ = gee_deque_poll_tail (_tmp70_);
				_tmp72_ = (gchar*) _tmp71_;
				_tmp73_ = to_offer;
				_tmp73__length1 = to_offer_length1;
				_tmp74_ = to_offer;
				_tmp74__length1 = to_offer_length1;
				_tmp75_ = i;
				_tmp76_ = _tmp73_[(_tmp74__length1 - _tmp75_) - 1];
				_vala_assert (g_strcmp0 (_tmp72_, _tmp76_) == 0, "test_deque.poll_tail () == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp72_);
				_tmp77_ = test_deque;
				_tmp78_ = gee_collection_get_size ((GeeCollection*) _tmp77_);
				_tmp79_ = _tmp78_;
				_tmp80_ = to_offer;
				_tmp80__length1 = to_offer_length1;
				_tmp81_ = i;
				_vala_assert (_tmp79_ == ((_tmp80__length1 - _tmp81_) - 1), "test_deque.size == to_offer.length - i - 1");
			}
		}
	}
	_tmp82_ = test_deque;
	_tmp83_ = gee_deque_peek_tail (_tmp82_);
	_tmp84_ = (gchar*) _tmp83_;
	_vala_assert (_tmp84_ == NULL, "test_deque.peek_tail () == null");
	_g_free0 (_tmp84_);
	_tmp85_ = test_deque;
	_tmp86_ = gee_deque_poll_tail (_tmp85_);
	_tmp87_ = (gchar*) _tmp86_;
	_vala_assert (_tmp87_ == NULL, "test_deque.poll_tail () == null");
	_g_free0 (_tmp87_);
	_tmp88_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp88_);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp89_ = FALSE;
			_tmp89_ = TRUE;
			while (TRUE) {
				gboolean _tmp90_ = FALSE;
				gint _tmp92_ = 0;
				gchar** _tmp93_ = NULL;
				gint _tmp93__length1 = 0;
				GeeDeque* _tmp94_ = NULL;
				gchar** _tmp95_ = NULL;
				gint _tmp95__length1 = 0;
				gint _tmp96_ = 0;
				const gchar* _tmp97_ = NULL;
				gboolean _tmp98_ = FALSE;
				_tmp90_ = _tmp89_;
				if (!_tmp90_) {
					gint _tmp91_ = 0;
					_tmp91_ = i;
					i = _tmp91_ + 1;
				}
				_tmp89_ = FALSE;
				_tmp92_ = i;
				_tmp93_ = to_offer;
				_tmp93__length1 = to_offer_length1;
				if (!(_tmp92_ < _tmp93__length1)) {
					break;
				}
				_tmp94_ = test_deque;
				_tmp95_ = to_offer;
				_tmp95__length1 = to_offer_length1;
				_tmp96_ = i;
				_tmp97_ = _tmp95_[_tmp96_];
				_tmp98_ = gee_deque_offer_tail (_tmp94_, _tmp97_);
				_vala_assert (_tmp98_, "test_deque.offer_tail (to_offer[i])");
			}
		}
	}
	_tmp99_ = test_deque;
	_tmp100_ = gee_collection_get_size ((GeeCollection*) _tmp99_);
	_tmp101_ = _tmp100_;
	_tmp102_ = to_offer;
	_tmp102__length1 = to_offer_length1;
	_vala_assert (_tmp101_ == _tmp102__length1, "test_deque.size == to_offer.length");
	_tmp103_ = test_deque;
	_tmp104_ = recipient;
	_tmp105_ = gee_deque_drain_tail (_tmp103_, (GeeCollection*) _tmp104_, 1);
	_vala_assert (_tmp105_ == 1, "test_deque.drain_tail (recipient, 1) == 1");
	_tmp106_ = test_deque;
	_tmp107_ = gee_collection_get_size ((GeeCollection*) _tmp106_);
	_tmp108_ = _tmp107_;
	_tmp109_ = to_offer;
	_tmp109__length1 = to_offer_length1;
	_vala_assert (_tmp108_ == (_tmp109__length1 - 1), "test_deque.size == to_offer.length - 1");
	_tmp110_ = recipient;
	_tmp111_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp110_);
	_tmp112_ = _tmp111_;
	_vala_assert (_tmp112_ == 1, "recipient.size == 1");
	_tmp113_ = recipient;
	_tmp114_ = gee_abstract_list_get ((GeeAbstractList*) _tmp113_, 0);
	_tmp115_ = (gchar*) _tmp114_;
	_tmp116_ = to_offer;
	_tmp116__length1 = to_offer_length1;
	_tmp117_ = to_offer;
	_tmp117__length1 = to_offer_length1;
	_tmp118_ = _tmp116_[_tmp117__length1 - 1];
	_vala_assert (g_strcmp0 (_tmp115_, _tmp118_) == 0, "recipient.get (0) == to_offer[to_offer.length - 1]");
	_g_free0 (_tmp115_);
	_tmp119_ = test_deque;
	_tmp120_ = recipient;
	_tmp121_ = gee_deque_drain_tail (_tmp119_, (GeeCollection*) _tmp120_, -1);
	_tmp122_ = to_offer;
	_tmp122__length1 = to_offer_length1;
	_vala_assert (_tmp121_ == (_tmp122__length1 - 1), "test_deque.drain_tail (recipient) == to_offer.length - 1");
	_tmp123_ = test_deque;
	_tmp124_ = gee_collection_get_size ((GeeCollection*) _tmp123_);
	_tmp125_ = _tmp124_;
	_vala_assert (_tmp125_ == 0, "test_deque.size == 0");
	_tmp126_ = recipient;
	_tmp127_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp126_);
	_tmp128_ = _tmp127_;
	_tmp129_ = to_offer;
	_tmp129__length1 = to_offer_length1;
	_vala_assert (_tmp128_ == _tmp129__length1, "recipient.size == to_offer.length");
	{
		gint i = 0;
		i = 1;
		{
			gboolean _tmp130_ = FALSE;
			_tmp130_ = TRUE;
			while (TRUE) {
				gboolean _tmp131_ = FALSE;
				gint _tmp133_ = 0;
				gchar** _tmp134_ = NULL;
				gint _tmp134__length1 = 0;
				GeeArrayList* _tmp135_ = NULL;
				gint _tmp136_ = 0;
				gpointer _tmp137_ = NULL;
				gchar* _tmp138_ = NULL;
				gchar** _tmp139_ = NULL;
				gint _tmp139__length1 = 0;
				gchar** _tmp140_ = NULL;
				gint _tmp140__length1 = 0;
				gint _tmp141_ = 0;
				const gchar* _tmp142_ = NULL;
				_tmp131_ = _tmp130_;
				if (!_tmp131_) {
					gint _tmp132_ = 0;
					_tmp132_ = i;
					i = _tmp132_ + 1;
				}
				_tmp130_ = FALSE;
				_tmp133_ = i;
				_tmp134_ = to_offer;
				_tmp134__length1 = to_offer_length1;
				if (!(_tmp133_ < _tmp134__length1)) {
					break;
				}
				_tmp135_ = recipient;
				_tmp136_ = i;
				_tmp137_ = gee_abstract_list_get ((GeeAbstractList*) _tmp135_, _tmp136_);
				_tmp138_ = (gchar*) _tmp137_;
				_tmp139_ = to_offer;
				_tmp139__length1 = to_offer_length1;
				_tmp140_ = to_offer;
				_tmp140__length1 = to_offer_length1;
				_tmp141_ = i;
				_tmp142_ = _tmp139_[(_tmp140__length1 - _tmp141_) - 1];
				_vala_assert (g_strcmp0 (_tmp138_, _tmp142_) == 0, "recipient.get (i) == to_offer[to_offer.length - i - 1]");
				_g_free0 (_tmp138_);
			}
		}
	}
	_tmp143_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp143_);
	_tmp144_ = test_deque;
	_tmp145_ = recipient;
	_tmp146_ = gee_deque_drain_tail (_tmp144_, (GeeCollection*) _tmp145_, 1);
	_vala_assert (_tmp146_ == 0, "test_deque.drain_tail (recipient, 1) == 0");
	_tmp147_ = test_deque;
	_tmp148_ = gee_collection_get_size ((GeeCollection*) _tmp147_);
	_tmp149_ = _tmp148_;
	_vala_assert (_tmp149_ == 0, "test_deque.size == 0");
	_tmp150_ = recipient;
	_tmp151_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp150_);
	_tmp152_ = _tmp151_;
	_vala_assert (_tmp152_ == 0, "recipient.size == 0");
	_tmp153_ = recipient;
	gee_abstract_collection_clear ((GeeAbstractCollection*) _tmp153_);
	_tmp154_ = test_deque;
	_tmp155_ = recipient;
	_tmp156_ = gee_deque_drain_tail (_tmp154_, (GeeCollection*) _tmp155_, -1);
	_vala_assert (_tmp156_ == 0, "test_deque.drain_tail (recipient) == 0");
	_tmp157_ = test_deque;
	_tmp158_ = gee_collection_get_size ((GeeCollection*) _tmp157_);
	_tmp159_ = _tmp158_;
	_vala_assert (_tmp159_ == 0, "test_deque.size == 0");
	_tmp160_ = recipient;
	_tmp161_ = gee_abstract_collection_get_size ((GeeCollection*) _tmp160_);
	_tmp162_ = _tmp161_;
	_vala_assert (_tmp162_ == 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);
}



