diff --git a/tests/starstest.c b/tests/starstest.c new file mode 100644 index 0000000000000000000000000000000000000000..e66b03941ba8d57aed11a2a0e5c6e20fed9f60e4 --- /dev/null +++ b/tests/starstest.c @@ -0,0 +1,110 @@ +#include <stdlib.h> +#include <stdio.h> + +static int buffer[20]; + +unsigned int GetIndex(void) { + unsigned int randindex = rand() % 20; + return randindex; +} + +void RandomElementSwap(const unsigned int index2) { + unsigned int index1 = rand() % 20; + int temp = buffer[index1]; + buffer[index1] = buffer[index2]; + buffer[index2] = temp; + return; +} + +unsigned int GetValueBasedIndex(void) { + unsigned int value = 0; + unsigned int randindex = rand() % 20; + switch (randindex) { + case 0: + value = buffer[17]; + break; + case 1: + value = buffer[12]; + break; + case 2: + value = buffer[4]; + break; + case 3: + value = buffer[1]; + break; + case 4: + value = buffer[18]; + break; + case 5: + value = buffer[7]; + break; + case 6: + value = buffer[3]; + break; + case 7: + value = buffer[19]; + break; + case 8: + value = buffer[2]; + break; + case 9: + value = buffer[16]; + break; + case 10: + value = buffer[9]; + break; + case 11: + value = buffer[5]; + break; + case 12: + value = buffer[15]; + break; + case 13: + value = buffer[6]; + break; + case 14: + value = buffer[14]; + break; + case 15: + value = buffer[8]; + break; + case 16: + value = buffer[10]; + break; + case 17: + value = buffer[0]; + break; + case 18: + value = buffer[11]; + break; + case 19: + value = buffer[13]; + break; + default: + value = buffer[0]; + break; + } + + return (value % 20); +} + +int main() { + unsigned int index, randindex; + srand(17); /* seed the generator */ + + for (index = 0; index < 20; ++index) { + buffer[index] = rand(); + } + + randindex = GetValueBasedIndex(); + RandomElementSwap(randindex); + + printf("Here are 20 random integers:\n"); + + for (index = 0; index < 20; ++index) { + randindex = rand() % 20; + printf("%d\n", buffer[randindex]); + } + + return 0; +}