clarkkitchen22's picture
Initial GeoBot Forecasting Framework commit
484e3bc
"""
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)