diff --git a/lib/parfait/word.rb b/lib/parfait/word.rb index 60776549..15e0e3d6 100644 --- a/lib/parfait/word.rb +++ b/lib/parfait/word.rb @@ -190,6 +190,33 @@ module Parfait def padded_length Object.padded( 4 * get_type().instance_length + @char_length ) end + + def insert(index, other) + if index<0 + index = length+1+index + end + cpy = Word.new( length+other.length ) + cpy_ind=0 + str_ind=0 + while ( str_ind self.length s = other.length @@ -202,6 +229,7 @@ module Parfait end return true end + private def check_length raise "Length out of bounds #{char_length}" if @char_length > 1000 diff --git a/test/parfait/test_word.rb b/test/parfait/test_word.rb index 3a876ffd..9e1c844f 100644 --- a/test/parfait/test_word.rb +++ b/test/parfait/test_word.rb @@ -26,5 +26,23 @@ module Parfait @word.set_char(1 , 32) end end + def test_insert_1 + a = Parfait.new_word("abc") + b = Parfait.new_word("d") + ans = Parfait.new_word("abcd") + assert_equal ans, a.insert(-1,b) + end + def test_insert_2 + a1 = Parfait.new_word("what name") + b1 = Parfait.new_word("is your ") + ans = Parfait.new_word("what is your name") + assert_equal ans, a1.insert(5, b1) + end + def test_insert_3 + a2 = Parfait.new_word("life") + b2 = Parfait.new_word("sad ") + ans = Parfait.new_word("sad life") + assert_equal ans, a2.insert(0, b2) + end end end