# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Code coverage tests for the math_utils recipe module."""

import math

DEPS = [
    'math_utils',
    'test_utils',
]

def RunSteps(api):
  assert(0 == api.math_utils.relative_change(0, 0))
  assert(0 == api.math_utils.relative_change(1, 1))

  sample_a = list(range(1, 10))
  sample_b = list(range(11, 21))
  assert(99.9 == api.math_utils.confidence_score(sample_a, sample_b))
  assert(0 == api.math_utils.confidence_score([1],[1, 2]))
  assert(0 == api.math_utils.confidence_score([1, 1],[1, 2]))
  assert(99.9 == api.math_utils.confidence_score([1, 1, 1],[2, 2, 2]))
  assert(0 == api.math_utils.confidence_score([1, 1, 1],[1, 1, 1]))
  assert(0 == api.math_utils.confidence_score([],[], True))

  assert(0 ==  api.math_utils.relative_change(1, 1))
  assert(math.isnan(api.math_utils.relative_change(0, 1)))
  assert(1 == api.math_utils.relative_change(1, 2))

  assert(0 == api.math_utils.variance([0]))

  assert(1.33 < api.math_utils.pooled_standard_error([sample_a, sample_b])
         < 1.34)
  assert(0 == api.math_utils.pooled_standard_error([[0]]))
  assert(0 == api.math_utils.standard_error([1]))
  assert(0.64 < api.math_utils.standard_error([2, 3, 4, 5]) < 0.65)

  assert(110 == api.math_utils.mean([10, 20, 300]))
  try:
    api.math_utils.mean([])
  except ValueError:
    pass
  else:  # pragma: no cover
    raise AssertionError('`mean` doesn\'t raise ValueError for empty list.')

def GenTests(api):
  yield api.test('math_utils_test')

a71b63a61b599c3028075c60d956d12e9298bc79
<mask token>


def RunSteps(api):
    assert 0 == api.math_utils.relative_change(0, 0)
    assert 0 == api.math_utils.relative_change(1, 1)
    sample_a = list(range(1, 10))
    sample_b = list(range(11, 21))
    assert 99.9 == api.math_utils.confidence_score(sample_a, sample_b)
    assert 0 == api.math_utils.confidence_score([1], [1, 2])
    assert 0 == api.math_utils.confidence_score([1, 1], [1, 2])
    assert 99.9 == api.math_utils.confidence_score([1, 1, 1], [2, 2, 2])
    assert 0 == api.math_utils.confidence_score([1, 1, 1], [1, 1, 1])
    assert 0 == api.math_utils.confidence_score([], [], True)
    assert 0 == api.math_utils.relative_change(1, 1)
    assert math.isnan(api.math_utils.relative_change(0, 1))
    assert 1 == api.math_utils.relative_change(1, 2)
    assert 0 == api.math_utils.variance([0])
    assert 1.33 < api.math_utils.pooled_standard_error([sample_a, sample_b]
        ) < 1.34
    assert 0 == api.math_utils.pooled_standard_error([[0]])
    assert 0 == api.math_utils.standard_error([1])
    assert 0.64 < api.math_utils.standard_error([2, 3, 4, 5]) < 0.65
    assert 110 == api.math_utils.mean([10, 20, 300])
    try:
        api.math_utils.mean([])
    except ValueError:
        pass
    else:
        raise AssertionError("`mean` doesn't raise ValueError for empty list.")


<mask token>

<mask token>


def RunSteps(api):
    assert 0 == api.math_utils.relative_change(0, 0)
    assert 0 == api.math_utils.relative_change(1, 1)
    sample_a = list(range(1, 10))
    sample_b = list(range(11, 21))
    assert 99.9 == api.math_utils.confidence_score(sample_a, sample_b)
    assert 0 == api.math_utils.confidence_score([1], [1, 2])
    assert 0 == api.math_utils.confidence_score([1, 1], [1, 2])
    assert 99.9 == api.math_utils.confidence_score([1, 1, 1], [2, 2, 2])
    assert 0 == api.math_utils.confidence_score([1, 1, 1], [1, 1, 1])
    assert 0 == api.math_utils.confidence_score([], [], True)
    assert 0 == api.math_utils.relative_change(1, 1)
    assert math.isnan(api.math_utils.relative_change(0, 1))
    assert 1 == api.math_utils.relative_change(1, 2)
    assert 0 == api.math_utils.variance([0])
    assert 1.33 < api.math_utils.pooled_standard_error([sample_a, sample_b]
        ) < 1.34
    assert 0 == api.math_utils.pooled_standard_error([[0]])
    assert 0 == api.math_utils.standard_error([1])
    assert 0.64 < api.math_utils.standard_error([2, 3, 4, 5]) < 0.65
    assert 110 == api.math_utils.mean([10, 20, 300])
    try:
        api.math_utils.mean([])
    except ValueError:
        pass
    else:
        raise AssertionError("`mean` doesn't raise ValueError for empty list.")


def GenTests(api):
    yield api.test('math_utils_test')

<mask token>
DEPS = ['math_utils', 'test_utils']


