| // Copyright 2013 The Flutter Authors. 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.6 | |
| import 'package:test/test.dart'; | |
| /// The epsilon of tolerable double precision error. | |
| /// | |
| /// This is used in various places in the framework to allow for floating point | |
| /// precision loss in calculations. Differences below this threshold are safe | |
| /// to disregard. | |
| const double precisionErrorTolerance = 1e-10; | |
| /// Asserts that `callback` throws an [AssertionError]. | |
| /// | |
| /// When running in a VM in which assertions are enabled, asserts that the | |
| /// specified callback throws an [AssertionError]. When asserts are not | |
| /// enabled, such as when running using a release-mode VM with default | |
| /// settings, this acts as a no-op. | |
| void expectAssertion(Function callback) { | |
| bool assertsEnabled = false; | |
| assert(() { | |
| assertsEnabled = true; | |
| return true; | |
| }()); | |
| if (assertsEnabled) { | |
| bool threw = false; | |
| try { | |
| callback(); | |
| } catch (e) { | |
| expect(e is AssertionError, true); | |
| threw = true; | |
| } | |
| expect(threw, true); | |
| } | |
| } | |
| /// Asserts that `callback` throws an [ArgumentError]. | |
| void expectArgumentError(Function callback) { | |
| bool threw = false; | |
| try { | |
| callback(); | |
| } catch (e) { | |
| expect(e is ArgumentError, true); | |
| threw = true; | |
| } | |
| expect(threw, true); | |
| } | |