update
This commit is contained in:
1 parent
83278b2998
commit
b38ceec784
128 files changed
+51554
No files matched your search
@@ -0,0 +1,69 @@
|
||||
"""
|
||||
DAT10: 전체 유닛 및 통합 테스트 스위트 (pytest 호환)
|
||||
"""
|
||||
|
||||
import pytest
|
||||
import os
|
||||
import sys
|
||||
import pandas as pd
|
||||
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
||||
from src.preprocess.dat10_preprocessor import TacticalDataPreprocessor
|
||||
from src.models.dat10_baseline_model import P2PInventoryBaselineSync
|
||||
from src.models.dat10_advanced_detector import AdvancedCRDTSyncEngine, AdvancedSupplyChainDisasterDetector
|
||||
from src.verification.dat10_confidence_engine import TacticalConfidenceEngine, MerkleTreeVerifier
|
||||
from src.hitl.dat10_approval_workflow import HITLApprovalWorkflow
|
||||
|
||||
def test_preprocessor_validation():
|
||||
prep = TacticalDataPreprocessor(":memory:")
|
||||
raw = [{
|
||||
"transaction_id": "TX-TEST-001",
|
||||
"terminal_id": "TERM-A101",
|
||||
"unit_id": "BN-01",
|
||||
"nsn_code": "1005-01-584-1234",
|
||||
"quantity": -50, # 음수 -> 보정되어야 함
|
||||
"tx_type": "ISSUE"
|
||||
}]
|
||||
res = prep.process_batch(raw)
|
||||
assert res["total_processed"] == 1
|
||||
assert res["records"][0]["quantity"] == 50
|
||||
|
||||
def test_crdt_pn_counter():
|
||||
engine_a = AdvancedCRDTSyncEngine("NODE_A")
|
||||
engine_b = AdvancedCRDTSyncEngine("NODE_B")
|
||||
|
||||
engine_a.increment("ITEM_1", 100)
|
||||
engine_a.decrement("ITEM_1", 20)
|
||||
|
||||
engine_b.increment("ITEM_1", 50)
|
||||
engine_b.decrement("ITEM_1", 10)
|
||||
|
||||
engine_a.merge(engine_b.pn_counters)
|
||||
assert engine_a.value("ITEM_1") == 120
|
||||
|
||||
def test_confidence_engine():
|
||||
conf = TacticalConfidenceEngine()
|
||||
tx = {
|
||||
"transaction_id": "TX-01",
|
||||
"is_valid": 1,
|
||||
"lamport_timestamp": 5,
|
||||
"grid_coords": "52SDJ12345678",
|
||||
"stock_after": 500
|
||||
}
|
||||
eval_res = conf.evaluate_confidence(tx)
|
||||
assert eval_res["confidence_score"] >= 0.85
|
||||
assert eval_res["confidence_grade"] == "HIGH"
|
||||
|
||||
def test_merkle_tree():
|
||||
hashes = ["a"*64, "b"*64, "c"*64, "d"*64]
|
||||
merkle = MerkleTreeVerifier(hashes)
|
||||
assert len(merkle.root) == 64
|
||||
|
||||
def test_hitl_workflow():
|
||||
hitl = HITLApprovalWorkflow(":memory:")
|
||||
res = hitl.resolve_conflict("CONF-01", "1005-01", "APPROVE_LOCAL", "Officer", "Verified", 500)
|
||||
assert res["status"] == "RESOLVED"
|
||||
assert len(hitl.get_audit_trail()) == 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main(["-v", __file__])
|
||||
Reference in new issue
Block a user