def RunSteps(api):
    assert 0 == api.math_utils.relative_change(0, 0)
    assert 0 == api.math_utils.relative_change(1, 1)
    sample_a = list(range(1, 10))
    sample_b = list(range(11, 21))
    assert 99.9 == api.math_utils.confidence_score(sample_a, sample_b)
    assert 0 == api.math_utils.confidence_score([1], [1, 2])
    assert 0 == api.math_utils.confidence_score([1, 1], [1, 2])
    assert 99.9 == api.math_utils.confidence_score([1, 1, 1], [2, 2, 2])
    assert 0 == api.math_utils.confidence_score([1, 1, 1], [1, 1, 1])
    assert 0 == api.math_utils.confidence_score([], [], True)
    assert 0 == api.math_utils.relative_change(1, 1)
    assert math.isnan(api.math_utils.relative_change(0, 1))
    assert 1 == api.math_utils.relative_change(1, 2)
    assert 0 == api.math_utils.variance([0])
    assert 1.33 < api.math_utils.pooled_standard_error([sample_a, sample_b]
        ) < 1.34
    assert 0 == api.math_utils.pooled_standard_error([[0]])
    assert 0 == api.math_utils.standard_error([1])
    assert 0.64 < api.math_utils.standard_error([2, 3, 4, 5]) < 0.65
    assert 110 == api.math_utils.mean([10, 20, 300])
    try:
        api.math_utils.mean([])
    except ValueError:
        pass
    else:
        raise AssertionError("`mean` doesn't raise ValueError for empty list.")


def GenTests(api):
    yield api.test('math_utils_test')

<mask token>
import math
DEPS = ['math_utils', 'test_utils']


def RunSteps(api):
    assert 0 == api.math_utils.relative_change(0, 0)
    assert 0 == api.math_utils.relative_change(1, 1)
    sample_a = list(range(1, 10))
    sample_b = list(range(11, 21))
    assert 99.9 == api.math_utils.confidence_score(sample_a, sample_b)
    assert 0 == api.math_utils.confidence_score([1], [1, 2])
    assert 0 == api.math_utils.confidence_score([1, 1], [1, 2])
    assert 99.9 == api.math_utils.confidence_score([1, 1, 1], [2, 2, 2])
    assert 0 == api.math_utils.confidence_score([1, 1, 1], [1, 1, 1])
    assert 0 == api.math_utils.confidence_score([], [], True)
    assert 0 == api.math_utils.relative_change(1, 1)
    assert math.isnan(api.math_utils.relative_change(0, 1))
    assert 1 == api.math_utils.relative_change(1, 2)
    assert 0 == api.math_utils.variance([0])
    assert 1.33 < api.math_utils.pooled_standard_error([sample_a, sample_b]
        ) < 1.34
    assert 0 == api.math_utils.pooled_standard_error([[0]])
    assert 0 == api.math_utils.standard_error([1])
    assert 0.64 < api.math_utils.standard_error([2, 3, 4, 5]) < 0.65
    assert 110 == api.math_utils.mean([10, 20, 300])
    try:
        api.math_utils.mean([])
    except ValueError:
        pass
    else:
        raise AssertionError("`mean` doesn't raise ValueError for empty list.")


def GenTests(api):
    yield api.test('math_utils_test')

# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Code coverage tests for the math_utils recipe module."""

import math

DEPS = [
    'math_utils',
    'test_utils',
]

def RunSteps(api):
  assert(0 == api.math_utils.relative_change(0, 0))
  assert(0 == api.math_utils.relative_change(1, 1))

  sample_a = list(range(1, 10))
  sample_b = list(range(11, 21))
  assert(99.9 == api.math_utils.confidence_score(sample_a, sample_b))
  assert(0 == api.math_utils.confidence_score([1],[1, 2]))
  assert(0 == api.math_utils.confidence_score([1, 1],[1, 2]))
  assert(99.9 == api.math_utils.confidence_score([1, 1, 1],[2, 2, 2]))
  assert(0 == api.math_utils.confidence_score([1, 1, 1],[1, 1, 1]))
  assert(0 == api.math_utils.confidence_score([],[], True))

  assert(0 ==  api.math_utils.relative_change(1, 1))
  assert(math.isnan(api.math_utils.relative_change(0, 1)))
  assert(1 == api.math_utils.relative_change(1, 2))

  assert(0 == api.math_utils.variance([0]))

  assert(1.33 < api.math_utils.pooled_standard_error([sample_a, sample_b])
         < 1.34)
  assert(0 == api.math_utils.pooled_standard_error([[0]]))
  assert(0 == api.math_utils.standard_error([1]))
  assert(0.64 < api.math_utils.standard_error([2, 3, 4, 5]) < 0.65)

  assert(110 == api.math_utils.mean([10, 20, 300]))
  try:
    api.math_utils.mean([])
  except ValueError:
    pass
  else:  # pragma: no cover
    raise AssertionError('`mean` doesn\'t raise ValueError for empty list.')

def GenTests(api):
  yield api.test('math_utils_test')
