There are 3 major tests (registry, floating-point operations & integer operations). Each test is built based on some equations & operations depending on the test. Every major test contains 3 identical tests. For every identical test the seconds milliseconds are calculated. At the end of a major test, an arithmetic average is made from the seconds & milliseconds times saved from those 3 tests. So if u get a wrong time at a "mini"-test the other 2 can make the error be ignored. The final score = 40% Score Test1 + 80% Score Test2 + 80% Score Test3. The program was compiled with no optimization (speed, floating-point), so tests cannot be in favour of a certain processor type.