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 uses IzmUnit; {$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; tmp:integer; str:TRDValues_array; begin with ResultMemo.Lines do begin RDParam := TRDParam.Create('param_name', 'param_desc'); tmp := RDParam.models.Add( TRDModel.Create('model_name', 'model_desc') ); (RDParam.models.Items[tmp] as TRDModel).sources.src_program.Set_one_value(6,3); str:=(RDParam.models.Find_by_name('model_name') as TRDModel).sources.src_program.Get_values; (RDParam.models.Find_by_name('model_name') as TRDModel).Destroy; RDParam.Free; add(' Номер добавленной модели: '+inttostr(tmp)); add (' Массивчик: '+print_array_to_string(str)); end; end; procedure TTestForm.TestRDPointClass; var RDPoint: TRDPoint; arr: TValue_UI; I: integer; begin with ResultMemo.Lines do begin Add( ' 4.1 Добавление точки ' ); try //RDPoint := TRDPoint.Create('', ''); //тестирование assert RDPoint := TRDPoint.Create( 'PL1_r', 'descpr' ); finally Add( ' Успешно ' ); end; Add( ' 4.2 Получение имени и описания параметра' ); try Add(RDPoint.Get_name+' '+RDPoint.Get_description); finally Add( ' Успешно ' ); end; Add( ' 4.3 Получение изображения точки' ); try with pict do begin Picture := RDPoint.image.get_image; RDPoint.image.Destroy_internal_image; end; finally Add( ' Успешно'); end; Add( ' 4.4 Работа с током и напряжением' ); 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; RDPoint.Params.Add( TRDParam.Create('R','Сопротивление')); RDPoint.Params.Find_by_name('R').models.Add(TRDModel.Create('model','desc')); RDPoint.Params.Find_by_name('R').models.Find_by_name('model').sources.src_program.Get_avr; end; 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; IzmForm.Show; end; end.