Merge branch 'master' into master
This commit is contained in:
commit
a04c27e1b0
@ -13,7 +13,8 @@ module Parfait
|
|||||||
# Object length is measured in non-type cells though
|
# Object length is measured in non-type cells though
|
||||||
|
|
||||||
class Word < Data8
|
class Word < Data8
|
||||||
attr_reader :char_length , :next_word
|
attr_reader :char_length ,:next_word
|
||||||
|
|
||||||
|
|
||||||
def self.type_length
|
def self.type_length
|
||||||
3 # 0 type , 1 char_length , next_word
|
3 # 0 type , 1 char_length , next_word
|
||||||
@ -199,23 +200,36 @@ module Parfait
|
|||||||
str_ind=0
|
str_ind=0
|
||||||
while ( str_ind<index )
|
while ( str_ind<index )
|
||||||
cpy.set_char(cpy_ind,get_char(str_ind))
|
cpy.set_char(cpy_ind,get_char(str_ind))
|
||||||
cpy_ind=cpy_ind+1
|
cpy_ind=cpy_ind+1
|
||||||
str_ind=str_ind+1
|
str_ind=str_ind+1
|
||||||
end
|
end
|
||||||
oth_ind=0
|
oth_ind=0
|
||||||
while ( oth_ind<other.length )
|
while ( oth_ind<other.length )
|
||||||
cpy.set_char(cpy_ind,other.get_char(oth_ind))
|
cpy.set_char(cpy_ind,other.get_char(oth_ind))
|
||||||
cpy_ind=cpy_ind+1
|
cpy_ind=cpy_ind+1
|
||||||
oth_ind=oth_ind+1
|
oth_ind=oth_ind+1
|
||||||
end
|
end
|
||||||
while ( str_ind<length )
|
while ( str_ind<length )
|
||||||
cpy.set_char(cpy_ind,get_char(str_ind))
|
cpy.set_char(cpy_ind,get_char(str_ind))
|
||||||
str_ind=str_ind+1
|
str_ind=str_ind+1
|
||||||
cpy_ind=cpy_ind+1
|
cpy_ind=cpy_ind+1
|
||||||
end
|
end
|
||||||
cpy
|
cpy
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def start_with(other)
|
||||||
|
return false if other.length > self.length
|
||||||
|
s = other.length
|
||||||
|
i=0
|
||||||
|
while i<=s-1
|
||||||
|
if other.get_char(i) != self.get_char(i)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
i=i+1
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
def check_length
|
def check_length
|
||||||
raise "Length out of bounds #{char_length}" if @char_length > 1000
|
raise "Length out of bounds #{char_length}" if @char_length > 1000
|
||||||
|
@ -6,6 +6,7 @@ module Parfait
|
|||||||
super
|
super
|
||||||
@word = Parfait::Word.new(5)
|
@word = Parfait::Word.new(5)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_len
|
def test_len
|
||||||
assert_equal 5 , @word.length
|
assert_equal 5 , @word.length
|
||||||
end
|
end
|
||||||
@ -83,6 +84,28 @@ module Parfait
|
|||||||
two = Parfait.new_word("one")
|
two = Parfait.new_word("one")
|
||||||
assert one.compare(two)
|
assert one.compare(two)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_start_with1
|
||||||
|
one = Parfait.new_word("Hello")
|
||||||
|
two = Parfait.new_word("Hel")
|
||||||
|
assert one.start_with(two)
|
||||||
|
end
|
||||||
|
def test_start_with2
|
||||||
|
one = Parfait.new_word("Vanilla")
|
||||||
|
two = Parfait.new_word("Va")
|
||||||
|
assert one.start_with(two)
|
||||||
|
end
|
||||||
|
def test_start_with3
|
||||||
|
one = Parfait.new_word("hello")
|
||||||
|
two = Parfait.new_word("hellooo")
|
||||||
|
assert_equal false, one.start_with(two)
|
||||||
|
end
|
||||||
|
def test_start_with4
|
||||||
|
one = Parfait.new_word("bajjs")
|
||||||
|
two = Parfait.new_word("bgjj")
|
||||||
|
assert_equal false, one.start_with(two)
|
||||||
|
end
|
||||||
|
|
||||||
def test_first_char
|
def test_first_char
|
||||||
one = Parfait.new_word("one")
|
one = Parfait.new_word("one")
|
||||||
one.set_char(0 , "T".ord)
|
one.set_char(0 , "T".ord)
|
||||||
|
Loading…
Reference in New Issue
Block a user