Conversation
tp-json/enonce.md
Outdated
| ``` | ||
|
|
||
| Après reconfiguration, une nouvelle ligne apparait dans la barre en bas de vscode. Vous pouvez lancer la suite de tests en cliquant dessus. | ||
| Pour simplifier, chaque fichier |
There was a problem hiding this comment.
Je pensais que dans la version finale, on allait commenter la ligne enable_testing() du CMakeLists.txt pour ne pas ajouter du bordel dans vscode dans les premiers tps.
| @@ -0,0 +1,498 @@ | |||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
There was a problem hiding this comment.
Je l'ai renommé example_cpp2022_as_image.svg
tp-json/enonce.md
Outdated
| ## Parseur | ||
|
|
||
| Un parseur de JSON est fourni (classe `JsonParser` dans le fichier `JsonParser.cpp`), et normalement vous n'aurez pas besoin de le modifier. | ||
| Il pourra éventuellement être utile de regarder ce fichier partir des tests qui utilisent le parser. |
There was a problem hiding this comment.
this is an informative discussion <3
tp-json/tests/31_explicit_cast.cpp
Outdated
| ASSERT_EQUAL(node->as_ObjectNode(), nullptr);*/ | ||
|
|
||
| Node_ptr node = BooleanLeaf::make_ptr(true); | ||
| ASSERT_UNEQUAL(node->as_BooleanLeaf(), nullptr); |
There was a problem hiding this comment.
ASSERT_EQUAL(node->as_BooleanLeaf(), node.get()) ?
There was a problem hiding this comment.
Si on fait ça, on impose le type de Node_ptr, ce que j'avais essayé d'éviter.
tp-json/tests/38_equality.cpp
Outdated
| { | ||
| std::cout << "First command-line argument needs to be where are the json resources."; | ||
| exit(EXIT_FAILURE); | ||
| } |
There was a problem hiding this comment.
A calculer avec le chemin du programme + copier les resources dans le cmake à coté des exe/
There was a problem hiding this comment.
J'ai réglé ce problème: on peut donc maintenant lancer les tests individuellement avec la liste dans l'interface graphique.
| .vscode/ | ||
| build/ | ||
| solutions/ | ||
| _build |
There was a problem hiding this comment.
j'imagine que c'est la bibliotheque des testes qui veut rajouter '_build' ? Pourrait-on la configurer pour utiliser le 'build' qu'on a déjà (ça me soule un peu d'avoir 2 'build'...) ?
There was a problem hiding this comment.
Je ne crois pas, je pense que je faisais des cmake .. à la main. J'ai supprimé le répertoire et le .gitignore de mon côté.
tp-json/enonce.md
Outdated
| 1. un *booléen*, par exemple `true`; | ||
| 2. un *nombre*, par exemple `2022`; | ||
| 3. une *chaîne de caractère*, par exemple `"C++"`; | ||
| 4. une *liste* de valeurs JSON entre `[`...`]` et séparées par des virgules, par exemple `["Céline","Matthias","Victor"]`; |
There was a problem hiding this comment.
les types dans la liste, peuvent-ils varier ? Peut-on avoir '["bla", 42, [true, "blubb"]]' ?
There was a problem hiding this comment.
Oui, je rajoute un exemple dans l'énoncé.
|
|
||
| Node_ptr JsonParser::parse_NumberLeaf() | ||
| { | ||
| // unsigned starting_pos = _in.tellg(); |
There was a problem hiding this comment.
pour le string et array node, on fait pas confience au fonction appelant, mais on teste bien que le prochain charactere correspond à ce qu'on attend. Ici on le fait pas. Y-a-t-il une raison pour l'inconsistence?
There was a problem hiding this comment.
Effectivement, j'ai oublié de rétablir ça (je pense que les lignes commentées vérifiait). J'ai corrigé:
unsigned starting_pos = _in.tellg();
double d;
_in >> d;
size_t end_pos = _in.tellg();
if (starting_pos == end_pos)
return nullptr;
else
return NumberLeaf::make_ptr(d);
```
tp-json/tests/40_pokedex.cpp
Outdated
| std::cerr << "]" << std::endl; | ||
| } | ||
|
|
||
| std::vector<std::tuple<std::string, std::string>> const tests = { { "Bulbasaur", "Grass" }, |
There was a problem hiding this comment.
pourquoi tuple avant pair ?
There was a problem hiding this comment.
Moins de mots clef à retenir par moi.
Je peux changer si ça choque aussi @Laefy.
tp-json/tests/99_dot.cpp
Outdated
|
|
||
| std::ofstream out("/tmp/test.gv"); | ||
| dot(out, node); | ||
| } |
There was a problem hiding this comment.
j'ai pas compris pourquoi t'as introduit un nouveau scope ici oO
No description provided.