def test_handle_bar_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        bar = TestDataStubs.bar_5decimal()

        # Act
        indicator.handle_bar(bar)

        # Assert
        assert indicator.has_inputs
        assert indicator.value == 1.00003
Example #2
0
    def test_handle_trade_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks = SimpleMovingAverage(10)

        tick = TestStubs.trade_tick_5decimal(AUDUSD_FXCM)

        # Act
        sma_for_ticks.handle_trade_tick(tick)

        # Assert
        self.assertTrue(sma_for_ticks.has_inputs)
        self.assertEqual(1.00001, sma_for_ticks.value)
    def test_handle_trade_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks = SimpleMovingAverage(10)

        tick = TestDataStubs.trade_tick_5decimal(AUDUSD_SIM.id)

        # Act
        sma_for_ticks.handle_trade_tick(tick)

        # Assert
        assert sma_for_ticks.has_inputs
        assert sma_for_ticks.value == 1.00001
    def test_handle_trade_tick_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        tick = TestDataStubs.trade_tick_5decimal(AUDUSD_SIM.id)

        # Act
        indicator.handle_trade_tick(tick)

        # Assert
        assert indicator.has_inputs
        assert indicator.value == 1.00001
Example #5
0
    def test_handle_trade_tick_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        tick = TestStubs.trade_tick_5decimal(AUDUSD_SIM.symbol)

        # Act
        indicator.handle_trade_tick(tick)

        # Assert
        self.assertTrue(indicator.has_inputs)
        self.assertEqual(1.00001, indicator.value)
Example #6
0
    def test_handle_bar_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        bar = TestStubs.bar_5decimal()

        # Act
        indicator.handle_bar(bar)

        # Assert
        self.assertTrue(indicator.has_inputs)
        self.assertEqual(1.00003, indicator.value)
Example #7
0
    def test_handle_quote_tick_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10, PriceType.MID)

        tick = TestStubs.quote_tick_5decimal(AUDUSD_SIM.id)

        # Act
        indicator.handle_quote_tick(tick)

        # Assert
        self.assertTrue(indicator.has_inputs)
        self.assertEqual(1.00002, indicator.value)
Example #8
0
 def setUp(self):
     # Arrange
     self.sma = SimpleMovingAverage(10)
Example #9
0
class SimpleMovingAverageTests(unittest.TestCase):

    # Fixture Setup
    def setUp(self):
        # Arrange
        self.sma = SimpleMovingAverage(10)

    def test_name_returns_expected_name(self):
        # Act
        # Assert
        self.assertEqual("SimpleMovingAverage", self.sma.name)

    def test_str_returns_expected_string(self):
        # Act
        # Assert
        self.assertEqual("SimpleMovingAverage(10)", str(self.sma))

    def test_repr_returns_expected_string(self):
        # Act
        # Assert
        self.assertTrue(
            repr(self.sma).startswith("<SimpleMovingAverage(10) object at"))
        self.assertTrue(repr(self.sma).endswith(">"))

    def test_period_returns_expected_value(self):
        # Act
        # Assert
        self.assertEqual(10, self.sma.period)

    def test_initialized_without_inputs_returns_false(self):
        # Act
        # Assert
        self.assertEqual(False, self.sma.initialized)

    def test_initialized_with_required_inputs_returns_true(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)
        self.sma.update_raw(4.00000)
        self.sma.update_raw(5.00000)
        self.sma.update_raw(6.00000)
        self.sma.update_raw(7.00000)
        self.sma.update_raw(8.00000)
        self.sma.update_raw(9.00000)
        self.sma.update_raw(10.00000)

        # Act
        # Assert
        self.assertEqual(True, self.sma.initialized)
        self.assertEqual(10, self.sma.count)
        self.assertEqual(5.5, self.sma.value)

    def test_value_with_one_input_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)

        # Act
        # Assert
        self.assertEqual(1.0, self.sma.value)

    def test_value_with_three_inputs_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)

        # Act
        # Assert
        self.assertEqual(2.0, self.sma.value)

    def test_value_at_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)

        # Act
        # Assert
        self.assertEqual(2.0, self.sma.value)

    def test_handle_quote_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks1 = SimpleMovingAverage(10, PriceType.ASK)
        sma_for_ticks2 = SimpleMovingAverage(10, PriceType.MID)
        sma_for_ticks3 = SimpleMovingAverage(10, PriceType.BID)

        tick = TestStubs.quote_tick_5decimal(AUDUSD_FXCM)

        # Act
        sma_for_ticks1.handle_quote_tick(tick)
        sma_for_ticks2.handle_quote_tick(tick)
        sma_for_ticks3.handle_quote_tick(tick)

        # Assert
        self.assertTrue(sma_for_ticks1.has_inputs)
        self.assertTrue(sma_for_ticks2.has_inputs)
        self.assertTrue(sma_for_ticks3.has_inputs)
        self.assertEqual(1.00003, sma_for_ticks1.value)
        self.assertEqual(1.00002, sma_for_ticks2.value)
        self.assertEqual(1.00001, sma_for_ticks3.value)

    def test_handle_trade_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks = SimpleMovingAverage(10)

        tick = TestStubs.trade_tick_5decimal(AUDUSD_FXCM)

        # Act
        sma_for_ticks.handle_trade_tick(tick)

        # Assert
        self.assertTrue(sma_for_ticks.has_inputs)
        self.assertEqual(1.00001, sma_for_ticks.value)

    def test_with_battery_signal(self):
        # Arrange
        tt = time.time()
        battery_signal = BatterySeries.create(length=1000000)
        output = []

        # Act
        for point in battery_signal:
            self.sma.update_raw(point)
            output.append(self.sma.value)

        # Assert
        self.assertEqual(len(battery_signal), len(output))
        print(self.sma.value)
        print(time.time() - tt)
