matlab.unittest.parameters.Parameter.fromData

Класс: параметр
Пакет: matlab.unittest.parameters

Создайте параметры из данных

Описание

пример

param = matlab.unittest.parameters.Parameter.fromData(prop,nameVal) создает массив Parameter образцы, где prop определяет имя свойства параметризации для всех Parameter элементы и nameVal определяет имя и значение для каждого Parameter элемент.

Использование fromData аналогично определению параметров в основанном на классах тесте с использованием properties блок. Для примера:

properties (TestParameter)
    prop = nameVal
end
Однако с fromData можно переопределить существующие тестовые параметры вне тестового класса.

Используйте fromData метод для переопределения параметров, определенных в TestParameter, MethodSetupParameter, или ClassSetupParameter properties блок параметризованного теста.

пример

param = matlab.unittest.parameters.Parameter.fromData(prop1,nameVal1,...,propN,nameValN) определяет Parameter Образцы с несколькими параметризационными именами свойства.

Входные параметры

расширить все

Имя свойства параметризации, заданное как вектор символов или строка.

Пример: 'myParam'

Имя и значение параметра, заданные как непустой массив ячеек или struct.

Если nameVal является struct, структурное поле представляет имя параметра, а структурное значение представляет значение параметров. Если nameVal является массивом ячеек, каждый элемент представляет значению параметров.

Если nameVal является массивом ячеек из векторов символов, имена параметров генерируются из значений. В противном случае MATLAB® генерирует имена параметров.

Пример: struct('small', 1, 'medium', 10, 'large', 100)

Пример: {42,7,13}

Пример: {'double','single','uint16'}

Примеры

расширить все

В рабочей папке создайте testZeros.m. Этот класс содержит пять методов тестирования, что приводит к одиннадцати параметризованным тестам.

classdef testZeros < matlab.unittest.TestCase
    properties (TestParameter)
        type = {'single','double','uint16'};
        outSize = struct('s2d',[3 3], 's3d',[2 5 4]);
    end
    
    methods (Test)
        function testClass(testCase, type, outSize)
            testCase.verifyClass(zeros(outSize,type), type);
        end
        
        function testSize(testCase, outSize)
            testCase.verifySize(zeros(outSize), outSize);
        end
        
        function testDefaultClass(testCase)
            testCase.verifyClass(zeros, 'double');
        end
        function testDefaultSize(testCase)
            testCase.verifySize(zeros, [1 1]);
        end
        
        function testDefaultValue(testCase)
            testCase.verifyEqual(zeros,0);
        end
    end
end

Переопределите type параметр так, чтобы тест использовал uint64 и int64 типы данных в параметризации вместо single, double, и uint16. Создайте параметры.

import matlab.unittest.parameters.Parameter
newType = {'int64','uint64'};
param = Parameter.fromData('type',newType);

Создайте тестовый набор, который вводит param параметры. Просмотрите имена тестов в наборе. Закачанные параметры обозначены #ext.

import matlab.unittest.TestSuite
suite = TestSuite.fromClass(?testZeros,'ExternalParameters',param);
{suite.Name}'
ans =

  9×1 cell array

    {'testZeros/testClass(type=int64#ext,outSize=s2d)' }
    {'testZeros/testClass(type=int64#ext,outSize=s3d)' }
    {'testZeros/testClass(type=uint64#ext,outSize=s2d)'}
    {'testZeros/testClass(type=uint64#ext,outSize=s3d)'}
    {'testZeros/testSize(outSize=s2d)'                 }
    {'testZeros/testSize(outSize=s3d)'                 }
    {'testZeros/testDefaultClass'                      }
    {'testZeros/testDefaultSize'                       }
    {'testZeros/testDefaultValue'                      }

Запустите набор.

results = suite.run;
Running testZeros
.........
Done testZeros
__________

Переопределите outSize параметр так, чтобы тест параметризовался для 1-d и 4-d массивов. Создайте параметры из newType и newSize.

newSize = struct('s2d',[5 3],'s4d',[2 3 2 4]);
param = Parameter.fromData('type',newType,'outSize',newSize);

Создайте тестовый набор, который вводит param параметры. Просмотрите имена тестов в наборе. Закачанные параметры обозначены #ext.

import matlab.unittest.TestSuite
suite = TestSuite.fromClass(?testZeros,'ExternalParameters',param);
{suite.Name}'
ans =

  9×1 cell array

    {'testZeros/testClass(type=int64#ext,outSize=s2d#ext)' }
    {'testZeros/testClass(type=int64#ext,outSize=s4d#ext)' }
    {'testZeros/testClass(type=uint64#ext,outSize=s2d#ext)'}
    {'testZeros/testClass(type=uint64#ext,outSize=s4d#ext)'}
    {'testZeros/testSize(outSize=s2d#ext)'                 }
    {'testZeros/testSize(outSize=s4d#ext)'                 }
    {'testZeros/testDefaultClass'                          }
    {'testZeros/testDefaultSize'                           }
    {'testZeros/testDefaultValue'                          }

Запустите набор.

results = suite.run;
Running testZeros
.........
Done testZeros
__________

Введенный в R2018b
Для просмотра документации необходимо авторизоваться на сайте