Comment écrire du code Scheme

Comme mentionné plus haut, chaque test doit inclure exactement un appel à la fonction (test-ttf). Les argument de cette fonction doivent tous être évalués à "vrai" (ou #t en Scheme) si le test est réussi. Si un ou plusieurs arguments sont faux, l'utilitaire tablix2_test rapportera que le test n'est pas réussi et écrit quels arguments n'étaient pas vrais.

Cela signifie que chaque test peut être composé de plusieurs sous-tests. Chaque sous-test peut dans sa propre fonction retourner vrai ou faux. Ces fonctions peuvent alors être utilisées comme arguments de la fonction test-ttf.

Pour chaque type de ressources définis dans le fichier de configuration XML de Tablix, deux fonctions sont définies par défaut :

(get-resourcetype tuple-id)

Cette fonction retourne un entier, égal à l'identifiant de la ressource du type resourcetype qui est utilisé par l'évènement avec l'identifiant de tuple tuple-id.

L'entier tuple-id peut être remplacé par une chaîne de caractère représentant le nom d'un évènement valide (comme utilisé dans la propriété name du fichier de configuration XML)). Si plus d'un évènement est trouvé portant ce nom (par exemple si repeats est supérieur à 1), l'identifiant de la première ressource correspondante est retourné.

(resourcetype tuple-id resource-id-1 [ resource-id-2 ])

Le troisième argument est optionnel. Si cette fonction est appelée avec deux arguments, alors elle retourne #t (le booléen vrai) si l'évènement avec l'identifiant de tuple tuple-id utilise une ressource avec l'identifiant resource-id-1 et de type resourcetype. Si le troisième argument existe, elle retourne #t si cet évènement utilise n'importe quelle ressource dont l'identifiant est compris entre resource-id-1 et resource-id-2.

Encore, l'entier tuple-id peut être remplacé avec une chaîne de caractère représentant un nom d'évènement valide. Si plus d'un évènement correspond, seul le premier est vérifié. Les arguements (de type Entier)resource-id-1 et resource-id-2 peuvent aussi être remplacés par des chaînes de caractères, suivant les mêmes règles.

Vous pouvez utiliser ces deux fonctions soit directement en arguments de la fonction test-ttf ou dans vos propres fonctions pour vérifier l'emploi du temps produit par Tablix.