| |
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
|