File size: 917 Bytes
484e3bc |
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 |
"""
Data validation utilities
"""
from typing import Any
from ..core.scenario import Scenario
from ..models.causal_graph import CausalGraph
def validate_scenario(scenario: Scenario) -> bool:
"""
Validate scenario structure.
Parameters
----------
scenario : Scenario
Scenario to validate
Returns
-------
bool
True if valid
"""
if not scenario.name:
return False
if not scenario.features:
return False
if scenario.probability < 0 or scenario.probability > 1:
return False
return True
def validate_causal_graph(graph: CausalGraph) -> bool:
"""
Validate causal graph structure.
Parameters
----------
graph : CausalGraph
Graph to validate
Returns
-------
bool
True if valid (is DAG)
"""
import networkx as nx
return nx.is_directed_acyclic_graph(graph.graph)
|