I have the following unittest questions I am trying to pass.
def test_map2(self):
self.home = []
self.home.append(Bed('Bedroom'))
self.home.append(Sofa('Living Room'))
self.home.append(Table('Bedroom'))
mapping = map_the_home(self.home)
self.assertTrue(isinstance(mapping['Bedroom'][0], Bed))
self.assertTrue(isinstance(mapping['Living Room'][0], Sofa))
self.assertTrue(isinstance(mapping['Bedroom'][1], Table))
Every value should be a list, with one or more Furnishing subclass instances inside.
This is my current try.
class Furnishing(object):
def __init__(self, room):
self.room = room
class Sofa(Furnishing):
name = 'Sofa'
class Bed(Furnishing):
name = 'Bed'
class Table(Furnishing):
name = 'Table'
def map_the_home(home):
results = {}
for furnitiure in home:
if furnitiure.room in results:
results[furnitiure.room] = (results[furnitiure.room],furnitiure)
else:
results[furnitiure.room] = furnitiure
return results
def counter(home):
counter_list = {}
for line in home:
if line.name in counter_list:
print(line.room,line.name)
counter_list[line.name] = counter_list[line.name] + 1
else:
counter_list[line.name] = 1
for furniture in counter_list:
print('{0} = {1}'.format(furniture,counter_list[furniture]))
if __name__ == "__main__":
home = []
home.append(Bed('Bedroom'))
home.append(Sofa('Living Room'))
home.append(Table('Bedroom'))
map_the_home(home)
counter(home)
The counter is just another part but wanted to give full code. I thought I had this using dict, but as the test says I need to have every value in a list with Furnishing subclass instances inside. Any insight would be great
results[furnitiure.room] = (results[furnitiure.room], furnitiure)doesn't do what you want.