Example #10
0
    def test_handle_quote_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks1 = SimpleMovingAverage(10, PriceType.ASK)
        sma_for_ticks2 = SimpleMovingAverage(10, PriceType.MID)
        sma_for_ticks3 = SimpleMovingAverage(10, PriceType.BID)

        tick = TestStubs.quote_tick_5decimal(AUDUSD_FXCM)

        # Act
        sma_for_ticks1.handle_quote_tick(tick)
        sma_for_ticks2.handle_quote_tick(tick)
        sma_for_ticks3.handle_quote_tick(tick)

        # Assert
        self.assertTrue(sma_for_ticks1.has_inputs)
        self.assertTrue(sma_for_ticks2.has_inputs)
        self.assertTrue(sma_for_ticks3.has_inputs)
        self.assertEqual(1.00003, sma_for_ticks1.value)
        self.assertEqual(1.00002, sma_for_ticks2.value)
        self.assertEqual(1.00001, sma_for_ticks3.value)
Example #11
0
class SimpleMovingAverageTests(unittest.TestCase):

    # Fixture Setup
    def setUp(self):
        # Arrange
        self.sma = SimpleMovingAverage(10)

    def test_name_returns_expected_name(self):
        # Act
        # Assert
        self.assertEqual('SimpleMovingAverage', self.sma.name)

    def test_str_returns_expected_string(self):
        # Act
        # Assert
        self.assertEqual('SimpleMovingAverage(10)', str(self.sma))

    def test_repr_returns_expected_string(self):
        # Act
        # Assert
        self.assertTrue(repr(self.sma).startswith('<SimpleMovingAverage(10) object at'))
        self.assertTrue(repr(self.sma).endswith('>'))

    def test_period_returns_expected_value(self):
        # Act
        # Assert
        self.assertEqual(10, self.sma.period)

    def test_initialized_without_inputs_returns_false(self):
        # Act
        # Assert
        self.assertEqual(False, self.sma.initialized)

    def test_initialized_with_required_inputs_returns_true(self):
        # Arrange
        self.sma.update(1.00000)
        self.sma.update(2.00000)
        self.sma.update(3.00000)
        self.sma.update(4.00000)
        self.sma.update(5.00000)
        self.sma.update(6.00000)
        self.sma.update(7.00000)
        self.sma.update(8.00000)
        self.sma.update(9.00000)
        self.sma.update(10.00000)

        # Act
        # Assert
        self.assertEqual(True, self.sma.initialized)
        self.assertEqual(10, self.sma.count)
        self.assertEqual(5.5, self.sma.value)

    def test_value_with_one_input_returns_expected_value(self):
        # Arrange
        self.sma.update(1.00000)

        # Act
        # Assert
        self.assertEqual(1.0, self.sma.value)

    def test_value_with_three_inputs_returns_expected_value(self):
        # Arrange
        self.sma.update(1.00000)
        self.sma.update(2.00000)
        self.sma.update(3.00000)

        # Act
        # Assert
        self.assertEqual(2.0, self.sma.value)

    def test_value_at_returns_expected_value(self):
        # Arrange
        self.sma.update(1.00000)
        self.sma.update(2.00000)
        self.sma.update(3.00000)

        # Act
        # Assert
        self.assertEqual(2.0, self.sma.value)

    def test_with_battery_signal(self):
        # Arrange
        tt = time.time()
        battery_signal = BatterySeries.create(length=1000000)
        output = []

        # Act
        for point in battery_signal:
            self.sma.update(point)
            output.append(self.sma.value)

        # Assert
        self.assertEqual(len(battery_signal), len(output))
        print(self.sma.value)
        print(time.time() - tt)
 def setup(self):
     # Fixture Setup
     self.sma = SimpleMovingAverage(10)
