eb8c24e133
R=zra@google.com BUG= Review URL: https://codereview.chromium.org/2451623006 .
92 lines
1.7 KiB
Dart
92 lines
1.7 KiB
Dart
// Copyright (c) 2016, 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.
|
|
|
|
import 'package:expect/expect.dart';
|
|
|
|
throwValue(val) => throw val;
|
|
|
|
f1() {
|
|
var a = 0;
|
|
var b = 0;
|
|
var c = 0;
|
|
var d = 0;
|
|
for (var i = 0; i < 10; i++) {
|
|
try {
|
|
for (var j = 0; j < 11; j++) {
|
|
try {
|
|
capture() => [i, j, a, b, c, d];
|
|
throwValue(j == 10 ? "${j}" : j);
|
|
} on num catch (e) {
|
|
a += j;
|
|
b -= e;
|
|
}
|
|
}
|
|
} catch (e) {
|
|
c++;
|
|
d += int.parse(e);
|
|
}
|
|
}
|
|
return [a, b, c, d];
|
|
}
|
|
|
|
|
|
f2() {
|
|
var a = 0;
|
|
var b = 0;
|
|
var c = 0;
|
|
var d = 0;
|
|
for (var i = 0; i < 10; i++) {
|
|
try {
|
|
for (var j = 0; j < 11; j++) {
|
|
try {
|
|
capture() => [i, j, a, b, c, d];
|
|
throwValue(j == 10 ? "${j}" : j);
|
|
} on num catch (e) {
|
|
a += j;
|
|
b -= e;
|
|
}
|
|
}
|
|
} catch (e) {
|
|
capture() => e;
|
|
c++;
|
|
d += int.parse(e);
|
|
}
|
|
}
|
|
return [a, b, c, d];
|
|
}
|
|
|
|
|
|
f3() {
|
|
var a = 0;
|
|
var b = 0;
|
|
var c = 0;
|
|
var d = 0;
|
|
for (var i = 0; i < 10; i++) {
|
|
try {
|
|
for (var j = 0; j < 11; j++) {
|
|
try {
|
|
capture() => [i, j, a, b, c, d];
|
|
throwValue(j == 10 ? "${j}" : j);
|
|
} on num catch (e) {
|
|
a += j;
|
|
b -= e;
|
|
}
|
|
}
|
|
} catch (e) {
|
|
capture() => e;
|
|
c++;
|
|
d += int.parse(e);
|
|
continue;
|
|
}
|
|
}
|
|
return [a, b, c, d];
|
|
}
|
|
|
|
|
|
main() {
|
|
Expect.listEquals([450, -450, 10, 100], f1());
|
|
Expect.listEquals([450, -450, 10, 100], f2());
|
|
Expect.listEquals([450, -450, 10, 100], f3());
|
|
}
|