AID ActiveX : insertion de tests

Association pour l'Innovation Didactique Centre de Recherche et d'Expérimentation pour l'Enseignement des Mathématiques

Accueil
ActiveX
Installation
Initiation
insertion
EcritMath
scripter
enregistrer
interfaces
tester
ex. guidé
complément
Exemples
Java

Cette page s'adresse à tous ceux qui veulent créer des pages html comportant des tests sur des figures-Geoplan ou des figures-Geospace. Il est conseillé d'examiner d'abord de telles pages pour se faire une idée de ce dont il s'agit (voir les exemples), puis de lire les pages d'aide, d'abord sur l'insertion des contrôles GP0, GE0 ou EcritMath dans une page html, puis celles décrivant les propriétés de ces contrôles. Une bonne connaissance de Geoplan (et Geospace) est aussi nécessaire.

Introduction : Les contrôles GP0 et GE0 sont munis de "méthodes", qui sont des fonctions ou des procédures, qu'on peut appeler depuis un programme, par exemple depuis un script écrit en VBScript ou en JavaScript. Certaines ont été décrites dans la page Initiation à la communication par script avec une figure dans une page HTML.

La méthode TestParTexte (qui double les anciennes TestParTexteGP dans le plan TestParTexteGE dans l'espace) est celle qui permet d'effectuer des tests sur une figure.
C'est une fonction dont la syntaxe est la suivante :
T = Figure1.TestParTexte ("blabla")
où Figure1 désigne un contrôle GP0 ou GE0 (par son Name ou son Id, voir l'aide sur l'insertion des contrôles) et blabla est une ligne admissible par les bibliothèques GP32.dll et GE32.dll.
Par exemple l'instruction T1=Figure1.TestParTexte("Teste existence d'un objet A, point libre") affectera la variable T1 d'une valeur permettant de savoir si l'objet A a été créé et si oui, si c'est bien un point libre.
Cette instruction, ainsi que d'autres analogues, peut être mise dans une procédure lancée quand on clique sur un bouton.

La nature des tests dépend de la phrase que l'on utilise, et le résultat est un nombre qui est pour tous les tests 0 si le test est réussi (c'est à dire si la phrase est vérifiée), et donc différent de 0 si le test est raté. Ceci peut suffire dans un premier temps, mais, si on veut affiner l'analyse d'un test raté, on peut exploiter le nombre renvoyé comme cela sera expliqué plus loin.
Voici tout d'abord une série de remarques importantes.
Remarque à propos d'un changement dans les phrases : toutes les phrases de tests dans le plan et dans l'espace commencent désormais par "Teste … "
Exemples : "Teste existence d'un objet #1 de genre #2", "Teste valeur du point #1 sur valeur de #2 (tolérance: #3)".
Il n'en était pas ainsi lorsque nous avons mis les premiers contrôles GP0 et GE0 à la disposition des amateurs, mais toutes les anciennes phrases déjà "publiées" ont été conservées par souci de compatibilité. Il est souhaitable de ne plus utiliser que les phrases décrites ici.

Remarque à propos des noms des droites, des demi-droites, des segments, des plans défini(e)s par deux ou trois points (et non nommés):
AB désignant la longueur AB:
la droite passant par A et B a pour nom (AB),
la demi-droite d'origine A passant par B a pour nom [AB),
le segment d'extrémités A et B a pour nom [AB],
le plan passant par les points A, B et C a pour nom (ABC).
Lorsque les droites ont un nom choisi au moment de la création (d ou d1 par exemple), les parenthèses sont inutiles.

