LINUX.ORG.RU

Octave Code Sprint #2


0

1

Завтра вечером около 17:00 по МСК в IRC канале #octave фриноды (irc.freenode.net) пройдёт второй код-спринт для Octave.

Подробный анонс на opennet.ru

Кто хочет поучаствовать и помочь проекту Octave стать лучше — милости прошу в тред, задавайте вопросы, а завтра присоединяйтесь к участию.

От участников код-спринта требуется всего лишь знание языка Octave и базовых встроенных функций Octave.

Цель проведения код-спринта — снабжение функций Octave тестами. Это несложно.

★★★

Последнее исправление: adriano32 (всего исправлений: 3)

Ну? где вы, Столмановцы? Помочь проекту GNU дело правое!

Кстати всех участников код-спринта, приславших патчи, добавят в список разработчиков, наряду с создателем Octave John W. Eaton и самим RMS, да-да. Сильно повышает ЧСВ, проверено лично :)

adriano32 ★★★
() автор топика
Ответ на: комментарий от amaora

Да, конечно, в исходниках.

hg clone http://hg.savannah.gnu.org/hgweb/octave/

Например, то что я писал :

./octave/scripts/signal/sinewave.m

%!assert (sinewave (1), 0);
%!assert (sinewave (1, 4, 1), 1);
%!assert (sinewave (1, 12, 1), 1/2, 1e-6);
%!assert (sinewave (1, 12, 2), sqrt (3)/2, 1e-6);
%!assert (sinewave (1, 20, 1), (sqrt (5)-1)/4, 1e-6);
%!assert (sinewave (1), sinewave (1, 1,0));
%!assert (sinewave (3, 4), sinewave(3, 4, 0));

%!error sinewave ();

./octave/scripts/signal/autoreg_matrix.m

%!test
%! K=4;
%! A = zeros(1,K+1);
%! A(1) = 1;
%! B = eye(K+1);
%! B(:,1) = 1;
%! assert (autoreg_matrix(A,K),B);

%!error autoreg_matrix()
%!error autoreg_matrix(1)
%!error autoreg_matrix(ones(4,1),5)

./octave/scripts/signal/unwrap.m

%!test
%! A = [pi*(-4); pi*(2+1/3); pi*(16+1)];
%! B = [pi*(-2+1/6); pi*(4+1/2); pi*(32+3/2)];
%! C = [pi/4; pi*(8+2/3); pi*64];
%! D = [pi*(-2+1/6); pi*(2+1/3); pi*(8+2/3)];
%! E(:, :, 1) = [A, B, C, D];
%! E(:, :, 2) = [A+B, B+C, C+D, D+A];
%! F(:, :, 1) = [unwrap(A), unwrap(B), unwrap(C), unwrap(D)];
%! F(:, :, 2) = [unwrap(A+B), unwrap(B+C), unwrap(C+D), unwrap(D+A)];
%! assert (unwrap(E), F);
%!
%!test
%! A = [0, 2*pi, 4*pi, 8*pi, 16*pi, 65536*pi];
%! B = [pi*(-2+1/6), pi/4, pi*(2+1/3), pi*(4+1/2), pi*(8+2/3), pi*(16+1), pi*(32+3/2), pi*64];
%! assert (unwrap(A), zeros(1, length(A)));
%! assert (diff(unwrap(B), 1)<2*pi, true(1, length(B)-1));
%!
%!error unwrap()

Вообще любой скрипт с %!test или %!error или %!assert, можешь погрепать.

Список функций на первый спринт, можешь выбрать те, которые DONE и посмотреть. Ну и прикинуть, к чему можешь написать тест из того, что не обеспечено.

adriano32 ★★★
() автор топика
Ответ на: комментарий от adriano32

Что не понятно, так это как тестить plot функции и все что связано с i/o.

Пока вижу подходящие функции только в линейной алгебре.

От участников код-спринта требуется всего лишь знание языка Octave и базовых встроенных функций Octave.

А как же матчасть?

amaora ★★
()
Ответ на: комментарий от amaora

Для plot тоже тесты написаны некоторые, можешь посмотреть, я не вникал. В IRC во время первого спринта это обсуждали, не запомнил к чему пришли, в любом случае можно будет спросить во время или перед началом.

По поводу матчасти это конечно да, но лучше этим не пугать сразу :)

adriano32 ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.