# Path: simfile/timing/tests/helpers.py
# def testing_timing_data():
#     return TimingData(SSCSimfile(string=
#         '#VERSION:0.83;\n'
#         '#OFFSET:-0.009;\n'
#         '#BPMS:0.000=120.000,\n'
#         '1.000=150.000,\n'
#         '2.000=200.000,\n'
#         '3.000=300.000;\n'
#         '#STOPS:2.500=0.500,\n'
#         '3.000=0.100;\n'
#     ))


from decimal import Decimal
from .helpers import testing_timing_data
from .. import *
import unittest
import simfile
        self.assertEqual('Beat(0.25)', repr(Beat(4, 16)))
        self.assertEqual('Beat(0.333)', repr(Beat(4, 12)))
        self.assertEqual('Beat(0.5)', repr(Beat(4, 8)))
        self.assertEqual('Beat(1, 1000)', repr(Beat(1, 1000)))
    
    def test_fraction_overrides(self):
        a = Beat(5, 3)
        b = 2

        self.assertEqual((0, Beat(5, 3)), divmod(a, b))
        self.assertIsInstance(divmod(a, b)[1], Beat)
        self.assertEqual((1, Beat(1, 3)), divmod(b, a))
        self.assertIsInstance(divmod(b, a)[1], Beat)

        pairs = [
            (Beat(5, 3), abs(a)),       # __abs__
            (Beat(11, 3), a + b),       # __add__
            (Beat(5, 3), a % b),        # __mod__
            (Beat(10, 3), a * b),       # __mul__
            (Beat(-5, 3), -a),          # __neg__
            (Beat(5, 3), +a),           # __pos__
            (Beat(25, 9), a ** b),      # __pow__
            (Beat(11, 3), b + a),       # __radd__
            (Beat(1, 3), b % a),        # __rmod__
            (Beat(10, 3), b * a),       # __rmul__
            (Beat(4, 1), b ** Beat(2)), # __rpow__
            (Beat(1, 3), b - a),        # __rsub__
            (Beat(6, 5), b / a),        # __rtruediv__
            (Beat(-1, 3), a - b),       # __sub__
            (Beat(5, 6), a / b),        # __truediv__

# Path: simfile/timing/tests/helpers.py
# def testing_timing_data():
#     return TimingData(SSCSimfile(string=
#         '#VERSION:0.83;\n'
#         '#OFFSET:-0.009;\n'
#         '#BPMS:0.000=120.000,\n'
#         '1.000=150.000,\n'
#         '2.000=200.000,\n'
#         '3.000=300.000;\n'
#         '#STOPS:2.500=0.500,\n'
#         '3.000=0.100;\n'
#     ))


# Path: simfile/timing/tests/test_module.py
from decimal import Decimal
from .helpers import testing_timing_data
from .. import *
import unittest
import simfile

        self.assertEqual('Beat(0.25)', repr(Beat(4, 16)))
        self.assertEqual('Beat(0.333)', repr(Beat(4, 12)))
        self.assertEqual('Beat(0.5)', repr(Beat(4, 8)))
        self.assertEqual('Beat(1, 1000)', repr(Beat(1, 1000)))
    
    def test_fraction_overrides(self):
        a = Beat(5, 3)
        b = 2

        self.assertEqual((0, Beat(5, 3)), divmod(a, b))
        self.assertIsInstance(divmod(a, b)[1], Beat)
        self.assertEqual((1, Beat(1, 3)), divmod(b, a))
        self.assertIsInstance(divmod(b, a)[1], Beat)

        pairs = [
            (Beat(5, 3), abs(a)),       # __abs__
            (Beat(11, 3), a + b),       # __add__
            (Beat(5, 3), a % b),        # __mod__
            (Beat(10, 3), a * b),       # __mul__
            (Beat(-5, 3), -a),          # __neg__
            (Beat(5, 3), +a),           # __pos__
            (Beat(25, 9), a ** b),      # __pow__
            (Beat(11, 3), b + a),       # __radd__
            (Beat(1, 3), b % a),        # __rmod__
            (Beat(10, 3), b * a),       # __rmul__
            (Beat(4, 1), b ** Beat(2)), # __rpow__
            (Beat(1, 3), b - a),        # __rsub__
            (Beat(6, 5), b / a),        # __rtruediv__
            (Beat(-1, 3), a - b),       # __sub__
            (Beat(5, 6), a / b),        # __truediv__

        ]