Remarque à propos de l'écriture des phrases:
A priori, le respect des majuscules et minuscules n'est pas important mais, par contre, égalité doit être écrit avec ses accents ainsi que parallélisme, orthogonalité etc. D'autre part (tolérance: ) doit obligatoirement comporter accent, parenthèses et deux points, sans espace avant les deux points. Les phrases non comprises sont refusées (cf. Résultats d'un test ci-dessous) mais il est difficile de distinguer entre l'erreur d'écriture dans une phrase et le nom erroné d'un objet. Une phrase mal écrite peut donc entraîner un résultat non interprétable.

Liste des phrases:
Selon les phrases utilisées on peut distinguer les tests d'existence, les tests d'égalité, les tests de comparaison, les tests d'appartenance, les tests de parallélisme ou d'orthogonalité, les tests de variabilité, les tests de correction syntaxique et d'autres tests divers.

Tests d'existence:
"Teste existence d'un objet #1" où #1 est le nom de l'objet dont on veut tester l'existence (il faut donc connaître ce nom).
"Teste existence d'un objet #1 de genre #2". Pour voir les genres utilisables appuyez sur genres possibles.
"Teste existence d'un objet #1 ayant #2 parmi ses antécédents" où #1 et #2 sont des noms d'objets (les antécédents d'un objet sont tous les objets dont il dépend, directement ou indirectement).
"Teste existence d'un objet #1, #2" où #2 est le code d'un objet. Les codes décrivent la façon dont les objets ont été construits. Pour en avoir la liste appuyez sur codes des objets du plan ou sur codes des objets de l'espace.

Remarque: il ne faut pas confondre existence et validité d'un objet. Un point créé comme intersection d'une droite et d'un cercle peut ne pas être valide quand la droite ne coupe pas le cercle mais il existe en tant qu'objet de la figure.

Tests par valeurs, tests avec agitation de variables:
Dans les tests d'égalité, d'appartenance, de parallélisme et d'orthogonalité, il faut distinguer les tests sur les valeurs et les autres. "Egalité des valeurs de #1 et #2" demande que le test soit effectué sans modifier les valeurs des variables libres de la figure, alors que "Egalité de #1 et #2" demande que de nombreux tests soient effectués en modifiant les variables libres de la figure. Si le test est réussi, cela signifie que les objets #1 et #2 sont égaux quelles que soient les valeurs des variables libres de la figure.
Certains tests peuvent être réalisés avec une certaine tolérance.Le nombre à fournir pour régler cette tolérance est un entier T. Si T est 0 le test est le plus rigoureux possible. Pour les points, T est en gros le nombre de points écrans d’écart que l’on souhaite autoriser, du moins quand cette notion a un sens. Pour les droites, les cercles etc. le réglage dépend du cadrage et de la façon dont sont définis ces objets (il faut donc faire des essais). Pour les nombres T/100 est l'écart maximal autorisé.

Tests d'existence d'un objet égal à un objet donné
"Teste existence d'un objet de valeur égale à la valeur de #1"
"Teste existence d'un objet de valeur égale à la valeur de #1 (tolérance: #2)"
"Teste existence d'un objet égal à #1"
"Teste existence d'un objet égal à #1 (tolérance: #2)"
>où #1 est le nom d'un objet admis dans "Teste égalité de #1 et #2" (voir plus loin) c'est à dire point, cercle, droite, demi-droite, segment, arc, transformation, repère, nombre, polygone, unité de longueur, vecteur, demi-plan ou rectangle (pour le plan seulement), plus pour l'espace: plan, sphère, polygone convexe, cylindre, tronc de cône, mais ni suite ni fonction et non plus ni affichage ni commande.

Tests d'égalité
fonctions
"Teste égalité des valeurs des fonctions #1 et #2 sur #3,#4" où #3 et #4 sont des nombres, on teste l'égalité sur un intervalle.
"Teste égalité des valeurs des fonctions #1 et #2 sur #3,#4 (tolérance: #5)" où #5 est un nombre entier.
"Teste égalité des fonctions #1 et #2 sur #3,#4"
"Teste égalité des fonctions #1 et #2 sur #3,#4 (tolérance: #5)"
Sont concernées par ces tests les fonctions numériques d'une variable numérique (même créées par prototype). Il n'est pas prévu de tester l'égalité de fonctions créées par un tableau de valeurs ou de fonctions de plusieurs variables.
suites
Teste égalité des valeurs des suites #1 et #2 sur #3,#4"
Teste égalité des valeurs des suites #1 et #2 sur #3,#4 (tolérance: #5)"
Teste égalité des suites #1 et #2 sur #3,#4"
Teste égalité des suites #1 et #2 sur #3,#4 (tolérance: #5)"
ensembles de réels (dans le plan uniquement, on utilise des méthodes d'une figure Geoplan)
Les ensembles ne sont pas des objets Geoplan mais on peut néanmoins tester des égalités d'ensembles (comme on teste des égalités d'expressions). #1 et #2 sont des expressions ensemblistes écrites à l'aide d'ensembles finis, d'intervalles (bornés ou non), de réunions d'intervalles, de R. Exemples: R-{2,3}, ]-inf,-2]U[2/3,7]. Il ne faut pas utiliser de variables dans les expressions ensemblistes, même si elles semblent tolérées, car elles ne sont pas gérées. En particulier, les variables de la figure sont inconnues des procédures qui gèrent les ensembles (cf. la page d'aide sur les ensembles).
"Teste égalité des ensembles #1 et #2 (tolérance: #3)"
"Teste égalité des ensembles #1 et #2"
autres types d'objets
"Teste égalité des valeurs de #1 et #2 (tolérance: #3)"
"Teste égalité des valeurs de #1 et #2"
"Teste égalité de #1 et #2 (tolérance: #3)"
"Teste égalité de #1 et #2"
Dans le plan, on peut tester des égalités de points, cercles, droites, demi-droites, segments, arcs, transformations, repères, nombres, polygones, unités de longueurs, vecteurs, demi-plan, rectangles. Pour les suites et les fonctions il faut utiliser des phrases spécifiques (voir plus haut).
Dans l'espace, on peut tester des égalités de points, cercles, droites, demi-droites, segments, arcs, transformations, repères, nombres, unités de longueurs, vecteurs, plans, sphères, polygones convexes, cylindres, troncs de cônes. Pour les suites et les fonctions il faut utiliser des phrases spécifiques (voir plus haut).
Les tests d'égalités d'affichages ou de commandes ne sont pas prévus.

Tests de comparaison
#1 et #2 sont des noms de variables numériques ou des expressions dans lesquelles les variables existent dans la figure.
"Teste valeur de #1 inférieure à valeur de #2" (remarque: si #2 est un nombre non créé il faut quand même écrire valeur de exemple: "Teste valeur de x inférieure à valeur de 0.9"
"Teste #1 inférieur à #2"

Tests d'appartenance
#1 est le nom d'un point et #2 est le nom de tout objet pouvant contenir un point (droite, segment, demi-droite, cercle, un arc etc. dans le plan, plus plan, sphère etc. pour l'espace, attention aux noms des droites, cf. remarque au-dessus).

"Teste valeur du point #1 sur valeur de #2"
"Teste valeur du point #1 sur valeur de #2 (tolérance: #3)" où #3 est un nombre entier.
"Teste point #1 sur #2"
"Teste point #1 sur #2 (tolérance: #3)"
Dans le plan, on peut tester des points sur: cercle, droite, demi-droite, segment, arc.
Dans l'espace, on peut tester des points sur: cercle, droite, demi-droite, segment, arc, plan, sphère.

Tests de parallélisme ou d'orthogonalité

#1 et #2 sont des noms de droites (attention aux noms des droites, cf. remarque au-dessus).

"Teste parallélisme des valeurs des droites #1 et #2"
"Teste parallélisme des valeurs des droites #1 et #2 (tolérance: #3)"
"Teste parallélisme des droites #1 et #2"
"Teste parallélisme des droites #1 et #2 (tolérance: #3)"
"Teste orthogonalité des valeurs des droites #1 et #2"
"Teste orthogonalité des valeurs des droites #1 et #2 (tolérance: #3)"
"Teste orthogonalité des droites #1 et #2"
"Teste orthogonalité des droites #1 et #2 (tolérance: #3)"

Tests de variabilité

"Teste #1 a des antécédents variables"
"Teste #1 variable"

Tests de correction syntaxique

Le test suivant est destiné à voir si un ensemble est d'une part correctement écrit, d'autre part réduit:
"Teste #1 est une partie de R" (dans le plan uniquement),(#1 est une expression ensembliste ne contenant pas de variable (cf. test d'égalité d'ensembles), le résultat retourné donne une indication sur le fait que l'écriture de l'ensemble est réduite ou pas)
Si on veut savoir si une expression est correcte syntaxiquement:
Teste #1 est une expression algébrique"
"Teste #1 est une expression vectorielle"
Exemples d'expressions algébriques reconnues: x étant une variable numérique de la figure, x+2, 2+x/3, (2+x), u(2) (u étant une suite de la figure), AB (A et B étant deux points de la figure), 2vec(i)&vec(j) etc.
Exemples d'expressions algébriques rejetées: une expression contenant un objet n'existant pas dans la figure, u+2 (u étant une suite de la figure) (x+2)) etc.

Divers

"Teste #1 et #2 ont les mêmes antécédents directs" (#1 et #2 sont des noms d'objets de la figure)

Cette phrase peut permettre de tester des égalités d'objets qu'on ne peut pas tester directement. Par exemple, pour des courbes représentatives de fonctions: on peut tester qu'elles ont la même fonction comme antécédent direct

Dans l'espace, on dispose en outre des phrases suivantes (attention aux noms des droites et des plans, cf. remarque au-dessus):

"Teste coplanarité des valeurs des droites #1 et #2 (tolérance: #3)"
"Teste coplanarité des valeurs des droites #1 et #2"
"Teste coplanarité des droites #1 et #2 (tolérance: #3)"
"Teste coplanarité des droites #1 et #2"
"Teste valeur de la droite #1 dans valeur du plan #2"
"Teste valeur de la droite #1 dans valeur du plan #2 (tolérance: #3)"
"Teste droite #1 dans plan #2"
"Teste droite #1 dans plan #2 (tolérance: #3)"
"Teste valeur de la droite #1 parallèle à valeur du plan #2"
"Teste valeur de la droite #1 parallèle à valeur du plan #2 (tolérance: #3)"
"Teste droite #1 parallèle à plan #2 (tolérance: #3)"
"Teste droite #1 parallèle à plan #2"
"Teste valeur de la droite #1 perpendiculaire à valeur du plan #2"
"Teste valeur de la droite #1 perpendiculaire à valeur du plan #2 (tolérance: #3)"
"Teste droite #1 perpendiculaire à plan #2"
"Teste droite #1 perpendiculaire à plan #2 (tolérance: #3)"
"Teste parallélisme des valeurs des plans #1 et #2"
"Teste parallélisme des valeurs des plans #1 et #2 (tolérance: #3)"
"Teste parallélisme des plans #1 et #2"
"Teste parallélisme des plans #1 et #2 (tolérance: #3)"
"Teste valeurs des droites #1 et #2 sécantes (tolérance: #3)"
"Teste valeurs des droites #1 et #2 sécantes"
"Teste droites #1 et #2 sécantes (tolérance: #3)"
"Teste droites #1 et #2 sécantes"
"Teste valeur du cercle #1 dans valeur du plan #2 (tolérance: #3)"
"Teste valeur du cercle #1 dans valeur du plan #2"
"Teste cercle #1 dans plan #2 (tolérance: #3)"
"Teste cercle #1 dans plan #2"
"Teste valeur du cercle #1 sur valeur de la sphère #2 (tolérance: #3)"
"Teste valeur du cercle #1 sur valeur de la sphère #2"
"Teste cercle #1 sur sphère #2 (tolérance: #3)"
"Teste cercle #1 sur sphère #2"

Résultats d'un test:

| 0 | 50 | 51
Test d'existence | test réussi, l'objet existe | phrase non comprise | l'objet n'existe pas

| 0 | 50 | 51
Test d'existence avec un antécédent donné | test réussi, l'objet existe et a l'antécédent donné | phrase non comprise | l'objet n'existe pas

| 0 | 50 | 51 | 56
Test d'existence avec un code donné | test réussi, l'objet existe et a le code donné | phrase non comprise | l'objet n'existe pas | l'objet #1 n'a pas le code #2

| 0 | 50 | 51 | 56
Test d'existence avec un genre donné | test réussi, l'objet existe et a le genre donné | phrase non comprise | l'objet n'existe pas | l'objet #1 n'a pas le genre #2

| 0 | 50 | 51 | 52
Teste existence d'un objet dont la valeur est égale à celle d'un objet donné | test réussi, l'objet existe et a la bonne valeur | phrase non comprise | l'objet donné n'existe pas | il n'existe pas d'objet dont la valeur est égale à celle de l'objet donné

| 0 | 50 | 51 | 52 | 53
Teste existence d'un objet égal à un objet donné (pour toutes les valeurs des variables libres) | test réussi, l'objet existe et est toujours égal à l'objet donné | phrase non comprise | l'objet donné n'existe pas | il n'existe pas d'objet égal à l'objet donné (pour toutes les valeurs des variables libres) | l'objet existe, il est égal à l'objet donné pour les valeurs initiales des variables, mais il n'est pas toujours égal à cet objet.

| 0 | 50 | 51 | 52 | 61 | 62
tests d'égalité de valeurs | test réussi, les objets ont la même valeur | phrase non comprise | un objet du test n'existe pas | les objets existent mais ne sont pas égaux | l'objet #1 n'est pas valide au moment du test alors que l'objet #2 l'est | l'objet #2 n'est pas valide au moment du test alors que l'objet #1 l'est

| 0 | 50 | 51 | 52 | 53 | 61 | 62
tests d'égalité avec agitation des variables libres de la figure | test réussi, les objets sont toujours égaux | phrase non comprise | un objet du test n'existe pas | les objets existent mais ne sont pas égaux dès les valeurs initiales des variables | les objets existent, sont égaux pour les valeurs initiales des variables, mais ne sont pas toujours égaux | l'objet #1 n'est parfois pas valide alors que l'objet #2 l'est et les objets sont égaux lorsqu'ils sont valides | l'objet #2 n'est parfois pas valide alors que l'objet #1 l'est et les objets sont égaux lorsqu'ils sont valides

Remarque: pour les tests d'égalités de fonctions ou de suites il faut ajouter aux deux tableaux précédents le résultat 63 qui indique un problème d'incohérence dans les bornes de l'intervalle sur lequel on teste l'égalité.

| 0 | 50 | 51 | 52 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78
tests d'égalité d'ensembles de réels | test réussi, les ensembles sont égaux | phrase non comprise | un objet du test n'existe pas | les ensembles ne sont pas égaux | le premier ensemble est incorrect | le deuxième ensemble est incorrect | les ensembles ne diffèrent que par les bornes et le premier ensemble est inclus dans le deuxième | les ensembles ne diffèrent que par les bornes et le deuxième ensemble est inclus dans le premier | les ensembles ne diffèrent que par les bornes et aucun n'est inclus dans l'autre | le premier ensemble est inclus dans le deuxième | le deuxième ensemble est inclus dans le premier | le premier ensemble n'est pas inclus dans le deuxième, ni le deuxième dans le premier

| 0 | 50 | 51 | 52 | 56 | 61 | 62
tests de comparaison de valeurs | test réussi, la valeur de l'objet #1 est inférieure (ou égale) à celle de l'objet #2 | phrase non comprise | un (au moins) des objets n'existe pas | les objets existent mais la valeur de l'objet #1 n'est pas inférieure (ou égale) à celle de l'objet #2 | les objets #1 et/ou #2 ne sont pas des variables ou des expressions numériques | l'objet #1 n'est pas valide au moment du test alors que l'objet #2 l'est | l'objet #2 n'est pas valide au moment du test alors que l'objet #1 l'est

| 0 | 50 | 51 | 52 | 53 | 56 | 61 | 62
tests de comparaison avec agitation des variables libres de la figure | test réussi, #1 est toujours inférieur (ou égal) à #2 | phrase non comprise | un objet du test n'existe pas | les objets existent mais #1 n'est pas inférieur à #2 dès les valeurs initiales des variables | les objets existent, #1 est inférieur à #2 pour les valeurs initiales des variables, mais #1 n'est pas toujours inférieur à #2 | les objets #1 et/ou #2 ne sont pas des variables ou des expressions numériques | l'objet #1 n'est parfois pas valide alors que l'objet #2 l'est et #1 est inférieur à #2 lorsqu'ils sont valides | l'objet #2 n'est parfois pas valide alors que l'objet #1 l'est et #1 est inférieur à #2 lorsqu'ils sont valides

| 0 | 50 | 51 | 52 | 54
tests d'appartenance, de parallélisme ou d'orthogonalité des valeurs | test réussi, les objets existent et vérifient la propriété demandée | phrase non comprise | un (au moins) des objets n'existe pas | les objets existent mais ne vérifient pas la propriété demandée | un des objets n'est pas valide

| 0 | 50 | 51 | 52 | 53
tests d'appartenance, de parallélisme ou d'orthogonalité avec agitation des variables libres de la figure | test réussi, les objets existent et vérifient la propriété demandée | phrase non comprise | un (au moins) des objets n'existe pas | les objets existent mais ne vérifient pas la propriété demandée dès les valeurs initiales des variables | les objets existent, vérifie la propriété demandée pour les valeurs initiales des variables mais ne vérifient pas toujours la propriété demandée

| 0 | 50 | 51 | 57
tests de variabilité | test réussi, l'objet est variable (mais pas forcément libre) | phrase non comprise | l'objet n'existe pas | l'objet #1 n'est pas variable selon les critères demandés

| 0 | 50 | 51 | 51
Test sur les antécédents directs | test réussi, les deux objets ont les mêmes antécédents directs | phrase non comprise | un (au moins) des objets n'existe pas | les objets existent mais n'ont pas les mêmes antécédents directs

| 0 | 71 | 79
Teste #1 est une partie de R | test réussi, #1 est une partie réduite de R | #1 n'est pas une partie de R | #1 est une partie de R, non réduite

| 0 | 56
Teste #1 est une expression algébrique ou Teste #1 est une expression vectorielle | test réussi, #1 est une expression algébrique (vectorielle) | #1 n'est pas une expression algébrique (vectorielle)

Remarque: une phrase peut n'être pas comprise pour plusieurs raisons: syntaxe incorrecte, genre ou code non reconnu etc. Mais attention, une phrase incorrecte n'est pas toujours repérée comme telle par le logiciel qui peut faire une erreur de diagnostic.

Page d'essais sur les tests