Path: blob/devel/elmergrid/src/metis-5.1.0/GKlib/test/gksort.c
3206 views
/*!1\file gksort.c2\brief Testing module for the various sorting routines in GKlib34\date Started 4/4/20075\author George6\version\verbatim $Id: gksort.c 11058 2011-11-10 00:02:50Z karypis $ \endverbatim7*/89#include <GKlib.h>1011#define N 100001213/*************************************************************************/14/*! Testing module for gk_?isort() routine */15/*************************************************************************/16void test_isort()17{18gk_idx_t i;19int array[N];2021/* test the increasing sort */22printf("Testing iisort...\n");23for (i=0; i<N; i++)24array[i] = RandomInRange(123432);2526gk_isorti(N, array);2728for (i=0; i<N-1; i++) {29if (array[i] > array[i+1])30printf("gk_isorti error at index %jd [%d %d]\n", (intmax_t)i, array[i], array[i+1]);31}323334/* test the decreasing sort */35printf("Testing disort...\n");36for (i=0; i<N; i++)37array[i] = RandomInRange(123432);3839gk_isortd(N, array);4041for (i=0; i<N-1; i++) {42if (array[i] < array[i+1])43printf("gk_isortd error at index %jd [%d %d]\n", (intmax_t)i, array[i], array[i+1]);44}4546}474849/*************************************************************************/50/*! Testing module for gk_?fsort() routine */51/*************************************************************************/52void test_fsort()53{54gk_idx_t i;55float array[N];5657/* test the increasing sort */58printf("Testing ifsort...\n");59for (i=0; i<N; i++)60array[i] = RandomInRange(123432)/(1.0+RandomInRange(645323));6162gk_fsorti(N, array);6364for (i=0; i<N-1; i++) {65if (array[i] > array[i+1])66printf("gk_fsorti error at index %jd [%f %f]\n", (intmax_t)i, array[i], array[i+1]);67}686970/* test the decreasing sort */71printf("Testing dfsort...\n");72for (i=0; i<N; i++)73array[i] = RandomInRange(123432)/(1.0+RandomInRange(645323));7475gk_fsortd(N, array);7677for (i=0; i<N-1; i++) {78if (array[i] < array[i+1])79printf("gk_fsortd error at index %jd [%f %f]\n", (intmax_t)i, array[i], array[i+1]);80}8182}838485/*************************************************************************/86/*! Testing module for gk_?idxsort() routine */87/*************************************************************************/88void test_idxsort()89{90gk_idx_t i;91gk_idx_t array[N];9293/* test the increasing sort */94printf("Testing idxsorti...\n");95for (i=0; i<N; i++)96array[i] = RandomInRange(123432);9798gk_idxsorti(N, array);99100for (i=0; i<N-1; i++) {101if (array[i] > array[i+1])102printf("gk_idxsorti error at index %zd [%zd %zd]\n", (ssize_t)i, (ssize_t)array[i], (ssize_t)array[i+1]);103}104105106/* test the decreasing sort */107printf("Testing idxsortd...\n");108for (i=0; i<N; i++)109array[i] = RandomInRange(123432);110111gk_idxsortd(N, array);112113for (i=0; i<N-1; i++) {114if (array[i] < array[i+1])115printf("gk_idxsortd error at index %zd [%zd %zd]\n", (ssize_t)i, (ssize_t)array[i], (ssize_t)array[i+1]);116}117118}119120121122/*************************************************************************/123/*! Testing module for gk_?ikvsort() routine */124/*************************************************************************/125void test_ikvsort()126{127gk_idx_t i;128gk_ikv_t array[N];129130/* test the increasing sort */131printf("Testing ikvsorti...\n");132for (i=0; i<N; i++) {133array[i].key = RandomInRange(123432);134array[i].val = i;135}136137gk_ikvsorti(N, array);138139for (i=0; i<N-1; i++) {140if (array[i].key > array[i+1].key)141printf("gk_ikvsorti error at index %jd [%d %d] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);142}143144145/* test the decreasing sort */146printf("Testing ikvsortd...\n");147for (i=0; i<N; i++) {148array[i].key = RandomInRange(123432);149array[i].val = i;150}151152gk_ikvsortd(N, array);153154for (i=0; i<N-1; i++) {155if (array[i].key < array[i+1].key)156printf("gk_ikvsortd error at index %jd [%d %d] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);157}158159}160161162163/*************************************************************************/164/*! Testing module for gk_?fkvsort() routine */165/*************************************************************************/166void test_fkvsort()167{168gk_idx_t i;169gk_fkv_t array[N];170171/* test the increasing sort */172printf("Testing fkvsorti...\n");173for (i=0; i<N; i++) {174array[i].key = RandomInRange(123432)/(1.0+RandomInRange(645323));175array[i].val = i;176}177178gk_fkvsorti(N, array);179180for (i=0; i<N-1; i++) {181if (array[i].key > array[i+1].key)182printf("gk_fkvsorti error at index %jd [%f %f] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);183}184185186/* test the decreasing sort */187printf("Testing fkvsortd...\n");188for (i=0; i<N; i++) {189array[i].key = RandomInRange(123432)/(1.0+RandomInRange(645323));190array[i].val = i;191}192193gk_fkvsortd(N, array);194195for (i=0; i<N-1; i++) {196if (array[i].key < array[i+1].key)197printf("gk_fkvsortd error at index %jd [%f %f] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);198}199200}201202203/*************************************************************************/204/*! Testing module for gk_?dkvsort() routine */205/*************************************************************************/206void test_dkvsort()207{208gk_idx_t i;209gk_dkv_t array[N];210211/* test the increasing sort */212printf("Testing dkvsorti...\n");213for (i=0; i<N; i++) {214array[i].key = RandomInRange(123432)/(1.0+RandomInRange(645323));215array[i].val = i;216}217218gk_dkvsorti(N, array);219220for (i=0; i<N-1; i++) {221if (array[i].key > array[i+1].key)222printf("gk_dkvsorti error at index %jd [%lf %lf] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);223}224225226/* test the decreasing sort */227printf("Testing dkvsortd...\n");228for (i=0; i<N; i++) {229array[i].key = RandomInRange(123432)/(1.0+RandomInRange(645323));230array[i].val = i;231}232233gk_dkvsortd(N, array);234235for (i=0; i<N-1; i++) {236if (array[i].key < array[i+1].key)237printf("gk_dkvsortd error at index %jd [%lf %lf] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);238}239240}241242243/*************************************************************************/244/*! Testing module for gk_?skvsort() routine */245/*************************************************************************/246void test_skvsort()247{248gk_idx_t i;249gk_skv_t array[N];250char line[256];251252/* test the increasing sort */253printf("Testing skvsorti...\n");254for (i=0; i<N; i++) {255sprintf(line, "%d", RandomInRange(123432));256array[i].key = gk_strdup(line);257array[i].val = i;258}259260gk_skvsorti(N, array);261262for (i=0; i<N-1; i++) {263if (strcmp(array[i].key, array[i+1].key) > 0)264printf("gk_skvsorti error at index %jd [%s %s] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);265}266267268/* test the decreasing sort */269printf("Testing skvsortd...\n");270for (i=0; i<N; i++) {271sprintf(line, "%d", RandomInRange(123432));272array[i].key = gk_strdup(line);273array[i].val = i;274}275276gk_skvsortd(N, array);277278for (i=0; i<N-1; i++) {279/*printf("%s\n", array[i].key);*/280if (strcmp(array[i].key, array[i+1].key) < 0)281printf("gk_skvsortd error at index %jd [%s %s] [%jd %jd]\n", (intmax_t)i, array[i].key, array[i+1].key, (intmax_t)array[i].val, (intmax_t)array[i+1].val);282}283284}285286287/*************************************************************************/288/*! Testing module for gk_?idxkvsort() routine */289/*************************************************************************/290void test_idxkvsort()291{292gk_idx_t i;293gk_idxkv_t array[N];294295/* test the increasing sort */296printf("Testing idxkvsorti...\n");297for (i=0; i<N; i++) {298array[i].key = RandomInRange(123432);299array[i].val = i;300}301302gk_idxkvsorti(N, array);303304for (i=0; i<N-1; i++) {305if (array[i].key > array[i+1].key)306printf("gk_idxkvsorti error at index %zd [%zd %zd] [%zd %zd]\n",307(ssize_t)i, (ssize_t)array[i].key, (ssize_t)array[i+1].key,308(ssize_t)array[i].val, (ssize_t)array[i+1].val);309}310311312/* test the decreasing sort */313printf("Testing idxkvsortd...\n");314for (i=0; i<N; i++) {315array[i].key = RandomInRange(123432);316array[i].val = i;317}318319gk_idxkvsortd(N, array);320321for (i=0; i<N-1; i++) {322if (array[i].key < array[i+1].key)323printf("gk_idxkvsortd error at index %zd [%zd %zd] [%zd %zd]\n",324(ssize_t)i, (ssize_t)array[i].key, (ssize_t)array[i+1].key,325(ssize_t)array[i].val, (ssize_t)array[i+1].val);326}327328}329330331332333int main()334{335test_isort();336test_fsort();337test_idxsort();338339test_ikvsort();340test_fkvsort();341test_dkvsort();342test_skvsort();343test_idxkvsort();344}345346347348