# -*- coding: utf-8 -*-
# Copyright (c) 2013 The ChromiumOS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""This contains some mock instances for testing."""

from __future__ import print_function

from benchmark import Benchmark
from label import MockLabel

perf_args = 'record -a -e cycles'
label1 = MockLabel(
    'test1',
    'build1',
    'image1',
    'autotest_dir',
    'debug_dir',
    '/tmp/test_benchmark_run',
    'x86-alex',
    'chromeos-alex1',
    image_args='',
    cache_dir='',
    cache_only=False,
    log_level='average',
    compiler='gcc',
    crosfleet=False,
    chrome_src=None)

label2 = MockLabel(
    'test2',
    'build2',
    'image2',
    'autotest_dir',
    'debug_dir',
    '/tmp/test_benchmark_run_2',
    'x86-alex',
    'chromeos-alex2',
    image_args='',
    cache_dir='',
    cache_only=False,
    log_level='average',
    compiler='gcc',
    crosfleet=False,
    chrome_src=None)

benchmark1 = Benchmark('benchmark1', 'autotest_name_1', 'autotest_args', 2, '',
                       perf_args, 'telemetry_Crosperf', '')

benchmark2 = Benchmark('benchmark2', 'autotest_name_2', 'autotest_args', 2, '',
                       perf_args, 'telemetry_Crosperf', '')

keyval = {}
keyval[0] = {
    '': 'PASS',
    'milliseconds_1': '1',
    'milliseconds_2': '8',
    'milliseconds_3': '9.2',
    'test{1}': '2',
    'test{2}': '4',
    'ms_1': '2.1',
    'total': '5',
    'bool': 'True'
}

keyval[1] = {
    '': 'PASS',
    'milliseconds_1': '3',
    'milliseconds_2': '5',
    'ms_1': '2.2',
    'total': '6',
    'test{1}': '3',
    'test{2}': '4',
    'bool': 'FALSE'
}

keyval[2] = {
    '': 'PASS',
    'milliseconds_4': '30',
    'milliseconds_5': '50',
    'ms_1': '2.23',
    'total': '6',
    'test{1}': '5',
    'test{2}': '4',
    'bool': 'FALSE'
}

keyval[3] = {
    '': 'PASS',
    'milliseconds_1': '3',
    'milliseconds_6': '7',
    'ms_1': '2.3',
    'total': '7',
    'test{1}': '2',
    'test{2}': '6',
    'bool': 'FALSE'
}

keyval[4] = {
    '': 'PASS',
    'milliseconds_1': '3',
    'milliseconds_8': '6',
    'ms_1': '2.3',
    'total': '7',
    'test{1}': '2',
    'test{2}': '6',
    'bool': 'TRUE'
}

keyval[5] = {
    '': 'PASS',
    'milliseconds_1': '3',
    'milliseconds_8': '6',
    'ms_1': '2.2',
    'total': '7',
    'test{1}': '2',
    'test{2}': '2',
    'bool': 'TRUE'
}

keyval[6] = {
    '': 'PASS',
    'milliseconds_1': '3',
    'milliseconds_8': '6',
    'ms_1': '2',
    'total': '7',
    'test{1}': '2',
    'test{2}': '4',
    'bool': 'TRUE'
}

keyval[7] = {
    '': 'PASS',
    'milliseconds_1': '3',
    'milliseconds_8': '6',
    'ms_1': '1',
    'total': '7',
    'test{1}': '1',
    'test{2}': '6',
    'bool': 'TRUE'
}

keyval[8] = {
    '': 'PASS',
    'milliseconds_1': '3',
    'milliseconds_8': '6',
    'ms_1': '3.3',
    'total': '7',
    'test{1}': '2',
    'test{2}': '8',
    'bool': 'TRUE'
}
