Visualizzazione dei risultati da 1 a 9 su 9

Discussione: aiuto

  1. #1

    aiuto

    ciao a tutti........ sono un "novizio" del linguaggio java e mi servirebbe un aiuto per risolvere un problema.

    Non riesco a capire come fare a corregere questi fallimenti dopo aver eseguito i testi sul codice:

    junit.framework.AssertionFailedError: expected:<11.26> but was:<13.0>
    at junit.framework.Assert.fail(Assert.java:47)
    at junit.framework.Assert.failNotEquals(Assert.java:2 80)
    at junit.framework.Assert.assertEquals(Assert.java:98 )
    at junit.framework.Assert.assertEquals(Assert.java:10 5)
    at it.polito.po.test.TestLogisticaR3.testConsumoMedio KmLitro(TestLogisticaR3.java:213)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at junit.framework.TestCase.runTest(TestCase.java:164 )
    at junit.framework.TestCase.runBare(TestCase.java:130 )
    at junit.framework.TestResult$1.protect(TestResult.ja va:106)
    at junit.framework.TestResult.runProtected(TestResult .java:124)
    at junit.framework.TestResult.run(TestResult.java:109 )
    at junit.framework.TestCase.run(TestCase.java:120)
    at junit.framework.TestSuite.runTest(TestSuite.java:2 30)
    at junit.framework.TestSuite.run(TestSuite.java:225)
    at junit.framework.TestSuite.runTest(TestSuite.java:2 30)
    at junit.framework.TestSuite.run(TestSuite.java:225)
    at org.eclipse.jdt.internal.junit.runner.junit3.JUnit 3TestReference.run(JUnit3TestReference.java:130)
    at org.eclipse.jdt.internal.junit.runner.TestExecutio n.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.runTests(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.runTests(RemoteTestRunner.java:673)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.run(RemoteTestRunner.java:386)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRu nner.main(RemoteTestRunner.java:196)

    grazie per l'aiuto

  2. #2
    un'asserzione non viene verificata (quella relativa alla riga 213 del file TestLogisticaR3.java).
    Ciao
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  3. #3

    risposta

    e come posso risolvere il problema?

  4. #4
    senza codice come possiamo risponderti? mica siamo indovini :-)
    Posta le righe di codice "incriminate"...
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  5. #5

    risposta

    hai ragione......

    dovrebbe essere questa la parte incriminata

    package logistica;

    import java.util.Collection;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.HashMap;

    public class LogisticaManager implements LogisticManagerInterface {

    Map veicoli = new HashMap();

    private int numPerCodiceUnivoco1;
    private int numPerCodiceUnivoco2;

    // R1
    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#addVeicolo(java .lang.String)
    */
    public void addVeicolo(String targa) {
    Veicolo v = new Veicolo(targa);
    veicoli.put(targa, v);
    }

    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#elencoVeicoli()
    */
    public String elencoVeicoli() {
    String richiesti = " ";
    Iterator iter = veicoli.values().iterator();
    while (iter.hasNext()) {
    richiesti = richiesti + ((Veicolo) iter.next()).toString() + '\n';
    }
    return richiesti;
    }

    // R2
    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#addViaggioVeico lo(java.lang.String)
    */
    public String addViaggioVeicolo(String targa) throws VeicoloNonEsiste {
    if (!veicoli.containsKey(targa))
    throw new VeicoloNonEsiste();
    numPerCodiceUnivoco1++;
    String codice = numPerCodiceUnivoco1 +"";//+ targa;
    Veicolo veicolo = (Veicolo) veicoli.get(targa);
    veicolo.addViaggio(codice);
    return codice;
    }

    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#addViaggioTratt a(java.lang.String, int, int, int, int)
    */
    public String addViaggioTratta(String codiceViaggio, int ordine,
    int lunghezza, int durata, int consumo) throws ViaggioNonEsiste {
    boolean found = false;
    Iterator veicoloIterator = veicoli.values().iterator();
    String targa = null;
    while(veicoloIterator.hasNext()){
    Veicolo veicolo =(Veicolo)veicoloIterator.next();
    if ((veicolo).haveViaggio(codiceViaggio)){
    found = true;
    targa = veicolo.getTarga();
    break;
    }

    }
    if (!found) throw new ViaggioNonEsiste();

    numPerCodiceUnivoco2++;
    String codiceTratta = numPerCodiceUnivoco2+"" ;//+ codiceViaggio;
    Veicolo veicolo = (Veicolo) veicoli.get(targa);
    Viaggio viaggio = veicolo.getViaggio(codiceViaggio);
    viaggio.addViaggioTratta(codiceTratta, ordine, lunghezza, durata, consumo);
    return codiceTratta;

    }

    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#elencoViaggiTra tte(java.lang.String)
    */
    public String elencoViaggiTratte(String targa) throws VeicoloNonEsiste {
    if (!veicoli.containsKey(targa))
    throw new VeicoloNonEsiste();
    Veicolo veicolo = (Veicolo) veicoli.get(targa);
    StringBuffer stringBuffer = new StringBuffer();
    Iterator viaggoIterator = veicolo.listViaggi().iterator();

    while(viaggoIterator.hasNext()){
    Viaggio viaggio = (Viaggio) viaggoIterator.next();
    Iterator trattaIterator = viaggio.listTratte().iterator();
    stringBuffer.append("Viaggio " + viaggio.getCodice() + " ");
    while(trattaIterator.hasNext()){
    Tratta tratta = (Tratta)trattaIterator.next();
    stringBuffer.append("Tratta " + tratta.getCodice() + " " + tratta.getLunghezza() + " " + tratta.getDurata() + " " + tratta.getConsumo() +"\n ");
    }
    stringBuffer.append("\n");
    }

    return stringBuffer.toString();
    }

    // R3
    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#numeroViaggiVei colo(java.lang.String)
    */

    public int numeroViaggiVeicolo(String targa) throws VeicoloNonEsiste {
    if (veicoli.containsKey(targa)) {
    return ((Veicolo) veicoli.get(targa)).listViaggi().size();
    } else
    throw new VeicoloNonEsiste();
    }

    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#viaggioPiuLungo Veicolo(java.lang.String)
    */
    public String viaggioPiuLungoVeicolo(String targa) throws VeicoloNonEsiste{
    if (!veicoli.containsKey(targa)) throw new VeicoloNonEsiste();

    int max = 0, tmp = 0;
    String code = null;
    Veicolo veicolo = (Veicolo) veicoli.get(targa);
    Iterator i = veicolo.listViaggi().iterator();

    while (i.hasNext()){
    Viaggio viaggio = (Viaggio) i.next();
    tmp = viaggio.getLunghezzaTotale();
    if(max < tmp){
    max = tmp;
    code = viaggio.getCodice();
    }
    }
    return code;
    }

    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#consumoMedioVei colo(java.lang.String)
    */
    public double consumoMedioVeicolo(String targa) throws VeicoloNonEsiste {
    if (!veicoli.containsKey(targa)) throw new VeicoloNonEsiste();
    Veicolo veicolo = (Veicolo) veicoli.get(targa);
    int consumoTot = 0,lunghezzaTot = 0;
    Iterator viaggIterator = veicolo.listViaggi().iterator();
    while (viaggIterator.hasNext()){
    Viaggio viaggio = (Viaggio) viaggIterator.next();
    consumoTot =+ viaggio.getConsumoTotale();
    lunghezzaTot =+ viaggio.getLunghezzaTotale();
    }

    return lunghezzaTot / consumoTot;
    }

    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#veicoloPiuViagg i()
    */
    public String veicoloPiuViaggi() {
    int max = 0, viaggiTmp = 0;
    String targa = null;
    Iterator i = veicoli.values().iterator();
    while (i.hasNext()){
    Veicolo veicolo = (Veicolo) i.next();
    viaggiTmp = veicolo.listViaggi().size();
    if(max < viaggiTmp){
    max = viaggiTmp;
    targa = veicolo.getTarga();
    }else if(max == viaggiTmp){
    targa = veicolo.getTarga().compareTo(targa)<0?veicolo.getT arga():targa;
    }
    }
    return targa;

    }

    /* (non-Javadoc)
    * @see logistica.LogisticManagerInterface#veicoloPiuKilom etri()
    */
    public String veicoloPiuKilometri() {
    int max = 0, chilometriTmp = 0, tratteTmp = 0;
    String targa = null;
    Iterator i = veicoli.values().iterator();
    while (i.hasNext()){
    Veicolo veicolo = (Veicolo) i.next();
    chilometriTmp = veicolo.getTotaleChilometri();
    if(max < chilometriTmp){
    max = chilometriTmp;
    targa = veicolo.getTarga();
    tratteTmp = veicolo.getTotaleTratte();
    }else if(max == chilometriTmp){
    targa = veicolo.getTotaleTratte()>tratteTmp?veicolo.getTar ga():targa;
    }
    }
    return targa;
    }

    }

  6. #6
    ma scusa, hai postato LogisticaManager quando l'errore è sulla classe TestLogisticaR3...
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  7. #7
    il fatto è che la classe testLogistica non è modificabile, non posso cambiarla.

  8. #8
    però l'asserzione che fallisce è lì. Poi da essa cerchi di capire perché ha quei valori e dove sbagli a impostarli.
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Mi pare di capire che il regolamento è stato pacificamente ignorato e il buon senso pure:
    Titolo non conforme, mancanza del codice se non dopo esplicita richiesta, post del codice senza l'utilizzo dell'apposito tag CODE per renderlo leggibile, problemi su classi che "non sono modificabili" (che vorrà mai dire? Mah...)

    Chiudo.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.