Index: chrome/test/data/dromaeo/tests/sunspider-string-fasta.html |
=================================================================== |
--- chrome/test/data/dromaeo/tests/sunspider-string-fasta.html (revision 0) |
+++ chrome/test/data/dromaeo/tests/sunspider-string-fasta.html (revision 0) |
@@ -0,0 +1,104 @@ |
+<html> |
+<head> |
+<script src="../htmlrunner.js"></script> |
+<script> |
+// The Great Computer Language Shootout |
+// http://shootout.alioth.debian.org |
+// |
+// Contributed by Ian Osgood |
+ |
+var last = 42, A = 3877, C = 29573, M = 139968; |
+ |
+function rand(max) { |
+ last = (last * A + C) % M; |
+ return max * last / M; |
+} |
+ |
+var ALU = |
+ "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" + |
+ "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" + |
+ "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" + |
+ "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" + |
+ "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" + |
+ "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" + |
+ "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"; |
+ |
+var IUB = { |
+ a:0.27, c:0.12, g:0.12, t:0.27, |
+ B:0.02, D:0.02, H:0.02, K:0.02, |
+ M:0.02, N:0.02, R:0.02, S:0.02, |
+ V:0.02, W:0.02, Y:0.02 |
+} |
+ |
+var HomoSap = { |
+ a: 0.3029549426680, |
+ c: 0.1979883004921, |
+ g: 0.1975473066391, |
+ t: 0.3015094502008 |
+} |
+ |
+function makeCumulative(table) { |
+ var last = null; |
+ for (var c in table) { |
+ if (last) table[c] += table[last]; |
+ last = c; |
+ } |
+} |
+ |
+function fastaRepeat(n, seq) { |
+ var seqi = 0, lenOut = 60; |
+ while (n>0) { |
+ if (n<lenOut) lenOut = n; |
+ if (seqi + lenOut < seq.length) { |
+ ret = seq.substring(seqi, seqi+lenOut); |
+ seqi += lenOut; |
+ } else { |
+ var s = seq.substring(seqi); |
+ seqi = lenOut - s.length; |
+ ret = s + seq.substring(0, seqi); |
+ } |
+ n -= lenOut; |
+ } |
+} |
+ |
+function fastaRandom(n, table) { |
+ var line = new Array(60); |
+ makeCumulative(table); |
+ while (n>0) { |
+ if (n<line.length) line = new Array(n); |
+ for (var i=0; i<line.length; i++) { |
+ var r = rand(1); |
+ for (var c in table) { |
+ if (r < table[c]) { |
+ line[i] = c; |
+ break; |
+ } |
+ } |
+ } |
+ ret = line.join(''); |
+ n -= line.length; |
+ } |
+} |
+ |
+window.onload = function(){ startTest("sunspider-string-fasta", ''); |
+ |
+var ret; |
+var n = 16; |
+ |
+test( "Homo sapiens alu", function(){ |
+ ret = fastaRepeat(4*n*10000, ALU); |
+}); |
+ |
+test( "IUB ambiguity codes", function(){ |
+ ret = fastaRandom(3*n*100, IUB); |
+}); |
+ |
+test( "Homo sapiens frequency", function(){ |
+ ret = fastaRandom(5*n*100, HomoSap); |
+}); |
+ |
+endTest(); }; |
+</script> |
+</head> |
+<body></body> |
+</html> |