Skip to content
Snippets Groups Projects
test_CreateNewBiPartHyperGraph.c 1.99 KiB
Newer Older
  • Learn to ignore specific revisions
  • #include "Graph.h"
    
    struct opts Options;
    
    int main(int argc, char **argv) {
    
        struct biparthypergraph HG;
    
        long t, NrVertices, NrNets, NrPins;
    
        printf("Test CreateNewBiPartHyperGraph: ");
        NrVertices = 17;
        NrNets = 95;
        NrPins = 200;
    
        if (!CreateNewBiPartHyperGraph(NrVertices, NrNets, NrPins, TRUE , 'C', &HG)) {
            printf("Error\n");
            exit(1);
        }
    
        /* Check result value  */
        if (HG.NrVertices != NrVertices ||
            HG.NrNets != NrNets ||       
            HG.NrPins != NrPins ||
            HG.CurComm != 0 ||
            HG.MinComm != 0 ||
            HG.OptComm != 0 ||
            HG.SplitDir != ROW ||
            HG.CurVtxLog != 0 ||
            HG.MinVtxLog != 0 ||
            HG.WeightP[0] != 0 ||
            HG.WeightP[1] != 0 ||
            HG.GBVtx[0].NrBuckets != 0 ||
            HG.GBVtx[1].NrBuckets != 0 ||
            HG.GBVtx[0].Root != NULL ||
            HG.GBVtx[1].Root != NULL ) {
    
            printf("Error\n");
            exit(1);
        }
    
        /* Check vertex values */
        for (t=0; t<NrVertices; t++){
            if (HG.V[t].vtxwgt != 0 ||
                HG.V[t].iStart != 0 ||
                HG.V[t].iEnd != 0 ||
                HG.V[t].partition != 0 ||
                HG.V[t].GBentry != NULL ||
                HG.Vtx2MatIndex[t] != 0 ||
                HG.OptPartVtx[t] != 0) {
    
                printf("Error\n");
                exit(1);
            }
        }
    
        /* Check net values */
        for (t=0; t<NrNets; t++){
            if (HG.N[t].netwgt != 0 ||
                HG.N[t].iStartP0 != 0 ||
                HG.N[t].iStartP1 != 0 ||
                HG.N[t].iEnd != 0 || 
                HG.N[t].dir != ROW || 
                HG.Net2MatIndex[t] != 0) {
     
                printf("Error\n");
                exit(1); 
            }
        }    
    
        /* Check pin values */ 
        for (t=0; t<NrPins; t++){
            if (HG.VtxAdjncy[t] != 0 || 
                HG.NetAdjncy[t] != 0 || 
                HG.MatReValue[t] != 0.0 || 
                HG.MatImValue[t] != 0.0) {
     
                printf("Error\n");
                exit(1);
            }
        }    
    
        printf("OK\n");
        exit(0);
    
    } /* end main */