Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Side by Side Diff: tests/language/fannkuch_test.dart

Issue 12328104: Change new List(n) to return fixed length list. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Merge to head. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // The Great Computer Language Shootout 4 // The Great Computer Language Shootout
5 // http://shootout.alioth.debian.org/ 5 // http://shootout.alioth.debian.org/
6 // Ported from JavaScript contributed by Isaac Gouy. 6 // Ported from JavaScript contributed by Isaac Gouy.
7 // Description: Repeatedly acccess a tiny integer-sequence. 7 // Description: Repeatedly acccess a tiny integer-sequence.
8 8
9 class FannkuchTest { 9 class FannkuchTest {
10 static fannkuch(n) { 10 static fannkuch(n) {
11 var p = new List.fixedLength(n), q = new List.fixedLength(n), s = new List.f ixedLength(n); 11 var p = new List(n), q = new List(n), s = new List(n);
12 var sign = 1, maxflips = 0, sum = 0, m = n - 1; 12 var sign = 1, maxflips = 0, sum = 0, m = n - 1;
13 for (var i = 0; i < n; i++) { p[i] = i; q[i] = i; s[i] = i; } 13 for (var i = 0; i < n; i++) { p[i] = i; q[i] = i; s[i] = i; }
14 do { 14 do {
15 // Copy and flip. 15 // Copy and flip.
16 var q0 = p[0]; // Cache 0th element. 16 var q0 = p[0]; // Cache 0th element.
17 if (q0 != 0) { 17 if (q0 != 0) {
18 for (var i = 1; i < n; i++) q[i] = p[i]; // Work on a copy. 18 for (var i = 1; i < n; i++) q[i] = p[i]; // Work on a copy.
19 var flips = 1; 19 var flips = 1;
20 do { 20 do {
21 var qq = q[q0]; 21 var qq = q[q0];
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 var n = 6; 60 var n = 6;
61 var pf = fannkuch(n); 61 var pf = fannkuch(n);
62 Expect.equals(49, pf[0]); 62 Expect.equals(49, pf[0]);
63 Expect.equals(10, pf[1]); 63 Expect.equals(10, pf[1]);
64 print("${pf[0]}\nPfannkuchen($n) = ${pf[1]}"); 64 print("${pf[0]}\nPfannkuchen($n) = ${pf[1]}");
65 } 65 }
66 } 66 }
67 main() { 67 main() {
68 FannkuchTest.testMain(); 68 FannkuchTest.testMain();
69 } 69 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698