image thumbnail
from sldvmisscovtool by Yasumitsu Ito
A GUI tool to obtain test cases for missing coverage objectives

importsldvDatafile.m
function [simdata,testcasename] = importsldvDatafile(Mode)
% sldvData import function for sldvmisscovtool

%   Copyright 2010-2011 The MathWorks, Inc. 

switch Mode
    case 'description'
        if any(strcmp(get(0,'lang'),{'ja_jp.shift_jis','japanese','ja_jp'}))
            simdata = 'sldvDatat@C';
            testcasename = ['[C|[g]' 10 ...
                'C|[g{^NbNɂAsldvDatat@CIAeXgP[XC|[g܂B'];
        else
            simdata = 'From sldvData';
            testcasename = ['[Import]' 10 ...
                'Import testcases from sldvData.'];
        end
    case 'import'
        if any(strcmp(get(0,'lang'),{'ja_jp.shift_jis','japanese','ja_jp'}))
            warndlgstr = 'w肳ꂽMATt@CSLDṼf[^`ł͂܂';
            cancelstr='LZ܂';
        else
            warndlgstr = 'Selected MAT file is not created by SLDV';
            cancelstr='Canceled';
        end
        [flname,dirname]=uigetfile('*.mat');
        if flname==0
            simdata=[];
            testcasename=cancelstr;
            return;
        end
        load(fullfile(dirname,flname));
        if ~exist('sldvData','var')
            simdata = [];
            testcasename = warndlgstr;
            return;
        end
        simdata = sldvsimdata2(fullfile(dirname,flname));
        for n=1:length(simdata)
            testcasename{n} = 'TestCase%03d';
        end
    otherwise
        simdata = '';
end

%% sldvsimdata2
function out = sldvsimdata2(filename)
% This is a modified version of sldvsimdata.
% sldvsimdata is not suitable for simplot becase of lacking of label
% property.

rawtc = load(filename);
out = [];
numTestCases = length(rawtc.sldvData.TestCases);

if numTestCases >0
    for idx=1:numTestCases
        out(idx).time = rawtc.sldvData.TestCases(idx).timeValues'; %#ok<AGROW>
        numInports = length(rawtc.sldvData.TestCases(idx).dataValues);
        for i=1:numInports
            if isfield(rawtc.sldvData.TestCases(idx),'portDimensions')
                inportDim = rawtc.sldvData.TestCases(idx).portDimensions{i};
            else % R08b
                inportDim = size(rawtc.sldvData.TestCases(idx).dataValues{i},1);
            end
            data = rawtc.sldvData.TestCases(idx).dataValues{i};
            if numel(inportDim) > 1
                rows=inportDim(1);
                cols=inportDim(2);
                data = reshape(data, rows, cols, size(data,2));
            else
                data = data';
            end

            data(isnan(data)) = 0;
            out(idx).signals(i).values = data; %#ok<AGROW> % changed to column based.
            if isfield(rawtc.sldvData.TestCases(idx),'signalLabels')
                out(idx).signals(i).label = rawtc.sldvData.TestCases(idx).signalLabels{i}; %#ok<AGROW>
            else % R08b
                out(idx).signals(i).label = rawtc.sldvData.AnalysisInformation.InputPortInfo{i}.SignalLabels;
            end
            out(idx).signals(i).dimensions = inportDim; %#ok<AGROW>
        end
    end
end

Contact us at files@mathworks.com