Diff of the two buildlogs: -- --- b1/build.log 2025-09-09 18:59:34.045449642 +0000 +++ b2/build.log 2025-09-09 19:10:34.202281125 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Sep 9 06:52:42 -12 2025 -I: pbuilder-time-stamp: 1757443962 +I: Current time: Tue Oct 13 15:22:36 +14 2026 +I: pbuilder-time-stamp: 1791854556 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -22,53 +22,85 @@ dpkg-source: info: unpacking octave-financial_0.5.4-2.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2461411/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Oct 13 01:23 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=40 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="3" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='65328c3980e14a6194410b436bebb37d' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='2461411' - PS1='# ' - PS2='> ' + INVOCATION_ID=a7f2919ff27f40f78b567dc3241ca731 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2665341 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.tjgLm3IU/pbuilderrc_G2mu --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.tjgLm3IU/b1 --logfile b1/build.log octave-financial_0.5.4-2.dsc' - SUDO_GID='110' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.tjgLm3IU/pbuilderrc_8bAO --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.tjgLm3IU/b2 --logfile b2/build.log octave-financial_0.5.4-2.dsc' + SUDO_GID=111 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos1-amd64 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2461411/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -646,7 +678,7 @@ Get: 534 http://deb.debian.org/debian unstable/main amd64 octave-io amd64 2.7.0-2 [234 kB] Get: 535 http://deb.debian.org/debian unstable/main amd64 octave-statistics-common all 1.7.5-2 [907 kB] Get: 536 http://deb.debian.org/debian unstable/main amd64 octave-statistics amd64 1.7.5-2 [141 kB] -Fetched 283 MB in 11s (26.6 MB/s) +Fetched 283 MB in 24s (11.8 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19917 files and directories currently installed.) @@ -2848,7 +2880,11 @@ fakeroot is already the newest version (1.37.1.2-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/octave-financial-0.5.4/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../octave-financial_0.5.4-2_source.changes +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/octave-financial-0.5.4/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../octave-financial_0.5.4-2_source.changes dpkg-buildpackage: info: source package octave-financial dpkg-buildpackage: info: source version 0.5.4-2 dpkg-buildpackage: info: source distribution unstable @@ -2887,13 +2923,30 @@ Checking package... Run the unit tests... Checking m files ... -[inst/eomdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/eomdate.m -***** assert(eomdate(2008, 2), datenum(2008, 2, 29)) -***** assert(eomdate(2007, 2), datenum(2007, 2, 28)) -***** assert(eomdate([2008 2007], [3 4]), [datenum(2008, 3, 31) datenum(2007, 4, 30)]) -***** assert(eomdate([2008;2007], [3;4]), [datenum(2008, 3, 31);datenum(2007, 4, 30)]) +[inst/posvolidx.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/posvolidx.m +***** shared c, v, pvia, pvib + c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21]; + v = [10 12 23 25 34 12 32 15 15 34 54 12 86 45 32 76 89 13 28]; + pvia = [100 100.7575758 101.0249554 101.9607843 104.0998217 104.0998217 103.4276318 103.4276318 103.4276318 105.7488389 106.1059477 106.1059477 108.242309 108.242309 108.242309 107.9734953 104.7029289 104.7029289 102.9290546]'; + pvib = [5 5.037878788 5.051247772 5.098039216 5.204991087 5.204991087 5.171381588 5.171381588 5.171381588 5.287441943 5.305297383 5.305297383 5.412115451 5.412115451 5.412115451 5.398674767 5.235146444 5.235146444 5.14645273]'; +***** assert(posvolidx(c, v), pvia, 1e-5) +***** assert(posvolidx([c' v']), pvia, 1e-5) +***** assert(posvolidx(c, v, 5), pvib, 1e-5) +***** assert(posvolidx([c' v'], 5), pvib, 1e-5) 4 tests, 4 passed, 0 known failure, 0 skipped +[inst/blsdelta.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsdelta.m +***** test + [CallDelta, PutDelta] = blsdelta (90:10:110, 100, 0.04, 1, 0.2, 0.01); + assert (CallDelta, [0.3871 0.5927 0.7586], 1e-4) + assert (PutDelta, [-0.6030 -0.3973 -0.2314], 1e-4) +***** error blsdelta () +***** error blsdelta (1) +***** error blsdelta (1, 2) +***** error blsdelta (1, 2, 3) +***** error blsdelta (1, 2, 3, 4) +6 tests, 6 passed, 0 known failure, 0 skipped [inst/year.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/year.m ***** assert (year (523383), 1432); @@ -2903,24 +2956,67 @@ ***** assert (year ({"12-02-34", "12-02-85"}, "mm-dd-yy"), [2034 1985]); ***** assert (year ({"12-02-34"; "12-02-85"}, "mm-dd-yy"), [2034; 1985]); 6 tests, 6 passed, 0 known failure, 0 skipped +[inst/hhigh.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/hhigh.m +***** shared c, h + c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21 25]; + h = [22.44 22.61 22.67 22.88 23.36 23.36 23.36 23.36 23.36 23.69 23.77 23.84 24.32 24.8 24.8 24.8 24.8 24.8 24.8 25]; +***** assert(hhigh(c), h) +***** assert(hhigh(c'), h') +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/m2xdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/m2xdate.m +***** assert(m2xdate(datenum(2008, 1, 1)), 39448) +***** assert(m2xdate(datenum(2007:2008, 1, 1)), [39083 39448]) +***** assert(m2xdate(datenum(1900, 1, 1)), 2) +***** assert(m2xdate(datenum(1900, 1, 1), 0, "ExcelBug"), 1) +***** assert(m2xdate(datenum(1904, 1, 1), 1), 0) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/blstheta.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blstheta.m +***** test + [CallTheta, PutTheta] = blstheta (90:10:110, 100, 0.04, 1, 0.2, 0.01); + assert (CallTheta, [-4.2901 -5.2337 -5.1954], 1e-4) + assert (PutTheta, [-1.3380 -2.3806 -2.4413], 1e-4) +***** error blstheta () +***** error blstheta (1) +***** error blstheta (1, 2) +***** error blstheta (1, 2, 3) +***** error blstheta (1, 2, 3, 4) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/bolling.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/bolling.m +***** error bolling () +***** error bolling (1) +***** error bolling (1, 2) +***** error bolling ("invalid", "type") +4 tests, 4 passed, 0 known failure, 0 skipped [inst/hour.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/hour.m ***** assert (hour (451482.906781456), 21) ***** assert (hour ("1967-09-21 11:56:34", "yyyy-mm-dd HH:MM:SS"), 11) 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/binprice.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/binprice.m +[inst/pointfig.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/pointfig.m +***** shared a + a = [1 2 3 2 4 2 1]; ***** test - [AssetPrice, OptionValue] = binprice (100, 100, 0.04, 1, 0.25, 0.2, 0, 0.01); - assert (OptionValue(1:2,1:2), [6.4701 2.2159; 0 11.0776], 1e-4) -***** error binprice () -***** error binprice (1) -***** error binprice (1, 2) -***** error binprice (1, 2, 3) -***** error binprice (1, 2, 3, 4) -***** error binprice (1, 2, 3, 4, 5) -***** error binprice (1, 2, 3, 4, 5, 6) -8 tests, 8 passed, 0 known failure, 0 skipped + [s l] = movavg(a, 2, 4); + assert(s, [1 1.5 2.5 2.5 3 3 1.5]) + assert(l, [1 1.5 2 2 2.75 2.75 2.25]) +***** test + [s l] = movavg(a', 2, 4); + assert(s, [1;1.5;2.5;2.5;3;3;1.5]) + assert(l, [1;1.5;2;2;2.75;2.75;2.25]) +***** test + [s l] = movavg(a, 3, 4, 1); + assert(s, [3 4.8 7 7 9.5 8 5.5]./3, 10*eps) + assert(l, [1 11/7 20/9 2.2 3 2.7 2], 10*eps) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/effrr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/effrr.m +***** assert (effrr (0.09, 12), 0.0938, 0.00005) +1 test, 1 passed, 0 known failure, 0 skipped [inst/holidays.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/holidays.m ***** assert(holidays("jan 1 1999", "jan 1 1998"), zeros(0,1)); # return empty when startdate is after enddate @@ -2933,37 +3029,34 @@ ***** assert (holidays ("dec 29 2005", "jan 2 2006"), datenum (2006 ,1 ,2)); ***** assert(holidays(datenum(2004,1,1), datenum(2004,12,31)), datenum(2004*ones(10,1), [1;1;2;4;5;6;7;9;11;12], [1;19;16;9;31;11;5;6;25;24])); 9 tests, 9 passed, 0 known failure, 0 skipped -[inst/blsvega.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsvega.m -***** test -***** error blsvega () -***** error blsvega (1) -***** error blsvega (1, 2) -***** error blsvega (1, 2, 3) -***** error blsvega (1, 2, 3, 4) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/cfdur.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/cfdur.m -***** demo - cf = [2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 102.5]; - yield = 0.025; - [ duration, modDuration ] = cfdur( cf, yield ); - %-------------------------------------------------- - % Input cash flow and yield, output duration and modified duration -***** test - cf = [2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 102.5]; - [dur modDur] = cfdur( cf, 0.025 ); - errVal1 = round(dur*(1e+4))*(1e-4) - 8.9709; - errVal2 = round(modDur*(1e+4))*(1e-4) - 8.7521; - assert( errVal1, 0 ) - assert( errVal2, 0 ) -1 test, 1 passed, 0 known failure, 0 skipped +[inst/month.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/month.m +***** assert (nthargout (1:2, @month, 523383), {12 "Dec"}); +***** assert (nthargout (1:2, @month, "12-02-34", "mm-dd-yy"), {12 "Dec"}); +2 tests, 2 passed, 0 known failure, 0 skipped [inst/fbusdate.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/fbusdate.m ***** assert(fbusdate(2008,2), datenum(2008,2,1)) ***** assert(fbusdate(2008,1), datenum(2008,1,2)) ***** assert(fbusdate(2008,3), datenum(2008,3,3)) 3 tests, 3 passed, 0 known failure, 0 skipped +[inst/datefind.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/datefind.m +***** assert (datefind (datenum (1999, 7, [10;20]), datenum (1999, 7, 1:31)), [10;20]) +***** assert (datefind (datenum (1999, 7, [10;20]), datenum (1999, 7, 1:31), 1), [9;10;11;19;20;21]) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/eomdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/eomdate.m +***** assert(eomdate(2008, 2), datenum(2008, 2, 29)) +***** assert(eomdate(2007, 2), datenum(2007, 2, 28)) +***** assert(eomdate([2008 2007], [3 4]), [datenum(2008, 3, 31) datenum(2007, 4, 30)]) +***** assert(eomdate([2008;2007], [3;4]), [datenum(2008, 3, 31);datenum(2007, 4, 30)]) +4 tests, 4 passed, 0 known failure, 0 skipped +[inst/second.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/second.m +***** assert (second (451482.906781456), 45.918, 0.01) +***** assert (second ("1967-09-21 11:56:34", "yyyy-mm-dd HH:MM:SS"), 34) +2 tests, 2 passed, 0 known failure, 0 skipped [inst/weeknum.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/weeknum.m ***** assert (weeknum (728647), 52) @@ -2996,32 +3089,6 @@ disp(['In ISO8601 ' datestr(d) ' is week ' num2str(w) ' of year ' num2str(y)]) disp(['Octave default weeknumber for ' datestr(d) ' is ' num2str(weeknum (d))]) 22 tests, 22 passed, 0 known failure, 0 skipped -[inst/mirr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/mirr.m -***** assert (mirr ([-100000 20000 -10000 30000 38000 50000], 0.09, 0.12), 0.0832, 0.00005) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/daysact.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/daysact.m -***** assert (daysact ("01-Jan-2007", ["10-Jan-2007"; "23-Feb-2007"; "23-Jul-2007"]), [9;53;203]) -***** assert (daysact ("7-sep-2002", "25-dec-2002"), 109) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/pointfig.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/pointfig.m -***** shared a - a = [1 2 3 2 4 2 1]; -***** test - [s l] = movavg(a, 2, 4); - assert(s, [1 1.5 2.5 2.5 3 3 1.5]) - assert(l, [1 1.5 2 2 2.75 2.75 2.25]) -***** test - [s l] = movavg(a', 2, 4); - assert(s, [1;1.5;2.5;2.5;3;3;1.5]) - assert(l, [1;1.5;2;2;2.75;2.75;2.25]) -***** test - [s l] = movavg(a, 3, 4, 1); - assert(s, [3 4.8 7 7 9.5 8 5.5]./3, 10*eps) - assert(l, [1 11/7 20/9 2.2 3 2.7 2], 10*eps) -3 tests, 3 passed, 0 known failure, 0 skipped [inst/yeardays.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/yeardays.m ***** assert(yeardays(2000), 366) @@ -3040,74 +3107,32 @@ ***** assert(yeardays(2000, 10), 365) ***** assert(yeardays(2000, 11), 360) 15 tests, 15 passed, 0 known failure, 0 skipped -[inst/busdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/busdate.m -***** assert(busdate(datenum(2008,1,2)), datenum(2008,1,3)) -***** assert(busdate(datenum(2007,12,31)), datenum(2008,1,2)) -***** assert(busdate(datenum(2007,1,5)), datenum(2007,1,8)) -***** assert(busdate(datenum(2007,1,6)), datenum(2007,1,8)) -***** assert(busdate(datenum(2008,1,3), -1), datenum(2008,1,2)) -***** assert(busdate(datenum(2008,1,2), -1), datenum(2007,12,31)) -***** assert(busdate(datenum(2008,1,2), -1, datenum(2007,1,1):datenum(2008,1,1)), datenum(2006,12,29)) -***** assert(busdate([datenum(2008,1,2) datenum(2007,1,1)]), [datenum(2008,1,3) datenum(2007,1,3)]) -***** assert(busdate([datenum(2008,1,2) datenum(2007,1,1)], [1 1]), [datenum(2008,1,3) datenum(2007,1,3)]) -***** assert(busdate([datenum(2008,1,2) datenum(2007,1,1)], 1), [datenum(2008,1,3) datenum(2007,1,3)]) -***** assert(busdate([datenum(2008,1,2);datenum(2007,1,1)], [1;1]), [datenum(2008,1,3);datenum(2007,1,3)]) -***** assert(busdate([datenum(2008,1,2);datenum(2007,1,2)], [1;-1]), [datenum(2008,1,3);datenum(2006,12,29)]) -***** assert(busdate(datenum(2008,1,2), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,3)) -***** assert(busdate(datenum(2008,1,4), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,5)) -***** assert(busdate(datenum(2008,1,5), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,7)) -***** assert(busdate(datenum(2008,1,6), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,7)) -***** assert(busdate(datenum(2008,1,1), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 1 1 1 1 1 0]), datenum(2008,1,5)) -17 tests, 17 passed, 0 known failure, 0 skipped -[inst/m2xdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/m2xdate.m -***** assert(m2xdate(datenum(2008, 1, 1)), 39448) -***** assert(m2xdate(datenum(2007:2008, 1, 1)), [39083 39448]) -***** assert(m2xdate(datenum(1900, 1, 1)), 2) -***** assert(m2xdate(datenum(1900, 1, 1), 0, "ExcelBug"), 1) -***** assert(m2xdate(datenum(1904, 1, 1), 1), 0) +[inst/nomrr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/nomrr.m +***** assert (nomrr (0.0938, 12), 0.09, 0.00005) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/blsgamma.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsgamma.m +***** error blsgamma () +***** error blsgamma (1) +***** error blsgamma (1, 2) +***** error blsgamma (1, 2, 3) +***** error blsgamma (1, 2, 3, 4) 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/second.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/second.m -***** assert (second (451482.906781456), 45.918, 0.01) -***** assert (second ("1967-09-21 11:56:34", "yyyy-mm-dd HH:MM:SS"), 34) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/nweekdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/nweekdate.m -***** assert(nweekdate(1, 4, 2008, 1), datenum(2008, 1, 2)) -***** assert(nweekdate(2, 4, 2008, 1), datenum(2008, 1, 9)) -***** assert(nweekdate(3, 4, 2008, 1), datenum(2008, 1, 16)) -***** assert(nweekdate(4, 4, 2008, 1), datenum(2008, 1, 23)) -***** assert(nweekdate(5, 4, 2008, 1), datenum(2008, 1, 30)) -***** assert(nweekdate(6, 4, 2008, 1), 0) -***** assert(nweekdate(5, 6, 2008, 1), 0) -***** assert(nweekdate(1, 4, 2008, 1, 2), datenum(2008, 1, 9)) -***** assert(nweekdate(5, 4, 2008, 1, 6), 0) -***** assert(nweekdate(1:6, 4, 2008, 1, 6), [datenum(2008, 1, 2:7:23), 0, 0]) -***** assert(nweekdate('lweekdate', 4, 2008, 1), datenum(2008, 1, 30)) -***** assert(nweekdate('lweekdate', 4, 2008, 1, 6), datenum(2008, 1, 23)) -12 tests, 12 passed, 0 known failure, 0 skipped -[inst/lbusdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/lbusdate.m -***** assert(lbusdate(2008,4), datenum(2008,4,30)) -***** assert(lbusdate(2008,5), datenum(2008,5,30)) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/cir.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/cir.m +[inst/blsprice.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsprice.m ***** test - InitialInterestRate = 0.03; Speed = 1.; MeanInterestRate = 0.04; Volatility = 0.3; ExpiryTime = 1.; - Simulations = 1e4; Timesteps = 100; - SDE = cir (Speed, MeanInterestRate, Volatility, "StartState", InitialInterestRate); - [Paths, ~, ~] = simByEuler (SDE, Timesteps, "DeltaTime", ExpiryTime / Timesteps, "NTRIALS", Simulations, "NSTEPS", 1, "Antithetic", true, "Processes", @(t, X) max(X, 0)); - BondApproximate = mean (exp (-(sum (Paths) - InitialInterestRate) * ExpiryTime / Timesteps)); - h = sqrt (Speed * Speed + 2 * Volatility * Volatility); - d = (2 * h + (Speed + h) * (exp (ExpiryTime * h) - 1)); - A = ( (2 * h * exp ((Speed + h) * ExpiryTime / 2)) / d )^((2 * Speed * MeanInterestRate) / (Volatility * Volatility)); - B = 2 * (exp (ExpiryTime * h) - 1) / d; - Bond = A * exp (-B * InitialInterestRate); - assert (BondApproximate, Bond, 1e-3); -1 test, 1 passed, 0 known failure, 0 skipped + [Call, Put] = blsprice (90:10:110, 100, 0.04, 1, 0.2, 0.01); + assert (Call, [4.4037 9.3197 16.1217], 1e-4) + assert (Put, [11.3781 6.3937 3.2952], 1e-4) +***** error blsprice () +***** error blsprice (1) +***** error blsprice (1, 2) +***** error blsprice (1, 2, 3) +***** error blsprice (1, 2, 3, 4) +***** error blsprice ("invalid", "type", "argument", 4, 5) +***** error blsprice ({1, 2, 3}, [2 7 8], [8 3 1], 4, 10) +8 tests, 8 passed, 0 known failure, 0 skipped [inst/negvolidx.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/negvolidx.m ***** shared c, v, nvia, nvib @@ -3120,62 +3145,27 @@ ***** assert(negvolidx(c, v, 5), nvib, 1e-5) ***** assert(negvolidx([c' v'], 5), nvib, 1e-5) 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/thirdwednesday.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/thirdwednesday.m -***** shared m, y, bt, et - m = (1:12)'; - y = 2008; - bt = datenum(2008, m, [16;20;19;16;21;18;16;20;17;15;19;17]); - et = datenum([2008*ones(9,1);2009*ones(3,1)], [4:12 1:3]', [16;20;19;16;21;18;16;20;17;15;19;17]); -***** test - [b e] = thirdwednesday (m, y); - assert(b, bt) - assert(e, et) -***** test - [b e] = thirdwednesday (m', y); - assert(b, bt') - assert(e, et') -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/x2mdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/x2mdate.m -***** assert(x2mdate(39448), datenum(2008, 1, 1)) -***** assert(x2mdate([39083 39448]), datenum(2007:2008, 1, 1)) -***** assert(x2mdate(2), datenum(1900, 1, 1)) -***** assert(x2mdate(1, 0, "ExcelBug"), datenum(1900, 1, 1)) -***** assert(x2mdate(0, 1), datenum(1904, 1, 1)) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/blsgamma.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsgamma.m -***** error blsgamma () -***** error blsgamma (1) -***** error blsgamma (1, 2) -***** error blsgamma (1, 2, 3) -***** error blsgamma (1, 2, 3, 4) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/hhigh.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/hhigh.m -***** shared c, h - c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21 25]; - h = [22.44 22.61 22.67 22.88 23.36 23.36 23.36 23.36 23.36 23.69 23.77 23.84 24.32 24.8 24.8 24.8 24.8 24.8 24.8 25]; -***** assert(hhigh(c), h) -***** assert(hhigh(c'), h') -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/depstln.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/depstln.m -***** assert (depstln (13000, 1000, 10), 1200) -***** assert (depstln ([1000 200 300], [200 10 5], [10 10 4]), [80 19 73.75]) -***** assert (depstln (1000, 2000, 10), -100) -***** assert (depstln (2000, 0, 1), 2000) -***** assert (depstln (234, 233, 10), 0.1) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/llow.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/llow.m -***** shared c, l - c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21 25]; - l = [22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.61 22.67 22.86 22.86 22.86 22.86]; -***** assert(llow(c), l) -***** assert(llow(c'), l') +[inst/onbalvol.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/onbalvol.m +***** shared c, v, obv + c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21]; + v = [10 12 23 25 34 12 32 15 15 34 54 12 86 45 32 76 89 13 28]; + obv = [0 12 35 60 94 82 50 35 50 84 138 150 236 281 249 173 84 97 69]'; +***** assert(onbalvol(c, v), obv) +***** assert(onbalvol([c' v']), obv) 2 tests, 2 passed, 0 known failure, 0 skipped +[inst/gbm.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/gbm.m +***** test + AssetPrice = 100.; RiskFreeRate = 0.04; Dividends = 0.01; Volatility = 0.2; ExpiryTime = 1.; + Simulations = 1e6; Timesteps = 10; + SDE = gbm (RiskFreeRate - Dividends, Volatility, "StartState", AssetPrice); + [Paths, ~, ~] = simByEuler (SDE, 1, "DeltaTime", ExpiryTime, "NTRIALS", Simulations, "NSTEPS", Timesteps, "Antithetic", true); + Strike = 100.; + CallApproximate = exp (-RiskFreeRate * ExpiryTime) * mean (max (Paths(end, 1, :) - Strike, 0.)); + [Call, ~] = blsprice (AssetPrice, Strike, RiskFreeRate, ExpiryTime, Volatility, Dividends); + assert (CallApproximate, Call, 1e-1); +1 test, 1 passed, 0 known failure, 0 skipped [inst/easter.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/easter.m ***** assert(easter(1990), datenum(1990, 4, 15)) @@ -3193,11 +3183,6 @@ ***** assert(easter([2004 2005;2006 2007;2008 2009]), [datenum(2004, 4, 11) datenum(2005, 3, 27);datenum(2006, 4, 16) datenum(2007, 4, 8);datenum(2008, 3, 23) datenum(2009, 4, 12)]) ***** assert(easter([2002;2003]), [datenum(2002, 3, 31);datenum(2003, 4, 20)]) 14 tests, 14 passed, 0 known failure, 0 skipped -[inst/datefind.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/datefind.m -***** assert (datefind (datenum (1999, 7, [10;20]), datenum (1999, 7, 1:31)), [10;20]) -***** assert (datefind (datenum (1999, 7, [10;20]), datenum (1999, 7, 1:31), 1), [9;10;11;19;20;21]) -2 tests, 2 passed, 0 known failure, 0 skipped [inst/blkimpv.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blkimpv.m ***** assert (blkimpv (90, 100, 0.04, 1, [3.4484 13.0563], 1, 1e-6, [1 0]), [0.2 0.2], 1e-4) @@ -3208,48 +3193,21 @@ ***** error blkimpv (1, 2, 3, 4) ***** error blkimpv (1, 2, 3, 4, 5, 6, 7, 8, 2) 7 tests, 7 passed, 0 known failure, 0 skipped -[inst/isbusday.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/isbusday.m -***** assert(isbusday(datenum(2008,1,2)), true()) -***** assert(isbusday(datenum(2008,1,1)), false()) -***** assert(isbusday(datenum(2008,1,1), []), false()) -***** assert(isbusday(datenum(2008,2,2)), false()) -***** assert(isbusday(datenum(2008,1,2), datenum(2008,1,2)), false()) -***** assert(isbusday(datenum(2008,1,2), [], zeros(1,7)), true()) -***** assert(isbusday(datenum(2008,1,2), [], ones(1,7)), false()) -***** assert(isbusday([datenum(2008,1,2) datenum(2008,2,2)]), [true() false()]) -***** assert(isbusday([datenum(2008,1,2);datenum(2008,2,2)]), [true();false()]) -9 tests, 9 passed, 0 known failure, 0 skipped -[inst/month.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/month.m -***** assert (nthargout (1:2, @month, 523383), {12 "Dec"}); -***** assert (nthargout (1:2, @month, "12-02-34", "mm-dd-yy"), {12 "Dec"}); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/macd.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/macd.m -***** shared d, m, n, a, b - d = [46.84 47.07 45.92 47.24 47.64 47.3 48.22 46.98 46.41 44.78 46.29 47.99 47.47 49.19 48.85 48.13 49.13 50.91 51.01 50.48 50.88 51.2 50.85 50.16 48.44 49.1 47.67 45.43 46.47 48.76 50.08 50.74 51.91 51.11 49.36 48.96 49.28 49.02 48.24 49.71]; - m = [NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.10928 0.87603 0.50460 0.29081 0.30268 0.41383 0.54884 0.74170 0.82053 0.73334 0.62476 0.55810 0.47877 0.34894 0.36051]; - n = [NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.66262 0.67677 0.66636 0.64471 0.61152 0.55901 0.51931]; - [a, b] = macd (d); -***** assert([a, b], [m, n], 0.0001) - [a, b] = macd (d, 1); -***** assert([a, b], [m, n], 0.0001) - [a, b] = macd (d', 2); -***** assert([a, b], [m, n], 0.0001) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/posvolidx.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/posvolidx.m -***** shared c, v, pvia, pvib - c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21]; - v = [10 12 23 25 34 12 32 15 15 34 54 12 86 45 32 76 89 13 28]; - pvia = [100 100.7575758 101.0249554 101.9607843 104.0998217 104.0998217 103.4276318 103.4276318 103.4276318 105.7488389 106.1059477 106.1059477 108.242309 108.242309 108.242309 107.9734953 104.7029289 104.7029289 102.9290546]'; - pvib = [5 5.037878788 5.051247772 5.098039216 5.204991087 5.204991087 5.171381588 5.171381588 5.171381588 5.287441943 5.305297383 5.305297383 5.412115451 5.412115451 5.412115451 5.398674767 5.235146444 5.235146444 5.14645273]'; -***** assert(posvolidx(c, v), pvia, 1e-5) -***** assert(posvolidx([c' v']), pvia, 1e-5) -***** assert(posvolidx(c, v, 5), pvib, 1e-5) -***** assert(posvolidx([c' v'], 5), pvib, 1e-5) -4 tests, 4 passed, 0 known failure, 0 skipped +[inst/cir.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/cir.m +***** test + InitialInterestRate = 0.03; Speed = 1.; MeanInterestRate = 0.04; Volatility = 0.3; ExpiryTime = 1.; + Simulations = 1e4; Timesteps = 100; + SDE = cir (Speed, MeanInterestRate, Volatility, "StartState", InitialInterestRate); + [Paths, ~, ~] = simByEuler (SDE, Timesteps, "DeltaTime", ExpiryTime / Timesteps, "NTRIALS", Simulations, "NSTEPS", 1, "Antithetic", true, "Processes", @(t, X) max(X, 0)); + BondApproximate = mean (exp (-(sum (Paths) - InitialInterestRate) * ExpiryTime / Timesteps)); + h = sqrt (Speed * Speed + 2 * Volatility * Volatility); + d = (2 * h + (Speed + h) * (exp (ExpiryTime * h) - 1)); + A = ( (2 * h * exp ((Speed + h) * ExpiryTime / 2)) / d )^((2 * Speed * MeanInterestRate) / (Volatility * Volatility)); + B = 2 * (exp (ExpiryTime * h) - 1) / d; + Bond = A * exp (-B * InitialInterestRate); + assert (BondApproximate, Bond, 1e-3); +1 test, 1 passed, 0 known failure, 0 skipped [inst/busdays.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/busdays.m ***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 12)), datenum (2008, 1, [2;3;4;7;8;9;10;11])) @@ -3263,17 +3221,21 @@ ***** assert (busdays (datenum (2008, 1, 1), datenum (2010, 5, 2), "s"), lbusdate ([2008;2008;2009;2009;2010], [6 12 6 12 6]')) ***** assert (busdays (datenum (2008, 1, 1), datenum (2011, 1, 2), "a"), datenum ([2008;2009;2010;2011], [12;12;12;12], [31;31;31;30])) 10 tests, 10 passed, 0 known failure, 0 skipped -[inst/taxedrr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/taxedrr.m -***** assert (taxedrr (0.12, 0.30), 0.084, 10*eps) -***** assert (taxedrr (0.12, 0), 0.12, 10*eps) -***** assert (taxedrr (0.12, 1), 0, 10*eps) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/@sde/simulate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/@sde/simulate.m -***** error simulate () -***** error simulate (1) -2 tests, 2 passed, 0 known failure, 0 skipped +[inst/x2mdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/x2mdate.m +***** assert(x2mdate(39448), datenum(2008, 1, 1)) +***** assert(x2mdate([39083 39448]), datenum(2007:2008, 1, 1)) +***** assert(x2mdate(2), datenum(1900, 1, 1)) +***** assert(x2mdate(1, 0, "ExcelBug"), datenum(1900, 1, 1)) +***** assert(x2mdate(0, 1), datenum(1904, 1, 1)) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/@sde/sde.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/@sde/sde.m +***** error sde () +***** error sde (1) +***** error sde (1, 2) +***** error sde (1, 2, "OptionName") +4 tests, 4 passed, 0 known failure, 0 skipped [inst/@sde/simByEuler.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/@sde/simByEuler.m ***** test @@ -3307,90 +3269,11 @@ ***** error simByEuler(1) ***** error simByEuler("invalid type", 1) 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@sde/sde.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/@sde/sde.m -***** error sde () -***** error sde (1) -***** error sde (1, 2) -***** error sde (1, 2, "OptionName") -4 tests, 4 passed, 0 known failure, 0 skipped -[inst/rsindex.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/rsindex.m -***** shared c, r - c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21]; - r = [nan(1, 13) 85.1190 70.235 68.6684 55.6322 53.0414 49.7717]; -***** assert(rsindex(c), r, 0.0001) -***** assert(rsindex(c'), r', 0.0001) +[inst/@sde/simulate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/@sde/simulate.m +***** error simulate () +***** error simulate (1) 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/blsimpv.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsimpv.m -***** assert (blsimpv (100, 100, 0.04, 1, [9.9251 6.0040], 1, 0, 1e-6, [1 0]), [0.2 0.2], 1e-4) -***** error blsimpv () -***** error blsimpv (1) -***** error blsimpv (1, 2) -***** error blsimpv (1, 2, 3) -***** error blsimpv (1, 2, 3, 4) -***** error blsimpv (1, 2, 3, 4, 5, 6, 7, 8, 2) -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/blstheta.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blstheta.m -***** test - [CallTheta, PutTheta] = blstheta (90:10:110, 100, 0.04, 1, 0.2, 0.01); - assert (CallTheta, [-4.2901 -5.2337 -5.1954], 1e-4) - assert (PutTheta, [-1.3380 -2.3806 -2.4413], 1e-4) -***** error blstheta () -***** error blstheta (1) -***** error blstheta (1, 2) -***** error blstheta (1, 2, 3) -***** error blstheta (1, 2, 3, 4) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/gbm.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/gbm.m -***** test - AssetPrice = 100.; RiskFreeRate = 0.04; Dividends = 0.01; Volatility = 0.2; ExpiryTime = 1.; - Simulations = 1e6; Timesteps = 10; - SDE = gbm (RiskFreeRate - Dividends, Volatility, "StartState", AssetPrice); - [Paths, ~, ~] = simByEuler (SDE, 1, "DeltaTime", ExpiryTime, "NTRIALS", Simulations, "NSTEPS", Timesteps, "Antithetic", true); - Strike = 100.; - CallApproximate = exp (-RiskFreeRate * ExpiryTime) * mean (max (Paths(end, 1, :) - Strike, 0.)); - [Call, ~] = blsprice (AssetPrice, Strike, RiskFreeRate, ExpiryTime, Volatility, Dividends); - assert (CallApproximate, Call, 1e-1); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/movavg.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/movavg.m -***** shared a - a = [1 2 3 2 4 2 1]; -***** test - [s l] = movavg(a, 2, 4); - assert(s, [1 1.5 2.5 2.5 3 3 1.5]) - assert(l, [1 1.5 2 2 2.75 2.75 2.25]) -***** test - [s l] = movavg(a', 2, 4); - assert(s, [1;1.5;2.5;2.5;3;3;1.5]) - assert(l, [1;1.5;2;2;2.75;2.75;2.25]) -***** test - [s l] = movavg(a, 3, 4, 1); - assert(s, [3 4.8 7 7 9.5 8 5.5]./3, 10*eps) - assert(l, [1 11/7 20/9 2.2 3 2.7 2], 10*eps) -3 tests, 3 passed, 0 known failure, 0 skipped -[inst/cov2corr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/cov2corr.m -***** demo - cov = [ 0.25 -0.5; -0.5 4.0 ]; - [ sigma, corr ] = cov2corr( cov ); - %-------------------------------------------------- - % Input covariance matrix, output standard deviations and correlation - % matrix -***** test - cov = [ 0.25 -0.5; -0.5 4.0 ]; - [sigma, corr] = cov2corr( cov ); - assert( sigma, [0.5 2.0] ) - assert( corr, [1.0 -0.5; -0.5 1.0] ); -1 test, 1 passed, 0 known failure, 0 skipped -[inst/effrr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/effrr.m -***** assert (effrr (0.09, 12), 0.0938, 0.00005) -1 test, 1 passed, 0 known failure, 0 skipped [inst/blslambda.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blslambda.m ***** test @@ -3407,6 +3290,11 @@ ***** error blslambda (1, 2, 3) ***** error blslambda (1, 2, 3, 4) 7 tests, 7 passed, 0 known failure, 0 skipped +[inst/lbusdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/lbusdate.m +***** assert(lbusdate(2008,4), datenum(2008,4,30)) +***** assert(lbusdate(2008,5), datenum(2008,5,30)) +2 tests, 2 passed, 0 known failure, 0 skipped [inst/blsrho.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsrho.m ***** test @@ -3419,13 +3307,55 @@ ***** error blsrho (1, 2, 3) ***** error blsrho (1, 2, 3, 4) 6 tests, 6 passed, 0 known failure, 0 skipped -[inst/bolling.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/bolling.m -***** error bolling () -***** error bolling (1) -***** error bolling (1, 2) -***** error bolling ("invalid", "type") -4 tests, 4 passed, 0 known failure, 0 skipped +[inst/binprice.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/binprice.m +***** test + [AssetPrice, OptionValue] = binprice (100, 100, 0.04, 1, 0.25, 0.2, 0, 0.01); + assert (OptionValue(1:2,1:2), [6.4701 2.2159; 0 11.0776], 1e-4) +***** error binprice () +***** error binprice (1) +***** error binprice (1, 2) +***** error binprice (1, 2, 3) +***** error binprice (1, 2, 3, 4) +***** error binprice (1, 2, 3, 4, 5) +***** error binprice (1, 2, 3, 4, 5, 6) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/busdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/busdate.m +***** assert(busdate(datenum(2008,1,2)), datenum(2008,1,3)) +***** assert(busdate(datenum(2007,12,31)), datenum(2008,1,2)) +***** assert(busdate(datenum(2007,1,5)), datenum(2007,1,8)) +***** assert(busdate(datenum(2007,1,6)), datenum(2007,1,8)) +***** assert(busdate(datenum(2008,1,3), -1), datenum(2008,1,2)) +***** assert(busdate(datenum(2008,1,2), -1), datenum(2007,12,31)) +***** assert(busdate(datenum(2008,1,2), -1, datenum(2007,1,1):datenum(2008,1,1)), datenum(2006,12,29)) +***** assert(busdate([datenum(2008,1,2) datenum(2007,1,1)]), [datenum(2008,1,3) datenum(2007,1,3)]) +***** assert(busdate([datenum(2008,1,2) datenum(2007,1,1)], [1 1]), [datenum(2008,1,3) datenum(2007,1,3)]) +***** assert(busdate([datenum(2008,1,2) datenum(2007,1,1)], 1), [datenum(2008,1,3) datenum(2007,1,3)]) +***** assert(busdate([datenum(2008,1,2);datenum(2007,1,1)], [1;1]), [datenum(2008,1,3);datenum(2007,1,3)]) +***** assert(busdate([datenum(2008,1,2);datenum(2007,1,2)], [1;-1]), [datenum(2008,1,3);datenum(2006,12,29)]) +***** assert(busdate(datenum(2008,1,2), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,3)) +***** assert(busdate(datenum(2008,1,4), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,5)) +***** assert(busdate(datenum(2008,1,5), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,7)) +***** assert(busdate(datenum(2008,1,6), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 0 0 0 0 0 0]), datenum(2008,1,7)) +***** assert(busdate(datenum(2008,1,1), 1, holidays(datenum(2008,1,1), datenum(2008,1,31)), [1 1 1 1 1 1 0]), datenum(2008,1,5)) +17 tests, 17 passed, 0 known failure, 0 skipped +[inst/cfdur.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/cfdur.m +***** demo + cf = [2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 102.5]; + yield = 0.025; + [ duration, modDuration ] = cfdur( cf, yield ); + %-------------------------------------------------- + % Input cash flow and yield, output duration and modified duration +***** test + cf = [2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 102.5]; + [dur modDur] = cfdur( cf, 0.025 ); + errVal1 = round(dur*(1e+4))*(1e-4) - 8.9709; + errVal2 = round(modDur*(1e+4))*(1e-4) - 8.7521; + assert( errVal1, 0 ) + assert( errVal2, 0 ) +1 test, 1 passed, 0 known failure, 0 skipped [inst/corr2cov.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/corr2cov.m ***** demo @@ -3441,41 +3371,6 @@ cov = corr2cov( sigma, corr ); assert( cov, [ 0.25 -0.5; -0.5 4.0 ] ) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/blsdelta.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsdelta.m -***** test - [CallDelta, PutDelta] = blsdelta (90:10:110, 100, 0.04, 1, 0.2, 0.01); - assert (CallDelta, [0.3871 0.5927 0.7586], 1e-4) - assert (PutDelta, [-0.6030 -0.3973 -0.2314], 1e-4) -***** error blsdelta () -***** error blsdelta (1) -***** error blsdelta (1, 2) -***** error blsdelta (1, 2, 3) -***** error blsdelta (1, 2, 3, 4) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/blsprice.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsprice.m -***** test - [Call, Put] = blsprice (90:10:110, 100, 0.04, 1, 0.2, 0.01); - assert (Call, [4.4037 9.3197 16.1217], 1e-4) - assert (Put, [11.3781 6.3937 3.2952], 1e-4) -***** error blsprice () -***** error blsprice (1) -***** error blsprice (1, 2) -***** error blsprice (1, 2, 3) -***** error blsprice (1, 2, 3, 4) -***** error blsprice ("invalid", "type", "argument", 4, 5) -***** error blsprice ({1, 2, 3}, [2 7 8], [8 3 1], 4, 10) -8 tests, 8 passed, 0 known failure, 0 skipped -[inst/day.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/day.m -***** assert (day (523383), 21); -***** assert (day ("12-02-34", "mm-dd-yy"), 2); -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/nomrr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/nomrr.m -***** assert (nomrr (0.0938, 12), 0.09, 0.00005) -1 test, 1 passed, 0 known failure, 0 skipped [inst/opprofit.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/opprofit.m ***** assert (opprofit (100, 90, 4, 0, 0), 6) @@ -3490,26 +3385,121 @@ ***** error opprofit (1, 2, 3, 4, 0) ***** error opprofit (1, 2, 3, 0, 5) 11 tests, 11 passed, 0 known failure, 0 skipped -[inst/onbalvol.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/onbalvol.m -***** shared c, v, obv - c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21]; - v = [10 12 23 25 34 12 32 15 15 34 54 12 86 45 32 76 89 13 28]; - obv = [0 12 35 60 94 82 50 35 50 84 138 150 236 281 249 173 84 97 69]'; -***** assert(onbalvol(c, v), obv) -***** assert(onbalvol([c' v']), obv) +[inst/blkprice.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blkprice.m +***** test + [Call, Put] = blkprice (90:10:110, 100, 0.04, 1, 0.2); + assert (Call, [3.4484 7.6532 13.7316], 1e-4) + assert (Put, [13.0563 7.6532 4.1237], 1e-4) +***** error blkprice () +***** error blkprice (1) +***** error blkprice (1, 2) +***** error blkprice (1, 2, 3) +***** error blkprice (1, 2, 3, 4) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/isbusday.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/isbusday.m +***** assert(isbusday(datenum(2008,1,2)), true()) +***** assert(isbusday(datenum(2008,1,1)), false()) +***** assert(isbusday(datenum(2008,1,1), []), false()) +***** assert(isbusday(datenum(2008,2,2)), false()) +***** assert(isbusday(datenum(2008,1,2), datenum(2008,1,2)), false()) +***** assert(isbusday(datenum(2008,1,2), [], zeros(1,7)), true()) +***** assert(isbusday(datenum(2008,1,2), [], ones(1,7)), false()) +***** assert(isbusday([datenum(2008,1,2) datenum(2008,2,2)]), [true() false()]) +***** assert(isbusday([datenum(2008,1,2);datenum(2008,2,2)]), [true();false()]) +9 tests, 9 passed, 0 known failure, 0 skipped +[inst/nweekdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/nweekdate.m +***** assert(nweekdate(1, 4, 2008, 1), datenum(2008, 1, 2)) +***** assert(nweekdate(2, 4, 2008, 1), datenum(2008, 1, 9)) +***** assert(nweekdate(3, 4, 2008, 1), datenum(2008, 1, 16)) +***** assert(nweekdate(4, 4, 2008, 1), datenum(2008, 1, 23)) +***** assert(nweekdate(5, 4, 2008, 1), datenum(2008, 1, 30)) +***** assert(nweekdate(6, 4, 2008, 1), 0) +***** assert(nweekdate(5, 6, 2008, 1), 0) +***** assert(nweekdate(1, 4, 2008, 1, 2), datenum(2008, 1, 9)) +***** assert(nweekdate(5, 4, 2008, 1, 6), 0) +***** assert(nweekdate(1:6, 4, 2008, 1, 6), [datenum(2008, 1, 2:7:23), 0, 0]) +***** assert(nweekdate('lweekdate', 4, 2008, 1), datenum(2008, 1, 30)) +***** assert(nweekdate('lweekdate', 4, 2008, 1, 6), datenum(2008, 1, 23)) +12 tests, 12 passed, 0 known failure, 0 skipped +[inst/taxedrr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/taxedrr.m +***** assert (taxedrr (0.12, 0.30), 0.084, 10*eps) +***** assert (taxedrr (0.12, 0), 0.12, 10*eps) +***** assert (taxedrr (0.12, 1), 0, 10*eps) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/movavg.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/movavg.m +***** shared a + a = [1 2 3 2 4 2 1]; +***** test + [s l] = movavg(a, 2, 4); + assert(s, [1 1.5 2.5 2.5 3 3 1.5]) + assert(l, [1 1.5 2 2 2.75 2.75 2.25]) +***** test + [s l] = movavg(a', 2, 4); + assert(s, [1;1.5;2.5;2.5;3;3;1.5]) + assert(l, [1;1.5;2;2;2.75;2.75;2.25]) +***** test + [s l] = movavg(a, 3, 4, 1); + assert(s, [3 4.8 7 7 9.5 8 5.5]./3, 10*eps) + assert(l, [1 11/7 20/9 2.2 3 2.7 2], 10*eps) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/macd.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/macd.m +***** shared d, m, n, a, b + d = [46.84 47.07 45.92 47.24 47.64 47.3 48.22 46.98 46.41 44.78 46.29 47.99 47.47 49.19 48.85 48.13 49.13 50.91 51.01 50.48 50.88 51.2 50.85 50.16 48.44 49.1 47.67 45.43 46.47 48.76 50.08 50.74 51.91 51.11 49.36 48.96 49.28 49.02 48.24 49.71]; + m = [NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 1.10928 0.87603 0.50460 0.29081 0.30268 0.41383 0.54884 0.74170 0.82053 0.73334 0.62476 0.55810 0.47877 0.34894 0.36051]; + n = [NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0.66262 0.67677 0.66636 0.64471 0.61152 0.55901 0.51931]; + [a, b] = macd (d); +***** assert([a, b], [m, n], 0.0001) + [a, b] = macd (d, 1); +***** assert([a, b], [m, n], 0.0001) + [a, b] = macd (d', 2); +***** assert([a, b], [m, n], 0.0001) +3 tests, 3 passed, 0 known failure, 0 skipped +[inst/thirdwednesday.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/thirdwednesday.m +***** shared m, y, bt, et + m = (1:12)'; + y = 2008; + bt = datenum(2008, m, [16;20;19;16;21;18;16;20;17;15;19;17]); + et = datenum([2008*ones(9,1);2009*ones(3,1)], [4:12 1:3]', [16;20;19;16;21;18;16;20;17;15;19;17]); +***** test + [b e] = thirdwednesday (m, y); + assert(b, bt) + assert(e, et) +***** test + [b e] = thirdwednesday (m', y); + assert(b, bt') + assert(e, et') +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/blsimpv.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsimpv.m +***** assert (blsimpv (100, 100, 0.04, 1, [9.9251 6.0040], 1, 0, 1e-6, [1 0]), [0.2 0.2], 1e-4) +***** error blsimpv () +***** error blsimpv (1) +***** error blsimpv (1, 2) +***** error blsimpv (1, 2, 3) +***** error blsimpv (1, 2, 3, 4) +***** error blsimpv (1, 2, 3, 4, 5, 6, 7, 8, 2) +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/blsvega.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blsvega.m +***** test +***** error blsvega () +***** error blsvega (1) +***** error blsvega (1, 2) +***** error blsvega (1, 2, 3) +***** error blsvega (1, 2, 3, 4) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/daysact.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/daysact.m +***** assert (daysact ("01-Jan-2007", ["10-Jan-2007"; "23-Feb-2007"; "23-Jul-2007"]), [9;53;203]) +***** assert (daysact ("7-sep-2002", "25-dec-2002"), 109) 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/months.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/months.m -***** assert(months('may 31 2004', 'jun 30 2004'), 1) -***** assert(months({'may 31 2004' 'may 30 2004'}, 'jun 30 2004'), [1;1]) -***** assert(months('may 31 2004', 'jun 30 2004', 1), 1) -***** assert(months({'may 31 2004' 'may 30 2004'}, 'jun 30 2004', 1), [1;1]) -***** assert(months('may 31 2004', 'jun 30 2004', 0), 0) -***** assert(months({'may 31 2004' 'may 30 2004'}, 'jun 30 2004', 0), [0;1]) -***** assert(months('jun 30 2005', 'june 30 2006'), 12) -***** assert(months('jun 30 2005', 'june 29 2006'), 11) -8 tests, 8 passed, 0 known failure, 0 skipped [inst/minute.m] >>>>> /build/reproducible-path/octave-financial-0.5.4/inst/minute.m ***** assert (minute (451482.906781456), 45) @@ -3530,18 +3520,64 @@ errVal = round(errVal*(1e+10)); assert(errVal, 0) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/blkprice.m] ->>>>> /build/reproducible-path/octave-financial-0.5.4/inst/blkprice.m +[inst/months.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/months.m +***** assert(months('may 31 2004', 'jun 30 2004'), 1) +***** assert(months({'may 31 2004' 'may 30 2004'}, 'jun 30 2004'), [1;1]) +***** assert(months('may 31 2004', 'jun 30 2004', 1), 1) +***** assert(months({'may 31 2004' 'may 30 2004'}, 'jun 30 2004', 1), [1;1]) +***** assert(months('may 31 2004', 'jun 30 2004', 0), 0) +***** assert(months({'may 31 2004' 'may 30 2004'}, 'jun 30 2004', 0), [0;1]) +***** assert(months('jun 30 2005', 'june 30 2006'), 12) +***** assert(months('jun 30 2005', 'june 29 2006'), 11) +8 tests, 8 passed, 0 known failure, 0 skipped +[inst/day.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/day.m +***** assert (day (523383), 21); +***** assert (day ("12-02-34", "mm-dd-yy"), 2); +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/mirr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/mirr.m +***** assert (mirr ([-100000 20000 -10000 30000 38000 50000], 0.09, 0.12), 0.0832, 0.00005) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/cov2corr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/cov2corr.m +***** demo + cov = [ 0.25 -0.5; -0.5 4.0 ]; + [ sigma, corr ] = cov2corr( cov ); + %-------------------------------------------------- + % Input covariance matrix, output standard deviations and correlation + % matrix ***** test - [Call, Put] = blkprice (90:10:110, 100, 0.04, 1, 0.2); - assert (Call, [3.4484 7.6532 13.7316], 1e-4) - assert (Put, [13.0563 7.6532 4.1237], 1e-4) -***** error blkprice () -***** error blkprice (1) -***** error blkprice (1, 2) -***** error blkprice (1, 2, 3) -***** error blkprice (1, 2, 3, 4) -6 tests, 6 passed, 0 known failure, 0 skipped + cov = [ 0.25 -0.5; -0.5 4.0 ]; + [sigma, corr] = cov2corr( cov ); + assert( sigma, [0.5 2.0] ) + assert( corr, [1.0 -0.5; -0.5 1.0] ); +1 test, 1 passed, 0 known failure, 0 skipped +[inst/llow.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/llow.m +***** shared c, l + c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21 25]; + l = [22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.44 22.61 22.67 22.86 22.86 22.86 22.86]; +***** assert(llow(c), l) +***** assert(llow(c'), l') +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/rsindex.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/rsindex.m +***** shared c, r + c = [22.44 22.61 22.67 22.88 23.36 23.23 23.08 22.86 23.17 23.69 23.77 23.84 24.32 24.8 24.16 24.1 23.37 23.61 23.21]; + r = [nan(1, 13) 85.1190 70.235 68.6684 55.6322 53.0414 49.7717]; +***** assert(rsindex(c), r, 0.0001) +***** assert(rsindex(c'), r', 0.0001) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/depstln.m] +>>>>> /build/reproducible-path/octave-financial-0.5.4/inst/depstln.m +***** assert (depstln (13000, 1000, 10), 1200) +***** assert (depstln ([1000 200 300], [200 10 5], [10 10 4]), [80 19 73.75]) +***** assert (depstln (1000, 2000, 10), -100) +***** assert (depstln (2000, 0, 1), 2000) +***** assert (depstln (234, 233, 10), 0.1) +5 tests, 5 passed, 0 known failure, 0 skipped Checking C++ files ... Done running the unit tests. Summary: 297 tests, 297 passed, 0 known failures, 0 skipped @@ -3570,12 +3606,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2665341/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/2461411 and its subdirectories -I: Current time: Tue Sep 9 06:59:33 -12 2025 -I: pbuilder-time-stamp: 1757444373 +I: removing directory /srv/workspace/pbuilder/2665341 and its subdirectories +I: Current time: Tue Oct 13 15:33:33 +14 2026 +I: pbuilder-time-stamp: 1791855213