Salve,
Sto implementando il HW2 Recupero, e nonostante quattro test passino,
gli altri quattro mi danno dei risultati completamente diversi.
Il primo esempio e' quello del test: test_init-1000_txs-10.
Ho modificato il numero dei conti per rendere il test piu' leggibile, e dato i parametri seguenti:
givenTransactionLogs = [
[[1, 3], 0, 22, 17],
[[2, 3], 900, 11, 18],
[[3, 1], 600, 11, 13],
[[2, 3], 1100, 22, 20],
[[1, 3], 700, 11, 4],
[[2, 3], 1400, 11, 3],
[[1, 3], 1000, 11, 19],
[[2, 1], 500, 22, 17],
[[3, 1], 1900, 11, 7],
[[2, 1], 2800, 22, 11]
]
program.ex1(1, 2, 3, 11, 22, 1000, givenTransactionLogs)
questo e' il comportamento interno di ogni transazione
0 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[1, 3], 0, 22, 17]
([1000, 1000, 1000], [0, 0], [[0, 0, 0], [0, 0, 0]]) ([1000.0, 1000, 1000], [0, 0.0], [[0, 0, 0], [0, 0, 0]]) ([1000.0, 1000, 1000], [0, 0.0], [[0, 0, 0], [0, 0, 0]]) |
1 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[2, 3], 900, 11, 18]
([1000.0, 1000, 1000], [0, 0.0], [[0, 0, 0], [0, 0, 0]]) ([1000.0, 0.0, 1900], [100.0, 0.0], [[0, -62.0, 0], [0, 0, 0]]) ([1000.0, 0.0, 1900], [100.0, 0.0], [[0, -62.0, 0], [0, 0, 0]]) |
2 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[3, 1], 600, 11, 13]
([1000.0, 0.0, 1900], [100.0, 0.0], [[0, -62.0, 0], [0, 0, 0]]) ([1600.0, 0.0, 1222.0], [178.0, 0.0], [[0, -62.0, 0], [0, 0, 0]]) ([1600.0, 0.0, 1222.0], [178.0, 0.0], [[0, -62.0, 0], [0, 0, 0]]) |
3 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[2, 3], 1100, 22, 20]
([1600.0, 0.0, 1222.0], [178.0, 0.0], [[0, -62.0, 0], [0, 0, 0]]) ([1600.0, 0.0, 1222.0], [178.0, 0.0], [[0, -62.0, 0], [0, -220.0, 0]]) ([1600.0, 0.0, 1222.0], [178.0, 0.0], [[0, -62.0, 0], [0, -220.0, 0]]) |
4 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[1, 3], 700, 11, 4]
([1600.0, 0.0, 1222.0], [178.0, 0.0], [[0, -62.0, 0], [0, -220.0, 0]]) ([872.0, 0.0, 1922.0], [206.0, 0.0], [[0, -62.0, 0], [0, -220.0, 0]]) ([872.0, 0.0, 1922.0], [206.0, 0.0], [[0, -62.0, 0], [0, -220.0, 0]]) |
5 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[2, 3], 1400, 11, 3]
([872.0, 0.0, 1922.0], [206.0, 0.0], [[0, -62.0, 0], [0, -220.0, 0]]) ([872.0, 0.0, 1922.0], [206.0, 0.0], [[0, -104.0, 0], [0, -220.0, 0]]) ([872.0, 0.0, 1922.0], [206.0, 0.0], [[0, -104.0, 0], [0, -220.0, 0]]) |
6 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[1, 3], 1000, 11, 19]
([872.0, 0.0, 1922.0], [206.0, 0.0], [[0, -104.0, 0], [0, -220.0, 0]]) ([682.0, 0.0, 1922.0], [396.0, 0.0], [[0, -104.0, 0], [0, -220.0, 0]]) ([682.0, 0.0, 1922.0], [396.0, 0.0], [[0, -104.0, 0], [0, -220.0, 0]]) |
7 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[2, 1], 500, 22, 17]
([682.0, 0.0, 1922.0], [396.0, 0.0], [[0, -104.0, 0], [0, -220.0, 0]]) ([682.0, 0.0, 1922.0], [396.0, 0.0], [[0, -104.0, 0], [0, -305.0, 0]]) ([682.0, 0.0, 1922.0], [396.0, 0.0], [[0, -104.0, 0], [0, -305.0, 0]]) |
8 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[3, 1], 1900, 11, 7]
([682.0, 0.0, 1922.0], [396.0, 0.0], [[0, -104.0, 0], [0, -305.0, 0]]) ([2582.0, 0.0, 0.0], [418.0, 0.0], [[0, -104.0, -111.0], [0, -305.0, 0]]) ([2582.0, 0.0, 0.0], [418.0, 0.0], [[0, -104.0, -111.0], [0, -305.0, 0]]) |
9 | GIVEN TRAN
BEFORE AFTER TRAN AFTER PAYING DEBT |
[[2, 1], 2800, 22, 11]
([2582.0, 0.0, 0.0], [418.0, 0.0], [[0, -104.0, -111.0], [0, -305.0, 0]]) ([2582.0, 0.0, 0.0], [418.0, 0.0], [[0, -104.0, -111.0], [0, -613.0, 0]]) ([2582.0, 0.0, 0.0], [418.0, 0.0], [[0, -104.0, -111.0], [0, -613.0, 0]]) |
RISULTATO FINALE MIO | ([2582.0, 0.0, 0.0], [418.0, 0.0], [[0, -104.0, -111.0], [0, -613.0, 0]]) | |
RISULTATO EXPECTED NEL TEST | ([ 682, 183, 889], [ 633, 613 ], [ [ 0, 0, 0 ], [ 0, 0, 0 ] ]) |
Con questi dati, anche seguendo uno per uno, non riesco a capire come e' possible arrivare al risultato previsto nel test "test_init-1000_txs-10".
Ho problemi anche con altri tre test, ma spero che risolto questo si possa risolvere anche gli altri.
EDIT:
Nel frattempo guardando molto attentamente il test "test_init-1000_txs-10", sorgono altre domande:
Come e' possible che il conto numero 2 abbia ancora saldo e non abbia nessun debito,
considerato che non riceve mai danaro?
Qualche consiglio o suggerimento?
Grazie.
Zenno