Uppgift 1
Problem med klassen ”PrettyPrint”. Ändrade namn på den till ”APrettyPrint” för att undvika konflikt.
När man testar ”adder” funktionen mer än två gånger så får vi problem. Vi vet inte hur vi ska lösa det, och har inte tid att felsöka så vi går vidare med uppgiften istället.
Vi namngav en variabel som inte fungerade som vi hade tänkt, den hette ”_f-32″, det tolkades nog som att vi ville dra bort 32 från variabeln ”_f”. Vi döpte då om den till ”_f_32″ istället så fungerade allt som det skulle.
Uppgift 2
När vi kör testfallet så får vi ett felmeddelande:
NoMethodError: undefined method `name’ for #.
I koden så används metoder som inte finns, eller så är dem felskrivna. ”.name” är en metod som faktiskt finns, men bara för Connectors. Att koden försöker kalla på metoden ”.name” för en Adder verkar då väldigt konstigt.
Det finns tillexempel en metod som kallas som heter ”get_connector”. Dock så finns den inte definierad, men det finns en ”get_connectors” (ett ”s” på slutet). Är det meningen att vi ska skriva den metoden som saknas, eller refererar koden till fel metod?
Kom fram till att vi skulle definiera ”get_connector” för att returnera en Connector (om vi fick in t.ex. en Adder eller Multiplier). Vi inkluderade fel fil i början, eftersom vi döpt om ”constraint_network” till ”uppgift_1″. Problemet blev då istället att i formeln 9*c=5*(f-32)
så räknar den ut
5*f = 9*c istället för
5*(f-32) = 9*c och vi förstår ännu inte varför det är så. Vi har tittat på reglerna och det ser ut som att det borde tolkas rätt. Debuggern visar till och med att den räknar med värdet f-32, men inte just i det steget ovan, vilket är förvirrande!
När man ändrar f-32 till f+32 så fungerar allting, vilket får oss att misstänka att det är något som är fel på just ”-” operatorn. Vi vet ännu inte hur vi ska lösa det dock.
Till slut så kom vi fram till att om vi struntar i att lägga till utdatan i hashtabellen, så kunde man kolla vilket utdata vi skulle hämta genom att se om den fanns i hashtabellen eller inte. Sen så lägger vi till den i hashtabellen ändå. Det uppstår problem om vi har för många grenar, men för just det här exemplet så fungerar det som det ska, och även enklare formler som t.ex. ”c + 5 = f”. Vi har funderat lite på varför det inte fungerar när vi skriver lite mer komplicerade funktioner, men har inte kommit fram till någon bra lösning till det.