Cody

# Problem 1937. Get input and output variable names

Solution 1982671

Submitted on 19 Oct 2019
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
s = 'function foo()'; inNames_correct = {}; outNames_correct = {}; [inNames, outNames] = get_variable_names(s); assert(isequal(inNames,inNames_correct)) assert(isequal(outNames,outNames_correct))

s = 'function foo()' in = 1×1 cell array {1×1 cell} out = 0×0 empty cell array inNames = 0×0 empty cell array outNames = 0×0 empty cell array

2   Pass
s = 'function a = foo(b)'; inNames_correct = {'b'}; outNames_correct = {'a'}; [inNames, outNames] = get_variable_names(s); assert(isequal(inNames,inNames_correct)) assert(isequal(outNames,outNames_correct))

s = 'function a = foo(b)' in = 1×1 cell array {1×1 cell} out = 1×1 cell array {1×1 cell} inNames = 1×1 cell array {'b'} outNames = 1×1 cell array {'a'}

3   Pass
s = 'function [myOutput] = foo(b,c)'; inNames_correct = {'b';'c'}; outNames_correct = {'myOutput'}; [inNames, outNames] = get_variable_names(s); assert(isequal(inNames,inNames_correct)) assert(isequal(outNames,outNames_correct))

s = 'function [myOutput] = foo(b,c)' in = 1×1 cell array {1×1 cell} out = 1×1 cell array {1×1 cell} inNames = 2×1 cell array {'b'} {'c'} outNames = 1×1 cell array {'myOutput'}

4   Pass
s = 'function [A,B] = foo(c,d,f)'; inNames_correct = {'c';'d';'f'}; outNames_correct = {'A';'B'}; [inNames, outNames] = get_variable_names(s); assert(isequal(inNames,inNames_correct)) assert(isequal(outNames,outNames_correct))

s = 'function [A,B] = foo(c,d,f)' in = 1×1 cell array {1×1 cell} out = 1×1 cell array {1×1 cell} inNames = 3×1 cell array {'c'} {'d'} {'f'} outNames = 2×1 cell array {'A'} {'B'}

5   Fail
s = sprintf('function %s=...\nmyfun %s...\n %s\n%% With comments[]()\nandCode = 4*[1 3 4/(1+2)];',... '[how,about , several,outputs]',... '(and , several, inputs ,',... 'split,over,lotsOf,lines)'); inNames_correct = {'and';'several';'inputs';'split';'over';'lotsOf';'lines'}; outNames_correct = {'how';'about';'several';'outputs'}; [inNames, outNames] = get_variable_names(s); assert(isequal(inNames,inNames_correct)) assert(isequal(outNames,outNames_correct))

s = 'function [how,about , several,outputs]=myfun (and , several, inputs , split,over,lotsOf,lin% With comments[andCode = 4*[1 3 4/(1+2)];' in = 0×0 empty cell array out = 1×1 cell array {1×1 cell}

Index exceeds the number of array elements (0). Error in get_variable_names (line 8) if ~isequal(in{1}{1},'') Error in Test5 (line 8) [inNames, outNames] = get_variable_names(s);