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

Do you need help?

Svolgere test nell' if name ==main

twgever (17470 points)
8 29 105
in HW2 di recupero by (17.5k points)
edited by
Provavo a svolgere l'HW2rec, e sono riuscito a sviluppare un algoritmo che mi passa tutti i test, tranne l'ultimo per via del timeout. Volevo usare il line profiler sul codice mentre esegue l'ultimo test (visto che i test d'esempio sono cortissimi e non permettono di identificare le parti della funzione che richiedono più tempo). Ho provato a fare copia incolla del test in questione, ma dopo 30 secondi di selezione, mi sono reso conto ci avrei messo circa mezz'ora. Ho provato a vedere come fa il test.py a svolgere i test, ma non sono riuscito ad applicarlo al codice. avete consigli?

(consigli su come velocizzare l'HW2rec sono ben graditi pure, ma ha la precedenza come risolvere la questione proposta nel titolo)
294 views
closed

2 Answers

Best answer
G
Giuseppe01 (1500 points)
0 0 10
by (1.5k points)
selected by
Se è solo ai fini dei tuoi test personali credo che tu possa importare il modulo json e caricare il contenuto del campo che ti interessa, per esempio in una lista, per poi passarlo ad ex1()
twgever (17470 points)
8 29 105
by (17.5k points)
Questo sembra utile, ma come si fa?

import json?

a=load("nomefile")?

e poi?
G
Giuseppe01 (1500 points)
0 0 10
by (1.5k points)

Sì, importi il modulo, poi devi aprire il file (ovviamente ti serve il path assoluto o relativo alla working directory) e caricarne il contenuto in una variabile come hai scritto. Fatto questo puoi accedere ai campi della struttura JSON in stile dizionario.

Trovi degli esempi qui.

twgever (17470 points)
8 29 105
by (17.5k points)
grazie mille, esattamente quello che mi serviva :)
G
Giuseppe01 (1500 points)
0 0 10
by (1.5k points)
Di nulla! :)
IoDo (290 points)
0 0 3
by (290 points)

Non ho ben capito, potresti essere più chiaro? Comunque :

Nell' if name == main basta che inserisci il nome del test da eseguire

La sintassi del profile è descritta qui

Se non hai il plug-in del profiler, lo puoi trovare invece qui

Una volta inseriti i @profile , ti basterà premere F10 da dentro spyder

twgever (17470 points)
8 29 105
by (17.5k points)
so come fare il line profiler, non ho scritto da nessuna parte "non riesco ad usare profile o line profiler".

Pensavo di essere stato abbastanza chiaro, ma comunque, ho il seguente test "test_init-6000_txs-1000000.json" e voglio metterne i dati dentro alla funzione ex1 nell'if name, per poi poter usare il line profiler. il tes ha dei dati mastodontici e non posso fare copia incolla, come posso fare?