//+------------------------------------------------------------------+ //| TestArrayList.mq5 | //| Copyright 2000-2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #include #include //+------------------------------------------------------------------+ //| TestAddRange_AsArrayList. | //+------------------------------------------------------------------+ bool TestAddRange_AsArrayList(const int count,const int add_length) { //--- create source list CArrayListlist_test(count); for(int i=0; ilist_clone(GetPointer(list_test)); //--- crete added list CArrayListlist_added(add_length); for(int i=0; ilist_test(count); for(int i=0; ilist_clone(GetPointer(list_test)); //--- crete added array int array_added[]; ArrayResize(array_added,add_length); for(int i=0; ilist_test(count); for(int i=0; ilist_clone(GetPointer(list_test)); //--- crete added collection ICollection*null=NULL; //--- add range list_test.AddRange(null); //--- check first path for(int i=0; ilist_test(count); for(int i=0; iset(); for(int i=0; ilist_test(GetPointer(set)); //--- sort list list_test.Sort(); //--- find all elements for(int i=0; ilist_test(count); for(int i=0; ilist_test(count); for(int i=0; i=0) return(false); if(list_test.LastIndexOf(value)>=0) return(false); //--- successful return(true); } //+------------------------------------------------------------------+ //| TestIndexOf_OrderIsCorrect. | //+------------------------------------------------------------------+ bool TestIndexOf_OrderIsCorrect(const int count) { //--- create source list CArrayListlist_test(count); for(int i=0; ilist_clone(GetPointer(list_test)); //--- add duplicates list_test.AddRange(GetPointer(list_test)); list_test.AddRange(GetPointer(list_test)); list_test.AddRange(GetPointer(list_test)); //--- find values for(int i=0; ilist_test(count); for(int i=0; ilist_test(count); for(int i=0; ilist_test(count); for(int i=0; ilist_clone(GetPointer(list_test)); //--- create random array int element=MathRand(); //--- insert int index=count/2; for(int i=0; ilist_x(count); for(int i=0; ilist_y(count); for(int i=0; ilist(GetPointer(list_y)); list.InsertRange(index,GetPointer(list)); //--- check elements for(int i=0; ilist_new_x(array_x); //--- insert array list_new_x.InsertRange(index,array_y); //--- check elements for(int i=0; ilist_test(array); //--- check elements for(int i=0; ilist_test(array); list_test.Sort(); //--- remove elements for(int i=0; i0) return(false); //--- successful return(true); } //+------------------------------------------------------------------+ //| TestMisc_Clear. | //+------------------------------------------------------------------+ bool TestMisc_Clear(const int count) { //--- create source list CArrayListlist_test(count); //--- check if(list_test.Count()!=0) return(false); if(list_test.Capacity()!=count) return(false); //--- fill list for(int i=0; ilist_test(count); for(int i=0; ilist_clone(GetPointer(list_test)); //--- create paremeters int values[9][2]= { {3, 3}, {0, 10}, {10, 0}, {5, 5}, {0, 5}, {1, 9}, {9, 1}, {2, 8}, {8, 2} }; //--- remove range for(int j=0; j<9; j++) { CArrayListlist_actual(GetPointer(list_test)); int rindex = values[j][0]; int rcount = values[j][1]; if(!list_actual.RemoveRange(rindex,rcount)) return(false); if(list_actual.Count()!=count-rcount) return(false); for(int i=0; ilist_test(count); for(int i=0; ilist_test(count); for(int i=0; ilist_clone(GetPointer(list_test)); //--- create paremeters int values[9][2]= { {3, 3}, {0, 10}, {10, 0}, {5, 5}, {0, 5}, {1, 9}, {9, 1}, {2, 8}, {8, 2} }; //--- reverse list for(int j=0; j<9; j++) { int rindex = values[j][0]; int rcount = values[j][1]; CArrayListlist_actual(GetPointer(list_test)); list_actual.Reverse(rindex,rcount); for(int i=0; ilist_test(count); for(int i=0; ilist_test(count); for(int i=0; icomaprer; //--- sort list list_test.Sort(); //--- check for(int i=0; i0) return(false); } //--- successful return(true); } //+------------------------------------------------------------------+ //| TestSort_Invalid. | //+------------------------------------------------------------------+ bool TestSort_Invalid(const int count) { //--- create source list CArrayListlist_test(count); for(int i=0; i