Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

il metodo utilizzo

R
RigelsHysaj (1550 points)
10 36 50
in Es2 by (1.6k points)

da tanto tempo che sbatto la testa e non riesco proprio a capire perché non dovrebbe funzionare il metodo utilizzo.

quando invoco il metodo aggiungi, aggiungo in una lista il parametro x cosi' metto qualche controllo e non aggiungo due rettangoli che hanno la stessa x. Quindi prima di aggiungere nella lista l'istanza ret, controllo appunto s'è x non ci sta nella lista e controllo se il colore del ret è diverso dal colore dello sfondo. Poi nel metodo utilizzo siccome sk è un oggetto di tipo Skyline, contiene la lista contenente istanze della classe Rettangolo, quindi scorro la lista e per ogni istanza, se il colore della istanza è uguale al colore che sto cercando, aumento un contatore. Alla fine torno quel contatore. 

Pero' mi da solo errori:

 0 != 3 :
 0 != 3  <- il numero di palazzi neri non è giusto

 0 != 4 :
 0 != 4  <- il numero di palazzi rossi non è giusto

non so perchè torna sempre 0.

411 views

1 Answer

a.capobianco1 (16770 points)
14 54 165
by (16.8k points)
Non è che per caso confronti oggetto Colore con tupla colore o viceversa? In ogni caso immagino tu abbia una clausola if
Fai una prova manuale e Metti un print nella clausola in cui aggiungi 1 al contatore per vedere se il confronto è giusto
R
RigelsHysaj (1550 points)
10 36 50
by (1.6k points)
Traceback (most recent call last):
  File "C:\Users\User\Anaconda3\lib\site-packages\ddt.py", line 145, in wrapper
    return func(self, *args, **kwargs)
  File "test_02.py", line 238, in test_22b_Skyline_fondi
    self.do_test(s,  *s_specs, file1, file2)
  File "test_02.py", line 34, in do_test
    self.check(Test.rosso.utilizzo(sk), ru, None, "il numero di palazzi rossi non è giusto")
  File "C:\Users\User\Desktop\homework03\homework03\testlib.py", line 31, in check
    self.assertEqual(value, expected, msg)
AssertionError: 0 != 4 :
                0 != 4  <- il numero di palazzi rossi non è giusto

io il metodo fondi non l'ho ancora implementato,

dove puo essere l'errore?
R
RigelsHysaj (1550 points)
10 36 50
by (1.6k points)

ma dopo aver aggiunto tutti i rettangoli in una lista nel metodo aggiungi, devo ordinare la lista li con crescente?

Xriuk (13590 points)
8 24 116
by (13.6k points)

io il metodo fondi non l'ho ancora implementato

 E cosa aspetti? I test sono composti in fila, cioè i risultati dei test precedenti sono i dati in input dei test successivi. E ad un certo punto è previsto che degli skyline si fondano, implementa tutti i metodi e poi esegui i test.

Se vuoi provare il tu programma prima, ti consiglio di farlo a mano sotto il tuo codice: crea uno skyline, aggiungi degli edifici e prova i tuoi metodi singolarmente.

R
RigelsHysaj (1550 points)
10 36 50
by (1.6k points)

io il metodo fondi(self,other) l'ho implementato in questo modo:

tutti i rettangoli che ho salvato nella lista in other li aggiungo nella lista in self se soddisfano il punto 1) e 2). Forse ho implementato male il metodo salva, pero' penso che il metodo salva viene chiamato per ultimo e non mi darebbe problemi con il metodo utlizzo, oppure puo essere che anche se il metodo utilizzo è implementato bene, implementando male il metodo salva, mi potrebbe dare errori nel metodo utilizzo?  Ma la lista dei rettangoli si ordina solo nel metodo salva? Perché si deve ordinare?

Cmq graize mille per le risposte