| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| // Dart version of two-argument Ackermann-Peter function. |
| |
| import "package:expect/expect.dart"; |
| |
| class AckermannTest { |
| static int ack(int m, int n) { |
| return m == 0 |
| ? n + 1 |
| : ((n == 0) ? ack(m - 1, 1) : ack(m - 1, ack(m, n - 1))); |
| } |
| |
| static testMain() { |
| Expect.equals(253, ack(3, 5)); |
| } |
| } |
| |
| main() { |
| AckermannTest.testMain(); |
| } |