class TestSimpleMovingAverage:
    def setup(self):
        # Fixture Setup
        self.sma = SimpleMovingAverage(10)

    def test_name_returns_expected_string(self):
        # Arrange, Act, Assert
        assert self.sma.name == "SimpleMovingAverage"

    def test_str_repr_returns_expected_string(self):
        # Arrange, Act, Assert
        assert str(self.sma) == "SimpleMovingAverage(10)"
        assert repr(self.sma) == "SimpleMovingAverage(10)"

    def test_period_returns_expected_value(self):
        # Arrange, Act, Assert
        assert self.sma.period == 10

    def test_initialized_without_inputs_returns_false(self):
        # Arrange, Act, Assert
        assert self.sma.initialized is False

    def test_initialized_with_required_inputs_returns_true(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)
        self.sma.update_raw(4.00000)
        self.sma.update_raw(5.00000)
        self.sma.update_raw(6.00000)
        self.sma.update_raw(7.00000)
        self.sma.update_raw(8.00000)
        self.sma.update_raw(9.00000)
        self.sma.update_raw(10.00000)

        # Act, Assert
        assert self.sma.initialized is True
        assert self.sma.count == 10
        assert self.sma.value == 5.5

    def test_handle_quote_tick_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10, PriceType.MID)

        tick = TestDataStubs.quote_tick_5decimal(AUDUSD_SIM.id)

        # Act
        indicator.handle_quote_tick(tick)

        # Assert
        assert indicator.has_inputs
        assert indicator.value == 1.00002

    def test_handle_trade_tick_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        tick = TestDataStubs.trade_tick_5decimal(AUDUSD_SIM.id)

        # Act
        indicator.handle_trade_tick(tick)

        # Assert
        assert indicator.has_inputs
        assert indicator.value == 1.00001

    def test_handle_bar_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        bar = TestDataStubs.bar_5decimal()

        # Act
        indicator.handle_bar(bar)

        # Assert
        assert indicator.has_inputs
        assert indicator.value == 1.00003

    def test_value_with_one_input_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)

        # Act, Assert
        assert self.sma.value == 1.0

    def test_value_with_three_inputs_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)

        # Act, Assert
        assert self.sma.value == 2.0

    def test_value_at_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)

        # Act, Assert
        assert self.sma.value == 2.0

    def test_handle_quote_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks1 = SimpleMovingAverage(10, PriceType.ASK)
        sma_for_ticks2 = SimpleMovingAverage(10, PriceType.MID)
        sma_for_ticks3 = SimpleMovingAverage(10, PriceType.BID)

        tick = TestDataStubs.quote_tick_5decimal(AUDUSD_SIM.id)

        # Act
        sma_for_ticks1.handle_quote_tick(tick)
        sma_for_ticks2.handle_quote_tick(tick)
        sma_for_ticks3.handle_quote_tick(tick)

        # Assert
        assert sma_for_ticks1.has_inputs
        assert sma_for_ticks2.has_inputs
        assert sma_for_ticks3.has_inputs
        assert sma_for_ticks1.value == 1.00003
        assert sma_for_ticks2.value == 1.00002
        assert sma_for_ticks3.value == 1.00001

    def test_handle_trade_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks = SimpleMovingAverage(10)

        tick = TestDataStubs.trade_tick_5decimal(AUDUSD_SIM.id)

        # Act
        sma_for_ticks.handle_trade_tick(tick)

        # Assert
        assert sma_for_ticks.has_inputs
        assert sma_for_ticks.value == 1.00001

    def test_reset_successfully_returns_indicator_to_fresh_state(self):
        # Arrange
        for _i in range(1000):
            self.sma.update_raw(1.00000)

        # Act
        self.sma.reset()

        # Assert
        assert not self.sma.initialized
        assert self.sma.value == 0
    def test_handle_quote_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks1 = SimpleMovingAverage(10, PriceType.ASK)
        sma_for_ticks2 = SimpleMovingAverage(10, PriceType.MID)
        sma_for_ticks3 = SimpleMovingAverage(10, PriceType.BID)

        tick = TestDataStubs.quote_tick_5decimal(AUDUSD_SIM.id)

        # Act
        sma_for_ticks1.handle_quote_tick(tick)
        sma_for_ticks2.handle_quote_tick(tick)
        sma_for_ticks3.handle_quote_tick(tick)

        # Assert
        assert sma_for_ticks1.has_inputs
        assert sma_for_ticks2.has_inputs
        assert sma_for_ticks3.has_inputs
        assert sma_for_ticks1.value == 1.00003
        assert sma_for_ticks2.value == 1.00002
        assert sma_for_ticks3.value == 1.00001
