blob: 133b7fb44856c297ea164ca8cee9832f0903fdf9 [file] [log] [blame]
 // Copyright (c) 2014, 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 = 2.9 import "package:expect/expect.dart"; swap1(x, y, b) { if (b) { var t = x; x = y; y = t; } Expect.equals(2, x); Expect.equals(1, y); } swap2(x, y, z, w, b) { if (b) { var t = x; x = y; y = t; var q = z; z = w; w = q; } Expect.equals(2, x); Expect.equals(1, y); Expect.equals(4, z); Expect.equals(3, w); } swap3(x, y, z, b) { if (b) { var t = x; x = y; y = z; z = t; } Expect.equals(2, x); Expect.equals(3, y); Expect.equals(1, z); } swap4(x, y, z, b) { if (b) { var t = x; x = y; y = z; // swap cycle involves unused variable 'y' z = t; } Expect.equals(2, x); Expect.equals(1, z); } swap5(x, y, z, w, b, b2) { if (b) { var t = x; x = y; y = t; } if (b2) { var q = z; z = w; w = q; } Expect.equals(2, x); Expect.equals(1, y); Expect.equals(4, z); Expect.equals(3, w); } main() { swap1(1, 2, true); swap1(2, 1, false); swap2(1, 2, 3, 4, true); swap2(2, 1, 4, 3, false); swap3(1, 2, 3, true); swap3(2, 3, 1, false); swap4(1, 2, 3, true); swap4(2, 3, 1, false); swap5(1, 2, 3, 4, true, true); swap5(1, 2, 4, 3, true, false); swap5(2, 1, 3, 4, false, true); swap5(2, 1, 4, 3, false, false); }