| // Copyright 2014 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. | |
| import 'package:flutter_devicelab/framework/ab.dart'; | |
| import 'package:flutter_devicelab/framework/task_result.dart'; | |
| import 'common.dart'; | |
| void main() { | |
| test('ABTest', () { | |
| final ab = ABTest(localEngine: 'engine', localEngineHost: 'engine', taskName: 'test'); | |
| for (var i = 0; i < 5; i++) { | |
| final aResult = TaskResult.fromJson(<String, dynamic>{ | |
| 'success': true, | |
| 'data': <String, dynamic>{'i': i, 'j': 10 * i, 'not_a_metric': 'something'}, | |
| 'benchmarkScoreKeys': <String>['i', 'j'], | |
| }); | |
| ab.addAResult(aResult); | |
| final bResult = TaskResult.fromJson(<String, dynamic>{ | |
| 'success': true, | |
| 'data': <String, dynamic>{'i': i + 1, 'k': 10 * i + 1}, | |
| 'benchmarkScoreKeys': <String>['i', 'k'], | |
| }); | |
| ab.addBResult(bResult); | |
| } | |
| ab.finalize(); | |
| expect( | |
| ab.rawResults(), | |
| 'i:\n' | |
| ' A:\t0.00\t1.00\t2.00\t3.00\t4.00\t\n' | |
| ' B:\t1.00\t2.00\t3.00\t4.00\t5.00\t\n' | |
| 'j:\n' | |
| ' A:\t0.00\t10.00\t20.00\t30.00\t40.00\t\n' | |
| ' B:\tN/A\n' | |
| 'k:\n' | |
| ' A:\tN/A\n' | |
| ' B:\t1.00\t11.00\t21.00\t31.00\t41.00\t\n', | |
| ); | |
| expect( | |
| ab.printSummary(), | |
| 'Score\tAverage A (noise)\tAverage B (noise)\tSpeed-up\n' | |
| 'i\t2.00 (70.71%)\t3.00 (47.14%)\t0.67x\t\n' | |
| 'j\t20.00 (70.71%)\t\t\n' | |
| 'k\t\t21.00 (67.34%)\t\n', | |
| ); | |
| }); | |
| } |