|  | // 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); | 
|  | } | 
|  |  |