bit_vector_not

bit_vector_not

par Gil Christian Tinde,
Number of replies: 3

Bonjour, 

À la ligne 234 de unit-test-bit-vector on crée un vecteur dont les 16 bits de poids faible sont mis à '1'. Pourquoi lorsqu'on passe ce vecteur par la fonction bit_vector_not(), le test s'attend à ce que le résultat soit un vecteur nul, et non pas un vecteur où les 16 MSB sont mis à '1' et les 16 LSB à '0', vu que la taille du vecteur a été arrondi vers le haut à 32 ? 

Merci,
Gil Tinde

In reply to Gil Christian Tinde

Re: bit_vector_not

par Jean-Cédric Chappelier,

en fait les MSB bits non utilisés sont normalement « non définis ». Nous les avons systématiquement forcés à 0 (parce que cela facilite certaines choses), mais vous avez raison que nous ne devrions pas les imposer comme tel dans les tests. Je vais fournir une version patchée des unit-tests qui n'impose pas de valeur à ces bits non utilisés.
A noter aussi que la remarque sur la taille du vecteur dans

bit_vector_create
était peu claire (« trop forte ») : c'est la taille allouée qui est forcée au multiple de 32 directement supérieur ; la vraie taille du bit vector en question reste celle demandée (d'où des MSB bits non spécifiés, en toute rigueur; et que nous avons, dans notre implémentation, systématiquement mis à 0, dans le create et dans le not aussi ; mais ce dernier comportement n'est pas explicitement demandé (« undefined behaviour »))