Skip to content

ValidateGraph

Description

Validate whether a given Graph object is valid. Aborts if provided graph is uninitialized or corrupted.

Parameters

Name Direction Description
g in Pointer to Graph object to validate.

Success

Continue execution, meaning given graph is most probably valid.

Failure

abort

Usage example (Cross-references)

Usage examples (Cross-references)
        }
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, node.__id);
        return node;
    
    void deinit_graph(GenericGraph *graph, size item_size) {
        ValidateGraph(graph);
    
        clear_graph(graph, item_size);
        u64 slot_index;
    
        ValidateGraph(graph);
    
        for (slot_index = 0; slot_index < graph->slots.length; slot_index++) {
        (void)item_size;
    
        ValidateGraph(graph);
        old_capacity = graph->slots.capacity;
        }
    
        ValidateGraph(graph);
    
        if (graph->free_indices.length) {
        }
    
        ValidateGraph(graph);
    
        index      = GraphNodeIdIndex(node_id);
        GraphNode node;
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, node_id);
        GraphNeighbors *neighbors;
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, from);
        neighbors = graph_out_neighbors_ptr(graph, from);
        GraphNeighbors *neighbors;
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, to);
        neighbors = graph_in_neighbors_ptr(graph, to);
        GraphNeighbors *neighbors;
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, from);
        graph_validate_node_id(graph, to);
        GraphNeighbors *in_neighbors;
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, from);
        graph_validate_node_id(graph, to);
        GraphPendingEdgeRemoval pending;
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, from);
        graph_validate_node_id(graph, to);
    
    bool graph_edge_marked_for_removal(GenericGraph *graph, GraphNodeId from, GraphNodeId to) {
        ValidateGraph(graph);
        graph_validate_node_id(graph, from);
        graph_validate_node_id(graph, to);
        size idx;
    
        ValidateGraph(graph);
        graph_validate_node_id(graph, from);
        graph_validate_node_id(graph, to);
        u64 explicit_edge_removal_count;
    
        ValidateGraph(graph);
    
        if (!graph->pending_delete_count && !graph->pending_edge_removals.length) {
        GenericGraphNodeIter iter;
    
        ValidateGraph(graph);
    
        iter.graph                   = graph;
        }
    
        ValidateGraph(iter->graph);
        if (iter->expected_mutation_epoch != iter->graph->mutation_epoch) {
            LOG_FATAL("graph structure changed during node iteration");
        }
    
        ValidateGraph(iter->graph);
        if (iter->expected_mutation_epoch != iter->graph->mutation_epoch) {
            LOG_FATAL("graph structure changed during neighbor iteration");
        }
    
        ValidateGraph(iter->graph);
        if (iter->expected_mutation_epoch != iter->graph->mutation_epoch) {
            LOG_FATAL("graph structure changed during predecessor iteration");
    
        GraphReserve(&graph, 8);
        ValidateGraph(&graph);
    
        bool        result           = graph.slots.capacity >= 8;
        IntGraph graph = GraphInit();
    
        ValidateGraph(&graph);
    
        bool result = GraphNodeCount(&graph) == 0 && GraphEdgeCount(&graph) == 0 && GraphEmpty(&graph) &&
        GraphAddEdge(&graph, c, a);
    
        ValidateGraph(&graph);
    
        node_b = GraphGetNode(&graph, b);
    #define GraphForeachNode(g, node)                                                                                      \
        for (TYPE_OF(g) UNPL(pg) = (g); UNPL(pg); UNPL(pg) = NULL)                                                         \
            if ((ValidateGraph(UNPL(pg)), 1) && GraphNodeCount(UNPL(pg)) > 0)                                              \
                for (GenericGraphNodeIter UNPL(iter) = graph_node_iter_begin(GENERIC_GRAPH(UNPL(pg))); UNPL(iter).graph;  \
                     UNPL(iter).graph = NULL)                                                                              \
Last updated on