Merge pull request #5 from kkburr/65851840_about_array_assignment_master

about array assignment master

[Delivers #65851840]
Fixes def test_creating_arrays.

* Learned that an empty array class = Array

* Learned that an empty array size = 0


[#65851838]
Fixes def test_creating_arrays.

* Learned that an empty array class = Array

* Learned that an empty array size = 0


[#65851838]
Encountering resistance in koans....committing what I have and switching to another branch.


[#65851838]
Fixes def test_array_literals in about_arrays.rb & 
the error in edgecase.rb that was preventing tests from running.

* I learned that array << 333 will insert 333 at the end of the array.

[#65851838]
Fixes def test_accessing_array_elements.

Verified that in an array of [1, 2, 3, 4], the following commands will result:

* array[0] = 1

* array.first = 1

* array[3] = 4

* array.last = 4

* array[-1] = 4

* array[-3] = 2

[#65851838]
Fixes def test_slicing_arrays. 

Learned that, if array = [:peanut, :butter, :and, :jelly]

* array[0,1] = [:peanut]

* array[0,2] = [:peanut, :butter]

* array[2,2] = [:and, :jelly]

* array[2,20] = [:and, :jelly]

* array[4,0] = []

* array[4,100] = []

* array[5,0] = nil


[#65851838]
Fixes def test_arrays_and_ranges. 

I learned that:

* The class for (1..5) is Range.

* Calling (1..5) gives you the array [1, 2, 3, 4 ,5]

* Calling .to_a also gives you the array [1, 2, 3, 4, 5]

* Calling .to_a on the range (1...5) gives you the stunted array [1, 2, 3, 4]


[#65851838]
Fixes def test_slicing_with_ranges. 

* I learned that asserting array[2..-1] on array [1, 2, 3, 4] = [3, 4].

[#65851838]
Fixes def test_pushing_and_popping_arrays. 

* Learned that when using .pop method, 
must save value into a new object. Ex:

* array = [1, 2, :last]

* popped_value = array.pop

* popped_value = :last

* array = [1, 2]


[#65851838]
Fixes def test_shifting_arrays.

*   Learned that when a value is shifted out of an array,
it needs to be saved in a new object or else is lost. 


[#65851838]
Fixes def test_accessing_array_elements.

Verified that in an array of [1, 2, 3, 4], the following commands will result:

* array[0] = 1

* array.first = 1

* array[3] = 4

* array.last = 4

* array[-1] = 4

* array[-3] = 2

[#65851838]
Fixes def test_slicing_arrays. 

Learned that, if array = [:peanut, :butter, :and, :jelly]

* array[0,1] = [:peanut]

* array[0,2] = [:peanut, :butter]

* array[2,2] = [:and, :jelly]

* array[2,20] = [:and, :jelly]

* array[4,0] = []

* array[4,100] = []

* array[5,0] = nil


[#65851838]