Forum: IronRuby Array Specs

D7aaf307f96bbdf5ff39be313fe581be?d=identicon&s=25 Orion Edwards (Guest)
on 2012-01-04 22:57
(Received via mailing list)
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
Cb51033949ffccd982ae32c9f890f25a?d=identicon&s=25 Tomas Matousek (Guest)
on 2012-01-05 05:59
(Received via mailing list)
Cool! I'll take a look asap.

Tomas

From: ironruby-core-bounces@rubyforge.org
[mailto:ironruby-core-bounces@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
D7aaf307f96bbdf5ff39be313fe581be?d=identicon&s=25 Orion Edwards (Guest)
on 2012-01-05 23:05
(Received via mailing list)
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.Matousek@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-bounces@rubyforge.org



Cool! I?ll take a look asap.

Tomas

From: ironruby-core-bounces@rubyforge.org [
mailto:ironruby-core-bounces@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
D7aaf307f96bbdf5ff39be313fe581be?d=identicon&s=25 Orion Edwards (Guest)
on 2012-02-01 03:36
(Received via mailing list)
_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org
http://rubyforge.org/mailman/listinfo/ironruby-core
This topic is locked and can not be replied to.