Source code for ManifoldMarketManager.test.rule.manifold.test_other

from __future__ import annotations

from typing import TYPE_CHECKING
from urllib.parse import quote

from pytest import mark

from ....consts import Outcome
from ....market import Market
from ....rule.manifold.other import (AmplifiedOddsRule, OtherMarketClosed, OtherMarketResolved,
                                     OtherMarketUniqueTraders, OtherMarketValue)
from ....util import hash_to_randrange
from ... import cpmm1_mkt, manifold_vcr, mkt

assert mkt, cpmm1_mkt  # just need to access it so mypy doesn't complain

if TYPE_CHECKING:  # pragma: no cover
    from pytest_regressions.data_regression import DataRegressionFixture

    from ....consts import AnyResolution


[docs]def test_OtherMarketClosed(mkt: Market, data_regression: DataRegressionFixture) -> None: with manifold_vcr.use_cassette(f'rule/manifold/other/test_OtherMarketClosed/{quote(mkt.id)}.yaml'): obj = OtherMarketClosed(id_=mkt.id) val = obj._value(mkt) data_regression.check({'answer': val})
[docs]def test_OtherMarketResolved(mkt: Market, data_regression: DataRegressionFixture) -> None: with manifold_vcr.use_cassette(f'rule/manifold/other/test_OtherMarketResolved/{quote(mkt.id)}.yaml'): obj = OtherMarketResolved(id_=mkt.id) val = obj._value(mkt) data_regression.check({'answer': val})
[docs]def test_OtherMarketValue(mkt: Market, data_regression: DataRegressionFixture) -> None: with manifold_vcr.use_cassette(f'rule/manifold/other/test_OtherMarketValue/{quote(mkt.id)}.yaml'): obj: OtherMarketValue[AnyResolution] = OtherMarketValue(id_=mkt.id) val = obj._value(mkt) data_regression.check({'answer': val})
[docs]def test_OtherMarketUniqueTraders(mkt: Market, data_regression: DataRegressionFixture) -> None: with manifold_vcr.use_cassette(f'rule/manifold/other/test_OtherMarketUniqueTraders/{quote(mkt.id)}.yaml'): obj = OtherMarketUniqueTraders(id_=mkt.id) val = obj._value(mkt) data_regression.check({'answer': val})
[docs]@mark.depends(on=('test_OtherMarketValue', )) def test_AmplifiedOddsRule(cpmm1_mkt: Market, data_regression: DataRegressionFixture) -> None: mkt = cpmm1_mkt if mkt.market.outcomeType == Outcome.BINARY: filename = f'rule/manifold/other/test_AmplifiedOddsRule/{quote(mkt.id)}.yaml' with manifold_vcr.use_cassette(filename): obj = AmplifiedOddsRule( seed=filename, id_=mkt.id, a=hash_to_randrange(filename.encode(), 1, 129) ) val = obj._value(mkt) data_regression.check({'answer': val})