public void testUnique() throws Exception {
        //Return if this is not Windows OS
        if (!isWindows) {
            return;
        }

        /*
         * Number of timestamps to generate on each client
         */
        int iterations = 11000;

        /*
         * Number of client threads
         */
        int threadCount = 4;

        // Launch threadCount client threads and set them
        // off generating time stamps
        long[][] threadTimes = new long[threadCount][iterations];
        Thread[] clockClients = new Thread[threadCount];

        for (int i = 0; i < threadCount; i++) {
            clockClients[i] = new ClockClient(threadTimes[i], iterations);
            clockClients[i].start();
        }

        // Wait until all the threads are done
        boolean working = true;
        while (working) {
            working = false;
            for (int i = 0; i < threadCount; i++) {
                if (clockClients[i].isAlive()) {
                    working = true;
                }
            }
        }

        // Check for duplicates within each client
        // Ridiculously inefficient, but effective -- sort and walk
        for (int j = 0; j < threadTimes.length; j++) {
            Arrays.sort(threadTimes[j]);
            for (int i = 0; i < threadTimes.length - 1; i++) {
                if (threadTimes[j][i] == threadTimes[j][i + 1]) {
                    fail( "Duplicate time stamps generated: " + threadTimes[j][i] + " " + i);
                }
            }
        }
    }