function t = test_is_int()
% See: http://stackoverflow.com/a/6916862/97160
% create a vector of doubles, containing integers and non-integers
x = (1:1e5)';
idx = ( rand(size(x)) < 0.5 );
x(idx) = x(idx) + rand(sum(idx(:)),1);
% create functions to test
funcs = {@func1; @func2; @func3; @func4};
% timeit and store results
t = zeros(size(funcs));
v = cell(size(funcs));
for i=1:numel(funcs)
f = @() funcs{i}(x);
t(i) = timeit(f);
v{i} = feval(f);
end
assert( isequal(v{:}) )
end
function v = func1(x)
v = ~mod(x,1);
end
function v = func2(x)
v = x==double(uint64(x));
end
function v = func3(x)
v = x==floor(x);
end
function v = func4(x)
v = x==round(x);
end