// 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 ABTest ab = ABTest('engine', 'test'); for (int i = 0; i < 5; i++) { final TaskResult 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 TaskResult 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'); }); }