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;
+}