Мне дали этот тестовый класс от учителя, и у меня есть проблема с пониманием того, как реализовать мой класс, чтобы создать себя в этом порядке.
код:
t5: BOOLEAN
local
bag: MY_BAG[STRING]
bag3: like bag2
bag4: MY_BAG[STRING]
do
comment("t5:test add_all, remove all, remove")
bag := <<["nuts", 4], ["bolts", 11], ["hammers", 5]>> -- how to implement it to allow this?
bag3 := <<["nuts", 2], ["bolts", 6], ["hammers", 5]>>
-- add_all
bag3.add_all (bag1)
Result := bag3 |=| bag
check Result end
-- remove_all
bag3.remove_all (bag1)
Result := bag3 |=| bag2 and bag3.total = 13
check Result end
--remove
bag4 := <<["nuts", 2], ["bolts", 6]>>
bag3.remove ("hammers", 5)
Result := bag3 |=| bag4
end
setup -- inherit from ES_TEST redefine setup end
-- this runs before every test
do
bag1 := <<["nuts", 2], ["bolts", 5]>>
bag2 := <<["nuts", 2], ["bolts", 6], ["hammers", 5]>>
end
В настоящее время, когда я компилирую с такими тестовыми примерами, он выдает ошибки компилятора, говорящие о том, что создание является неправильным, несовместимым.
Мои конструкторы в данный момент создают пустую HASH_TABLE, поэтому мой вопрос: как мне убедиться, что я могу инициализировать свой класс сумки так, как код его тестирует?