Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:49:18

0001 /**
0002 
0003   ~/o/sysrap/tests/slist_test.sh 
0004 
0005 **/
0006 
0007 
0008 #include "ssys.h"
0009 #include "slist.h"
0010 
0011 struct slist_test
0012 {
0013     static int FindIndices(); 
0014     static int FindIndex(); 
0015     static int FindIndex_0(); 
0016     static int FindIndex_1(); 
0017     static int Contains(); 
0018     static int Main(); 
0019 };
0020 
0021 inline int slist_test::FindIndices()
0022 {
0023     std::cerr << "slist_test::FindIndices\n" ; 
0024     std::vector<int> idx_red ; 
0025     std::vector<std::string> name = {{ "red", "green" , "blue", "red", "redgreen", "redblue" }} ; 
0026     slist::FindIndices(idx_red, name, "red" ); 
0027     assert( idx_red.size() == 2 && idx_red[0] == 0 && idx_red[1] == 3 ); 
0028     return 0 ; 
0029 }
0030 
0031 inline int slist_test::FindIndex()
0032 {
0033     std::cerr << "slist_test::FindIndex\n" ; 
0034     int rc = 0 ; 
0035     rc += FindIndex_0(); 
0036     rc += FindIndex_1(); 
0037     return rc ; 
0038 }
0039 
0040 inline int slist_test::FindIndex_0()
0041 {
0042     std::cerr << "slist_test::FindIndex_0\n" ; 
0043     std::vector<std::string> name = {{ "red", "green" , "blue", "red", "redgreen", "redblue" }} ; 
0044     int idx = slist::FindIndex(name, "red" ); 
0045     assert( idx == -1 ); 
0046     return 0 ; 
0047 }
0048 
0049 inline int slist_test::FindIndex_1()
0050 {
0051     std::cerr << "slist_test::FindIndex_1\n" ; 
0052     std::vector<std::string> name = {{ "red", "green" , "blue", "red", "redgreen", "redblue" }} ; 
0053     int idx = slist::FindIndex(name, "green" ); 
0054     assert( idx == 1 ); 
0055     return 0 ; 
0056 }
0057 
0058 inline int slist_test::Contains()
0059 {
0060     std::cerr << "slist_test::Contains\n" ; 
0061     std::vector<int> idx = {100, 200, 300} ; 
0062     bool q_101 = slist::Contains(idx, 101 ); 
0063     assert( q_101 == false );
0064 
0065     bool q_100 = slist::Contains(idx, 100 ); 
0066     assert( q_100 == true );
0067 
0068     return 0 ; 
0069 }
0070 
0071 
0072 
0073 inline int slist_test::Main()
0074 {
0075     const char* TEST = ssys::getenvvar("TEST", "ALL" ); 
0076     bool ALL = strcmp(TEST, "ALL") == 0 ; 
0077 
0078     int rc = 0 ; 
0079     if(ALL || strcmp(TEST, "FindIndex")   == 0 ) rc += FindIndex(); 
0080     if(ALL || strcmp(TEST, "FindIndices") == 0 ) rc += FindIndices(); 
0081     if(ALL || strcmp(TEST, "Contains")    == 0 ) rc += Contains(); 
0082     return rc ; 
0083 }
0084 
0085 int main()
0086 {
0087     return slist_test::Main() ; 
0088 }