I've pushed some more changes to that branch:

fixed              pop_spec.rb
fixed              rindex_spec.rb
fixed              rotate_spec.rb
fixed              flatten_spec.rb

I also had a look at a couple of others but didn't fix them:

hash_spec.rb
This requires changing implementation of RubyArray#GetHashCode which I 
wasn't confident enough to do
In ruby, a recursive array equals itself, and therefore the hashcodes 
should match. IronRuby's implementation of hash doesn't support this. 
Furthermore, the following code should pass, which seemed quite a bit 
harder:

a = [1]
a << a
[1,a] == a # both MRI and IR report true for this
[1,a].hash == a.hash  # Because objects are equal, hash should be too. MRI 
supports this, IR does not.

product_spec.rb
This was causing the tests to hang/crash because IR wasn't sanity checking 
lengths. Rubyspec has a test which tries to create a stupdendously large 
product array, and so IR would run out of memory.
I added range checking so the tests no longer hang/crash, but there is 
some additional behaviour (you can pass a block to Array#product in 1.9) 
that I haven't implemented.

Here's the output for mspec of the array folder:

IR

Finished in 18.282046 seconds
112 files, 2393 examples, 4819 expectations, 191 failures, 72 errors

MRI 1.9.2 p290

Finished in 2.189125 seconds
112 files, 2393 examples, 4922 expectations, 162 failures, 0 errors

Thanks, Orion


From:   Tomas Matousek <tomas.matou...@microsoft.com>
To:     "ironruby-core@rubyforge.org" <ironruby-core@rubyforge.org>
Date:   05/01/2012 05:59 p.m.
Subject:        Re: [Ironruby-core] Array Specs
Sent by:        ironruby-core-boun...@rubyforge.org



Cool! I?ll take a look asap.
 
Tomas
 
From: ironruby-core-boun...@rubyforge.org [
mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Orion Edwards
Sent: Wednesday, January 04, 2012 1:54 PM
To: ironruby-core@rubyforge.org
Subject: [Ironruby-core] Array Specs
 
I've been working on bringing IronRuby up to speed with rubyspec, and 
picked the core\array folder as a start: 

My pull request is here: 

https://github.com/IronLanguages/main/pull/52 

I'd like to fix them all, but I'm not sure if I'll have the time to do so 
- 

Here is a summary of the rubyspec\core\array folder as of right now: 
---------------------------------------- 
ok means the spec was already passing 
fixed means the spec was failing, and I have fixed it 
FAILS means the specs fail, and I have not fixed them yet 

ok                 allocate_spec.rb 
ok                 append_spec.rb 
ok                 array_spec.rb 
ok                 assoc_spec.rb 
ok                 at_spec.rb 
ok                 choice_spec.rb 
ok                 clear_spec.rb 
ok                 clone_spec.rb 
ok                 collect_spec.rb 
ok                 combination_spec.rb 
ok                 compact_spec.rb 
ok                 comparison_spec.rb 
ok                 concat_spec.rb 
ok                 constructor_spec.rb 
ok                 count_spec.rb 
ok                 cycle_spec.rb 
ok                 delete_at_spec.rb 
ok                 delete_if_spec.rb 
ok                 delete_spec.rb 
ok                 drop_spec.rb 
ok                 drop_while_spec.rb 
ok                 dup_spec.rb 
ok                 each_index_spec.rb 
ok                 each_spec.rb 
ok                 element_reference_spec.rb 
fixed              element_set_spec.rb 
ok                 empty_spec.rb 
ok                 eql_spec.rb 
ok                 equal_value_spec.rb 
ok                 fetch_spec.rb 
fixed              fill_spec.rb 
ok                 find_index_spec.rb 
ok                 first_spec.rb 
FAILS              flatten_spec.rb 
ok                 frozen_spec.rb 
FAILS              hash_spec.rb 
ok                 include_spec.rb 
ok                 indexes_spec.rb 
ok                 index_spec.rb 
ok                 indices_spec.rb 
ok                 initialize_copy_spec.rb 
ok                 initialize_spec.rb 
ok                 insert_spec.rb 
FAILS              inspect_spec.rb 
ok                 intersection_spec.rb 
FAILS              join_spec.rb 
FAILS              keep_if_spec.rb 
ok                 last_spec.rb 
ok                 length_spec.rb 
ok                 map_spec.rb 
ok                 minus_spec.rb 
FAILS              multiply_spec.rb 
ok                 new_spec.rb 
ok                 nitems_spec.rb 
FAILS in MRI also  pack_spec.rb 
ok                 partition_spec.rb 
ok                 permutation_spec.rb 
ok                 plus_spec.rb 
FAILS              pop_spec.rb 
!! HANGS           product_spec.rb 
ok                 push_spec.rb 
ok                 rassoc_spec.rb 
ok                 reject_spec.rb 
FAILS              repeated_combination_spec.rb 
FAILS              repeated_permutation_spec.rb 
ok                 replace_spec.rb 
ok                 reverse_each_spec.rb 
ok                 reverse_spec.rb 
FAILS              rindex_spec.rb 
FAILS              rotate_spec.rb 
fixed              sample_spec.rb 
fixed              select_spec.rb 
fixed              shift_spec.rb 
fixed              shuffle_spec.rb 
ok                 size_spec.rb 
FAILS              slice_spec.rb 
FAILS hard to fix  sort_by_spec.rb 
FAILS hard to fix  sort_spec.rb 
ok                 take_spec.rb 
ok                 take_while_spec.rb 
ok                 to_ary_spec.rb 
ok                 to_a_spec.rb 
ok                 to_s_spec.rb 
ok                 transpose_spec.rb 
ok                 try_convert_spec.rb 
ok                 union_spec.rb 
fixed              uniq_spec.rb 
ok                 unshift_spec.rb 
ok                 values_at_spec.rb 
fixed              zip_spec.rb
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to