﻿
var BenchTests = {
"Tests":[
	{ "id": "Quicksort", "Name": "Quicksort", "Coeff": 5.16, "Run": function() { return RunQuicksortTest(); }, "Description": "<h3>Quicksort</h3> <a href='http://en.wikipedia.org/wiki/File:Sorting_quicksort_anim.gif'><img src='images/TestDescriptions/Quicksort.gif' /></a><p>An array, increasing in size with each iteration, is populated with random numbers and quicksorted.  This provides a real-world benchmark test of array manipulation.</p><div class='subtle'>Image via <a href='http://en.wikipedia.org/wiki/User:RolandH'>RolandH</a></div>" },
	{ "id": "Factorial", "Name": "Factorials", "Coeff": 0.39, "Run": function() { return RunExpensiveFactorial(); }, "Description": "<h3>Factorials</h3> With each iteration, the benchmark calculates i! (factorial) and 2^i (exponent), where i represents the number of iterations completed.  This provides a good benchmark of recursion and exponent math, which is typically a CPU-expensive process." },
	{ "id": "Conway", "Name": "Conway", "Coeff": 1.68, "Run": function() { return RunConwayTest(); }, "Description": "<h3>Conway</h3> <a href='http://en.wikipedia.org/wiki/File:Gospers_glider_gun.gif'><img src='images/TestDescriptions/ConwayGlider.gif' /></a> <p>Based on Conway’s Game of Life, an 8x8 matrix is generated and randomly populated with alive or dead cells.  Each cycle within the game counts as an iteration.  This provides a real-world example of a game that has heavy array manipulation.</p><div class='subtle'>Image via <a href='http://en.wikipedia.org/wiki/User:Kieff'>Kieff</a></div>" },
	{ "id": "Ribosome", "Name": "Ribosome", "Coeff": 14.29, "Run": function() { return RunRibosomeTest(); }, "Description": "<h3>Ribosome</h3> With each iteration, a “nucleotide chain” of 1,000 base pairs is created and added on to a previous chain.  As the chain grows, a random codon (triplet set) of nucleotides is selected to mutate into another random codon.  This makes heavy use of regular expressions in a mock-simulation of a biological situation." },
	{ "id": "MD5", "Name": "MD5", "Coeff": 291.97, "Run": function() { return RunMD5Test(); }, "Description": "<h3>MD5</h3> <a href='http://en.wikipedia.org/wiki/File:MD5.svg'><img src='images/TestDescriptions/MD5.png' /></a> <p>An MD5 encryption hash is generated from Hamlet’s famous soliloquy.  At each iteration, the string changes slightly (to prevent potential unfair caching) and a new MD5 hash is created.  This benchmark is extremely representative of real-world encryption hashing scenario.</p><div class='subtle'>Image via <a href='http://commons.wikimedia.org/wiki/User:Surachit'>Surachit</a></div>" },
	{ "id": "Primes", "Name": "Primes", "Coeff": 0.21, "Run": function() { return RunPrimesTest(); }, "Description": "<h3>Primes</h3> Calculates as many prime numbers as possible within the given time allotment." },
	{ "id": "GeneticSalesman", "Name": "Genetic Salesman", "Coeff": 10.12, "Run": function() { return RunGeneticSalesman(); }, "Description": "<h3>Genetic Salesman</h3> <a href='http://en.wikipedia.org/wiki/File:Kortad-rundtur.GIF'><img src='images/TestDescriptions/Salesman.gif' /></a> <p>Uses a genetic algorithm to determine the optimum route between five randomly generated points.  Each generation of the genetic algorithm counts as an iteration.<div class='subtle'>Image via <a href='http://sv.wikipedia.org/wiki/Anv%C3%A4ndare:Rogerg'>Rogerg</a></div>" },
	{ "id": "Arrays", "Name": "Arrays", "Coeff": 2.42, "Run": function() { return RunArrayTest(); }, "Description": "<h3>Arrays</h3> Classic benchmark test that adds random characters to an expanding array while shifting and pushing elements onto the end of the array.  Each iteration ends by sorting and reversing the array." },
	{ "id": "Dates", "Name": "Dates", "Coeff": 0.20, "Run": function() { return RunDatesTest(); }, "Description": "<h3>Dates</h3> A random date between 1/1/1050 and 12/31/2050 is generated using the Parse() method.  This random date is compared against a static date (12/7/1941) and various date-based mathematical expressions are evaluated." },
	{ "id": "Exceptions", "Name": "Exceptions", "Coeff": 0.08, "Run": function() { return RunExceptionTest(); }, "Description": "<h3>Exceptions</h3> An error is thrown to the browser within a try/catch/finally statement.  Error handling is typically an expensive CPU process; catching errors can consume large amounts of CPU time." }
]
};