unit TestUnit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, user_types, class_values, class_param, class_model, class_point, ADVPicture, class_source; type TTestForm = class(TForm) ResultMemo: TMemo; TestGoBtn: TButton; pict: TAdvPicture; procedure FormCreate(Sender: TObject); procedure TestGoBtnClick(Sender: TObject); procedure TestRDValuesClass(); procedure TestRDModelParamClass; procedure TestRDPointClass; function print_array_to_string(local_array:TRDValues_array):string; private { Private declarations } public { Public declarations } end; var TestForm: TTestForm; implementation {$R *.dfm} procedure TTestForm.FormCreate(Sender: TObject); begin ResultMemo.Lines.Clear; end; function TTestForm.print_array_to_string(local_array: TRDValues_array):string; var I: Integer; str:string; begin for I := 1 to length(local_array) do begin str:=str+' '+floattostr(local_Array[i]); end; result:=str; end; procedure TTestForm.TestRDValuesClass(); var TestArray: TRDValues_array; AValues: TRDValues; position: integer; begin AValues:=TRDValues.Create; //Задание массива TestArray[ 1 ] := -6; TestArray[ 2 ] := 5; TestArray[ 3 ] := -6.3; TestArray[ 4 ] := 7; TestArray[ 5 ] := 0; AValues.Set_all_values(TestArray); with ResultMemo.Lines do begin Add( 'Исходный массив' + print_array_to_string(TestArray) ); Add( ' 1.1 Функция Get_Avg:' ); Add( ' Результат: '+floattostr(AValues.Get_avr)); Add( ' 1.2 Функция Set_one_value:' ); AValues.Set_one_value( 54567,1 ); Add( ' Результат: '+print_array_to_string( AValues.Get_values ) ); AValues.Set_one_value( 54567,2 ); Add( ' Результат: '+print_array_to_string( AValues.Get_values) ); AValues.Set_one_value( 54567,3 ); Add( ' Результат: '+print_array_to_string( AValues.Get_values) ); AValues.Set_one_value( 54567,4 ); Add( ' Результат: '+print_array_to_string( AValues.Get_values) ); AValues.Set_one_value( 54567,5 ); Add( ' Результат: '+print_array_to_string( AValues.Get_values) ); Add( ' 1.3 Функция Set_all_values:' ); AValues.Set_all_values( TestArray ); Add( ' Результат: '+print_array_to_string( AValues.Get_values ) ); Add( ' 1.4 Функция Sort_asc:' ); Add( ' Результат: '+print_array_to_string( AValues.Sort_asc() ) ); Add( ' Результат: '+print_array_to_string( AValues.Get_values ) ); Add( ' 1.5 Функция Sort_desc:' ); Add( ' Результат: '+print_array_to_string( AValues.Sort_desc() ) ); Add( ' Результат: '+print_array_to_string( AValues.Get_values ) ); Add( ' 1.6 Функция Get_max:' ); Add( ' Результат: '+floattostr( AValues.Get_max( position ) ) ); Add( ' Результат: '+inttostr( position ) ); Add( ' Результат: '+print_array_to_string( AValues.Get_values ) ); Add( ' 1.7 Функция Get_min:' ); Add( ' Результат: '+floattostr( AValues.Get_min( position ) ) ); Add( ' Результат: '+inttostr( position ) ); Add( ' Результат: '+print_array_to_string( AValues.Get_values) ); end; AValues.Free; end; procedure TTestForm.TestRDModelParamClass; var //RDParam_List:TRDparam_List; RDParam: TRDParam; RDModel: TRDModel; tmp:integer; str:TRDValues_array; begin with ResultMemo.Lines do begin RDParam := TRDParam.Create('param_name', 'param_desc'); RDModel := TRDModel.Create('model_name', 'model_desc'); tmp := RDParam.models.Add( RDModel ); (RDParam.models.Items[tmp] as TRDSource).src_program.Set_one_value(6,3); str:=(RDParam.models.Find_by_name('model_name') as TRDModel).sources.src_program.Get_values; add(' НОмер добавленной модели: '+inttostr(tmp)); add (' Массивчик: '+print_array_to_string(str)); end; end; procedure TTestForm.TestRDPointClass; var RDPoint_list: TRDPoint_List; RDPoint: TRDPoint; arr: TValue_UI; I: integer; begin with ResultMemo.Lines do begin Add( ' 4.1 Создание ' ); try RDPoint_list:=TRDPoint_List.Create; finally Add( ' Успешно ' ); end; Add( ' 4.2 Добавление точки ' ); try //RDPoint := RDPoint_list.Add_point('', ''); //тестирование assert RDPoint := RDPoint_list.Add_point( 'point_bane', 'descpr' ); //RDPoint := RDPoint_list.Add_point('param_bane', 'descpr'); if RDPoint = nil then showmessage( 'фигня' ); finally Add( ' Успешно ' ); end; Add( ' 4.3 Получение имени и описания параметра' ); try Add(RDPoint.Get_point_name+' '+RDPoint.Get_point_description); finally Add( ' Успешно ' ); end; Add( ' 4.4 Получение Количества точек' ); try RDPoint_list.Add_point('point_bane2', 'descpr2'); RDPoint_list.Add_point('point_bane3', 'descpr3'); RDPoint_list.Add_point('PL1_r', 'descpr4'); RDPoint_list.Add_point('point_bane5', ''); finally Add( ' Успешно. Количество точек: '+ inttostr(RDPoint_list.count)); end; Add( ' 4.5 Получение по имени' ); try RDPoint:=RDPoint_list.Get_point_by_name('PL1_r'); finally Add( ' Успешно. Имя и описание точки: ' + RDPoint.Get_point_name + ', ' + RDPoint.Get_point_description + '; Индекс: '+ inttostr( RDPoint.Get_point_index ) + '; Всего точек: ' + inttostr( RDPoint_list.count ) ); end; Add( ' 4.6 Удаление точки' ); try Add( ' Количество точек: '+ inttostr(RDPoint_list.count)); RDPoint_list.Delete_point( RDPoint_list.Get_point_by_name( 'point_bane5' ) ); finally Add( ' Успешно. Количество точек: '+ inttostr(RDPoint_list.count)); end; Add( ' 4.7 Получение изображения точки' ); try RDPoint:=RDPoint_list.Get_point_by_name('PL1_r'); add(''); with pict do begin Picture := RDPoint.image.get_image; RDPoint.image.Destroy_internal_image; end; finally Add( ' Успешно'); end; Add( ' 4.8 Раббота с током и напряжением' ); try randomize(); for I := 1 to length( arr ) do begin arr[ i ] := random( 2400 ); end; RDPoint.U_Values.Set_values( arr ); arr := RDPoint.U_Values.Get_values; finally Add( ' Успешно'); end; end; RDPoint_list.Destroy; end; procedure TTestForm.TestGoBtnClick(Sender: TObject); begin with ResultMemo.Lines do begin Add( 'Тестиование начато.' ); Add( '1. Блок №1. Тестирование класса @class_values@' ); Add( ' Пропущено' ); //TestRDValuesClass; Add( '' ); Add( '2. Блок №2. Тестирование класса @class_source@' ); Add( ' Нечего там тестировать! :)' ); Add( '3. Блок №3. Тестирование класса @class_model, class_param@' ); Add( ' Пропущено' ); TestRDModelParamClass; Add( '4. Блок №4. Тестирование класса @class_point@' ); Add( ' Пропущено' ); //TestRDPointClass; end; end; end.