2010-08-11 6 views
0

Je me prépare pour une entrevue et je suis tombé sur ces questions. Quelqu'un peut-il s'il vous plaît aider à résoudre ces questions.Question concernant les dequeues et les tests

  1. Imaginez que vous avez système 2D qui est juste tester si 2 rectangles sont en état de collision ou non, et vous censé faire un programme qui prend le code de ce système de ses développeurs et de tester automatiquement pour voir si cela fonctionne bien ou non, et affiche le pourcentage de l'erreur dans le code?

  2. écrivez les méthodes de file d'attente et de file d'attente pour une file d'attente de longueur fixe partagée entre deux objets. Ici, à quoi les objets se réfèrent-ils? Synchronisation de threads?

Merci & Cordialement,

Mousey

Répondre

1

Pour 1) Vous devez tester le chevauchement dans les rectangles. Le premier test que je développerais commencerait simplement avec les rectangles les uns sur les autres et les séparerait lentement jusqu'à ce qu'aucune collision ne soit détectée. L'erreur devrait probablement mesurer le pourcentage de chevauchement ou le nombre de pixels qui se chevauchent. Je ferais les deux ... Qui sait qu'ils ont peut-être développé l'algorithme pour être précis à une erreur de pixel ou à un% d'erreur d'objet. c'est-à-dire plus précis pour les objets plus petits. Après ce «test rapide» initial, je tenterais de développer un cas plus général avec plus de variation dans le chevauchement. c'est-à-dire ... 1 pixel dans le coin supérieur gauche chevauchant 1 pixel dans le coin inférieur gauche de l'autre rectangle avec des tailles variables de rectangles. Tester quelques cas d'angles intelligents et quelques triangles pseudo-aléatoires qui se chevauchent me semble être un bon test.

Je développe toujours des tests simples d'abord pour obtenir une rétroaction immédiate, puis j'essaie de passer à des tests plus généraux et approfondis. Évidemment, si vous mettez deux rectangles qui se chevauchent complètement et qu'il n'y a pas de collisions, quelque chose ne va pas. Pour 2) Le sémaphore de comptage vient à l'esprit comme un moyen de résoudre ce problème. Vous voulez qu'il bloque lorsque la file d'attente est pleine du côté de l'entrée et bloque lorsque la file d'attente est vide du côté de la file d'attente. Je ne suis pas sûr si les deux objets peuvent mettre en file d'attente et déqueue, mais cela n'a pas d'importance si vous utilisez des sémaphores pour suivre l'état de la file d'attente. Vous souhaitez également obtenir un verrou exclusif lorsque vous modifiez la file d'attente.

+0

Je pense que les objets en question sont producteur et consommateur dans le problème connu du producteur-consommateur. –

0

Pour la première, il suffit de brancher un ensemble de données connu et écrire les résultats. Cela ressemble plus à une tâche de codage qu'à un test conceptuel.

Pour la seconde, écrivez une file d'attente circulaire. Généralement, quelque chose ne va pas dans votre travail si vous écrivez une structure de données générale plutôt que d'utiliser une bibliothèque.

À moins qu'ils ne mentionnent des discussions, je ne ferais pas une grosse affaire. Mais jeter des sections critiques autour de tout ne pouvait pas faire de mal.

Questions connexes