Cody

Problem 42710. Cleaner

Solution 1152378

Submitted on 3 Apr 2017
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
%{ ╔═══════════════════════════════════════════╗ ║ Please, play against the given problem, ║ ║ not against weaknesses of the Test Suite. ║ ║ There is no 100% efficient method to ║ ║ prevent cheating solutions, so there is ║ ║ no extra protection used. I'd be happy if ║ ║ there were no solutions with code hidden ║ ║ in strings only to decrease the "size". ║ ║ Little hacks, used in order to complete ║ ║ the task, are allowed, but please don't ║ ║ change the filename. All suggestions are ║ ║ welkome. ║ ║ Thanks & have fun. Jan ║ ╚═══════════════════════════════════════════╝ %}

2   Fail
x = 1; y_correct = 1; b = cleaner % no ";" only "b" stays alive assert(numel(who)==1)

obj = 1 b = 1

Assertion failed.

3   Pass
x = 1; y_correct = 1; b = cleaner; % cleaner not activated assert(numel(who)==3)

obj = 1

4   Pass
x = 1; y_correct = 1; z = 'hello' b = {cleaner} % cleaner wrapped in cell, no action assert(numel(who)==4)

z = 'hello' obj = 1 b = cell [1]

5   Fail
x = 1; y_correct = 1; b = cleaner; assert(isequal(who,{'b';'x';'y_correct'})) b assert(isequal(who,{'b'}))

obj = 1 b = 1

Assertion failed.

6   Fail
b1 = cleaner; b2 = cleaner; b3 = cleaner; b4 = cleaner; assert(isequal(who,{'b1';'b2';'b3';'b4'})) assert(isequal(b1,b2,b3,b4,cleaner)) b3 % clean other cleaners, only "b3" survives here assert(isequal(who,{'b3'}))

obj = 1 obj = 1 obj = 1 obj = 1 obj = 1 b3 = 1

Assertion failed.

7   Fail
x = 1; y_correct = 1; b = cleaner assert(numel(who)==1) x = 1; y = 2 assert(numel(who)==3) a = b assert(isequal(who,{'a'}))

obj = 1 b = 1

Assertion failed.

8   Fail
% cleaning other workspace (of created below function in temp.m) %{ function out = temp(in) x = 1; y = 2; assert(numel(who)==3) k = in out = who; end %} f1 = fopen('temp.m','w'); fprintf(f1,'function out=temp(in)\n x=1;\n y=2;\n assert(numel(who)==3)\n k=in\n out=who;\nend'); fclose(f1); clear; x = 1; y = 2; z = cleaner; a = temp(z) assert(isequal(who,{'a';'x';'y';'z'})) assert(isequal(a,{'k'}))

obj = 1 k = 1 a = 4×1 cell array 'in' 'k' 'x' 'y'

Assertion failed.

Suggested Problems

More from this Author41

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!