tp6q3 : La série de tests s'est interrompue !!!

Programmation Avancée

Modérateur : Douin

fcollet
Messages : 10
Inscription : 16 nov. 2016 11:14

tp6q3 : La série de tests s'est interrompue !!!

Message par fcollet » 22 nov. 2016 18:31

Bonjour,

JNews me renvoie le message "La série de tests s'est interrompue !!!" accompagné du texte suivant :

Code : Tout sélectionner

- des fichiers ou méthodes attendus absents ou que vous avez renommés ?, 
- une exception non traitée par votre programme ?, 
- votre programme boucle ?, 
- quelques "System.out.print, System.err.print, printStackTrace" de trop ?, 
- durée d'exécution trop longue ?, ...  
Ni les tests unitaires fournis, ni la revue de code ne m'ont permis d'identifier l'origine du problème.

Est-ce quelqu'un parmi vous aurait une piste?

Merci,
F

Douin
Messages : 216
Inscription : 18 mars 2009 15:46

Re: tp6q3 : La série de tests s'est interrompue !!!

Message par Douin » 23 nov. 2016 9:35

Bonjour,

Vérifiez avec les classes de tests unitaires fournies, vérifiez la classe java, le source généré par votre visiteur, est-il conforme ?, se compile-t-il sur votre poste ?

Si cela persiste, envoyez moi le projet bluej en .jar, douin at free point fr

bonne fin de tp

fcollet
Messages : 10
Inscription : 16 nov. 2016 11:14

Re: tp6q3 : La série de tests s'est interrompue !!!

Message par fcollet » 23 nov. 2016 15:00

Bonjour,

Après quelques corrections effectuées, je ne parviens toujours pas à soumettre mon code à JNews, j'ai toujours la même erreur.
Les actions menées sont :
- soumission de mon code aux tests unitaires fournis --> RAS
- Evaluation du code suivant :
Contexte m = new Memoire();
Variable i = new Variable(m, "i", 1);
Variable j = new Variable(m, "j", 0);
Variable k = new Variable(m, "k", 1);

VisiteurExpression<Integer> ve = new VisiteurEvaluation(m);
VisiteurExpressionBooleenne<Boolean> vb = new VisiteurBoolEvaluation(ve);
VisiteurInstruction<Contexte> vi = new VisiteurInstEvaluation(ve,vb);

VisiteurExpression<String> vej = new VisiteurInfixe(m);
VisiteurExpressionBooleenne<String> vbj = new VisiteurBoolToJava(vej);
VisiteurInstruction<String> vij = new VisiteurInstToJava(vej,vbj);

// Pour k = 0 à 6 -> afficher(k);
Instruction init = new Affectation(k, new Constante(0));
Instruction inc_k = new Affectation(k, new Addition(k, new Constante(1)));
ExpressionBooleenne inf_ou_egal_a_6 = new Ou(
new Inf(k, new Constante(6)),
new Egal(k, new Constante(6))
);
Instruction afficher_k = new Afficher(k);

Instruction pour = new Pour(init, inf_ou_egal_a_6, afficher_k, inc_k);

// Tant que i != 0 alors on boucle
ExpressionBooleenne cond_tq = new Et(
new Non(new Egal(i, new Constante(0))),
new Inf(j, new Constante(4))
);

Instruction inc_j = new Affectation(j, new Addition(j, new Constante(1)));
Instruction affectation_i = new Affectation(i, new Constante(0));

// Si j > 5 --> i = 1
Instruction set_i_if_cond = new Selection(
new Sup(j, new Constante(5)),
affectation_i,
afficher_k
);

Instruction tq = new TantQue(
cond_tq,
new Sequence(inc_j, set_i_if_cond)
);
--> RAS
- compilation et exécution du code JAVA généré :
public static void main(String[] args)throws Exception{
int i=1;
int j=0;
int k=1;

while ((!(i == 0) && (j < 4))){

j = (j + 1);

if((j > 5)){
i = 0;
}else{

System.out.print(k);
}
}
}
-->

Je deviens chèvre! je me permets donc de vous transmettre le code source de mon tp afin que vous m'aidiez à comprendre ce qui ne va pas.

D'avance merci,
f

Douin
Messages : 216
Inscription : 18 mars 2009 15:46

Re: tp6q3 : La série de tests s'est interrompue !!!

Message par Douin » 24 nov. 2016 11:54

Bonjour,

Je vous ai répondu hier, qu'en est-il ?, quant à votre devenir : chèvre ou informaticien ?

à suivre,

Avec certains tests jnews, la compilation prenait parfois 10 secondes pour quelques lignes, je n'ai pas identifié la cause dans votre solution, ce que je vous ai envoyé est-il satisfaisant

Mettez si vous le pouvez dans ce post les raisons de cette compilation au temps prohibitif ...

bonne fin de tp

fcollet
Messages : 10
Inscription : 16 nov. 2016 11:14

Re: tp6q3 : La série de tests s'est interrompue !!!

Message par fcollet » 24 nov. 2016 12:44

Bonjour et merci pour votre réponse,

Elle m'a était d'une grande utilité.

La raison pour laquelle la génération de code était si longue provenait apparemment de l'instanciation "intempestive" d'un StringBuilder. En fait, je générais une nouvelle instance de ce dernier dans chacune de mes méthodes.
J'opère désormais la concaténation via l'opérateur "+".

Encore merci, je me sens moins chèvre ;-)

Bonne fin de journée,
f

XavierB
Messages : 24
Inscription : 14 oct. 2016 13:45

Re: tp6q3 : La série de tests s'est interrompue !!!

Message par XavierB » 30 nov. 2016 0:48

bonsoir,

je me retrouve dans la même situation, les tests sont corrects.
j'ai passé votre code (@fcollet)pour voir si j'avais un souci, il passe aussi.
la seule chose que je vois est le fait de faire des "new String" dans chaque méthode...
je vais arreter la faute de temps mais consulterait le corrigé pour comprendre d'ou vient mon probleme.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité