Agents lacked sufficient context to work without repeated clarification. - Rewrite AGENTS.md (61 → 300 lines): granular context table, working principles, formatting gates, CI pipeline, indicator dev checklist, validation commands, repo tree, and docs summary - Add CLAUDE.md with @AGENTS.md include for Claude Code - Fix copilot-instructions.md: replace @AGENTS.md (Copilot ignores @) with plain-text instruction to read AGENTS.md - pyproject.toml: add line-length=150 to [tool.black] and [tool.ruff]; remove dead [tool.ruff.format] section (ruff format disabled in CI) - test_property_based.py: replace filterwarnings suppression with assume(std > 0) — excludes degenerate inputs at source
141 lines
4.4 KiB
Python
141 lines
4.4 KiB
Python
from tests.config import get_sample_data
|
|
|
|
from unittest import TestCase
|
|
from pandas import DataFrame
|
|
|
|
|
|
class TestVolumeExtension(TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
cls.data = get_sample_data()
|
|
cls.open = cls.data["open"]
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
del cls.data
|
|
del cls.open
|
|
|
|
def setUp(self):
|
|
pass
|
|
|
|
def tearDown(self):
|
|
pass
|
|
|
|
def test_ad_ext(self):
|
|
self.data.ta.ad(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "AD")
|
|
|
|
def test_ad_open_ext(self):
|
|
self.data.ta.ad(open_=self.open, append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "ADo")
|
|
|
|
def test_adosc_ext(self):
|
|
self.data.ta.adosc(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "ADOSC_3_10")
|
|
|
|
def test_aobv_ext(self):
|
|
self.data.ta.aobv(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(
|
|
list(self.data.columns[-7:]),
|
|
[
|
|
"OBV",
|
|
"OBV_min_2",
|
|
"OBV_max_2",
|
|
"OBVe_4",
|
|
"OBVe_12",
|
|
"AOBV_LR_2",
|
|
"AOBV_SR_2",
|
|
],
|
|
)
|
|
# Remove "OBV" so it does not interfere with test_obv_ext()
|
|
self.data.drop("OBV", axis=1, inplace=True)
|
|
|
|
def test_cmf_ext(self):
|
|
self.data.ta.cmf(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "CMF_20")
|
|
|
|
def test_efi_ext(self):
|
|
self.data.ta.efi(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "EFI_13")
|
|
|
|
def test_eom_ext(self):
|
|
self.data.ta.eom(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "EOM_14_100000000")
|
|
|
|
def test_kvo_ext(self):
|
|
self.data.ta.kvo(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(list(self.data.columns[-2:]), ["KVO_34_55_13", "KVOs_34_55_13"])
|
|
|
|
def test_mfi_ext(self):
|
|
self.data.ta.mfi(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "MFI_14")
|
|
|
|
def test_nvi_ext(self):
|
|
self.data.ta.nvi(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "NVI_1")
|
|
|
|
def test_obv_ext(self):
|
|
self.data.ta.obv(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "OBV")
|
|
|
|
def test_pvi_ext(self):
|
|
self.data.ta.pvi(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "PVI_1")
|
|
|
|
def test_pvol_ext(self):
|
|
self.data.ta.pvol(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "PVOL")
|
|
|
|
def test_pvr_ext(self):
|
|
self.data.ta.pvr(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "PVR")
|
|
|
|
def test_pvt_ext(self):
|
|
self.data.ta.pvt(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "PVT")
|
|
|
|
def test_vp_ext(self):
|
|
result = self.data.ta.vp()
|
|
self.assertIsInstance(result, DataFrame)
|
|
self.assertEqual(result.name, "VP_10")
|
|
|
|
def test_vfi_ext(self):
|
|
self.data.ta.vfi(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "VFI_130")
|
|
|
|
def test_emv_ext(self):
|
|
self.data.ta.emv(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "EMV")
|
|
|
|
def test_marketfi_ext(self):
|
|
self.data.ta.marketfi(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "MARKETFI")
|
|
|
|
def test_vosc_ext(self):
|
|
self.data.ta.vosc(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "VOSC_14_28")
|
|
|
|
def test_wad_ext(self):
|
|
self.data.ta.wad(append=True)
|
|
self.assertIsInstance(self.data, DataFrame)
|
|
self.assertEqual(self.data.columns[-1], "WAD")
|