Spaces:
Sleeping
Sleeping
File size: 2,605 Bytes
e0f7a6a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | import tempfile
import unittest
from pathlib import Path
from orbit_core import OrbitStore, decision_gate, required_confidence
class OrbitCoreTests(unittest.TestCase):
def make_store(self):
tempdir = tempfile.TemporaryDirectory()
self.addCleanup(tempdir.cleanup)
return OrbitStore(Path(tempdir.name) / "beliefs.json")
def test_evidence_keeps_provenance(self):
store = self.make_store()
belief = store.record_evidence(
subject="Bike",
predicate="weighs",
obj="330 lb",
context="current configuration",
claim_type="personal_report",
relation="support",
source_type="firsthand_report",
speaker="Thomas",
quote="She's not fat. 330 lbs",
reliability=0.70,
)
self.assertEqual(belief.evidence[0].speaker, "Thomas")
self.assertEqual(belief.evidence[0].quote, "She's not fat. 330 lbs")
self.assertEqual(belief.claim_type, "personal_report")
def test_contradiction_increases_pressure(self):
store = self.make_store()
first = store.record_evidence(
subject="Glass",
predicate="is",
obj="fragile",
relation="support",
source_type="direct_measurement",
reliability=0.90,
)
before = first.pressure
after = store.record_evidence(
subject="Glass",
predicate="is",
obj="fragile",
relation="contradict",
source_type="direct_measurement",
reliability=0.90,
)
self.assertGreater(after.pressure, before)
self.assertEqual(after.status, "contested")
def test_round_trip(self):
tempdir = tempfile.TemporaryDirectory()
self.addCleanup(tempdir.cleanup)
path = Path(tempdir.name) / "beliefs.json"
original = OrbitStore(path)
recorded = original.record_evidence(
subject="Orbit",
predicate="preserves",
obj="revision",
relation="support",
source_type="primary_document",
reliability=0.85,
)
loaded = OrbitStore(path)
self.assertEqual(loaded.get(recorded.id).statement, recorded.statement)
def test_high_stakes_irreversible_guardrail(self):
self.assertEqual(required_confidence("high", "low", "high"), 0.85)
result = decision_gate(0.84, "high", "low", "high")
self.assertFalse(result["permitted"])
if __name__ == "__main__":
unittest.main()
|