You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: parse_c.rb
    path of file: ./repos/grinder/node/lib/metasm/tests
    
    the code of the file until where you have to start completion: #    This file is part of Metasm, the Ruby assembly manipulation suite
#    Copyright (C) 2006-2009 Yoann GUILLOT
#
#    Licence is LGPL,
    
	def test_cmpstruct
st = <<EOS
struct foo {
	struct foo *p;
	int i;
};

struct s1 {
	struct s2 *p;
};

struct s2 {
	struct s1 *p;
};
EOS
		cp.parse st
		cp.parse <<EOS
struct t1 {
	struct t2 *pt;
};
struct t2 {
	struct t1 *pt;
};
EOS

		cp2 = Metasm::Ia32.new.new_cparser
		cp2.parse(st)
		cp2.parse <<EOS
struct t1 {
	struct t2 *pt;
};
struct t2 {
	struct t3 *pt;
};
struct t3 {
	struct t1 *pt;
};
EOS
		assert_equal(true, cp.toplevel.struct['foo'] == cp2.toplevel.struct['foo'])
		assert_equal(true, cp.toplevel.struct['s1'].compare_deep(cp2.toplevel.struct['s1']))
		assert_equal(true, cp.toplevel.struct['t1'] == cp2.toplevel.struct['t1'])	# expected failure
		assert_equal(false, !!cp.toplevel.struct['t1'].compare_deep(cp2.toplevel.struct['t1']))
	end