Example #15
0
class SimpleMovingAverageTests(unittest.TestCase):

    def setUp(self):
        # Fixture Setup
        self.sma = SimpleMovingAverage(10)

    def test_name_returns_expected_string(self):
        # Arrange
        # Act
        # Assert
        self.assertEqual("SimpleMovingAverage", self.sma.name)

    def test_str_repr_returns_expected_string(self):
        # Arrange
        # Act
        # Assert
        self.assertEqual("SimpleMovingAverage(10)", str(self.sma))
        self.assertEqual("SimpleMovingAverage(10)", repr(self.sma))

    def test_period_returns_expected_value(self):
        # Arrange
        # Act
        # Assert
        self.assertEqual(10, self.sma.period)

    def test_initialized_without_inputs_returns_false(self):
        # Arrange
        # Act
        # Assert
        self.assertEqual(False, self.sma.initialized)

    def test_initialized_with_required_inputs_returns_true(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)
        self.sma.update_raw(4.00000)
        self.sma.update_raw(5.00000)
        self.sma.update_raw(6.00000)
        self.sma.update_raw(7.00000)
        self.sma.update_raw(8.00000)
        self.sma.update_raw(9.00000)
        self.sma.update_raw(10.00000)

        # Act
        # Assert
        self.assertEqual(True, self.sma.initialized)
        self.assertEqual(10, self.sma.count)
        self.assertEqual(5.5, self.sma.value)

    def test_handle_quote_tick_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10, PriceType.MID)

        tick = TestStubs.quote_tick_5decimal(AUDUSD_SIM.symbol)

        # Act
        indicator.handle_quote_tick(tick)

        # Assert
        self.assertTrue(indicator.has_inputs)
        self.assertEqual(1.00002, indicator.value)

    def test_handle_trade_tick_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        tick = TestStubs.trade_tick_5decimal(AUDUSD_SIM.symbol)

        # Act
        indicator.handle_trade_tick(tick)

        # Assert
        self.assertTrue(indicator.has_inputs)
        self.assertEqual(1.00001, indicator.value)

    def test_handle_bar_updates_indicator(self):
        # Arrange
        indicator = SimpleMovingAverage(10)

        bar = TestStubs.bar_5decimal()

        # Act
        indicator.handle_bar(bar)

        # Assert
        self.assertTrue(indicator.has_inputs)
        self.assertEqual(1.00003, indicator.value)

    def test_value_with_one_input_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)

        # Act
        # Assert
        self.assertEqual(1.0, self.sma.value)

    def test_value_with_three_inputs_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)

        # Act
        # Assert
        self.assertEqual(2.0, self.sma.value)

    def test_value_at_returns_expected_value(self):
        # Arrange
        self.sma.update_raw(1.00000)
        self.sma.update_raw(2.00000)
        self.sma.update_raw(3.00000)

        # Act
        # Assert
        self.assertEqual(2.0, self.sma.value)

    def test_handle_quote_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks1 = SimpleMovingAverage(10, PriceType.ASK)
        sma_for_ticks2 = SimpleMovingAverage(10, PriceType.MID)
        sma_for_ticks3 = SimpleMovingAverage(10, PriceType.BID)

        tick = TestStubs.quote_tick_5decimal(AUDUSD_SIM.symbol)

        # Act
        sma_for_ticks1.handle_quote_tick(tick)
        sma_for_ticks2.handle_quote_tick(tick)
        sma_for_ticks3.handle_quote_tick(tick)

        # Assert
        self.assertTrue(sma_for_ticks1.has_inputs)
        self.assertTrue(sma_for_ticks2.has_inputs)
        self.assertTrue(sma_for_ticks3.has_inputs)
        self.assertEqual(1.00003, sma_for_ticks1.value)
        self.assertEqual(1.00002, sma_for_ticks2.value)
        self.assertEqual(1.00001, sma_for_ticks3.value)

    def test_handle_trade_tick_updates_with_expected_value(self):
        # Arrange
        sma_for_ticks = SimpleMovingAverage(10)

        tick = TestStubs.trade_tick_5decimal(AUDUSD_SIM.symbol)

        # Act
        sma_for_ticks.handle_trade_tick(tick)

        # Assert
        self.assertTrue(sma_for_ticks.has_inputs)
        self.assertEqual(1.00001, sma_for_ticks.value)

    def test_reset_successfully_returns_indicator_to_fresh_state(self):
        # Arrange
        for _i in range(1000):
            self.sma.update_raw(1.00000)

        # Act
        self.sma.reset()

        # Assert
        self.assertFalse(self.sma.initialized)
        self.assertEqual(0, self.sma.value)