Diff of the two buildlogs: -- --- b1/build.log 2024-10-29 17:00:30.171229876 +0000 +++ b2/build.log 2024-10-29 21:31:20.641170346 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Oct 29 04:57:26 -12 2024 -I: pbuilder-time-stamp: 1730221046 +I: Current time: Tue Dec 2 13:27:44 +14 2025 +I: pbuilder-time-stamp: 1764631664 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -29,54 +29,86 @@ dpkg-source: info: applying compile-against-octave-9.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/25342/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/100778/tmp/hooks/D01_modify_environment starting +debug: Running on ionos6-i386. +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 Dec 1 23:41 /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/100778/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/100778/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=11 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='i386' + 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]="2" [2]="32" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.32(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='89abb5df8d724049bbf9433eb2c9bf2e' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='25342' - PS1='# ' - PS2='> ' + INVOCATION_ID=4e32230ebba44220a967f961326bc081 + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-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=100778 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.fx2fwQ0j/pbuilderrc_evoy --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.fx2fwQ0j/b1 --logfile b1/build.log octave-financial_0.5.3-5.dsc' - SUDO_GID='112' - SUDO_UID='107' - 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.fx2fwQ0j/pbuilderrc_Hxhn --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.fx2fwQ0j/b2 --logfile b2/build.log octave-financial_0.5.3-5.dsc' + SUDO_GID=112 + SUDO_UID=107 + 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 ionos12-i386 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 4 21:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/25342/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 4 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/100778/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -636,7 +668,7 @@ Get: 516 http://deb.debian.org/debian unstable/main i386 octave-io i386 2.6.4-3+b2 [204 kB] Get: 517 http://deb.debian.org/debian unstable/main i386 octave-statistics-common all 1.7.0-2 [872 kB] Get: 518 http://deb.debian.org/debian unstable/main i386 octave-statistics i386 1.7.0-2 [146 kB] -Fetched 210 MB in 4s (59.4 MB/s) +Fetched 210 MB in 4min 4s (859 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package netbase. (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 ... 19935 files and directories currently installed.) @@ -2762,7 +2794,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/octave-financial-0.5.3/ && 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.3-5_source.changes +I: user script /srv/workspace/pbuilder/100778/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/100778/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/octave-financial-0.5.3/ && 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.3-5_source.changes dpkg-buildpackage: info: source package octave-financial dpkg-buildpackage: info: source version 0.5.3-5 dpkg-buildpackage: info: source distribution unstable @@ -2799,96 +2835,23 @@ Checking package... Run the unit tests... Checking m files ... -[inst/cfdur.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/rsindex.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/mirr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/blsgamma.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/easter.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/easter.m -***** assert(easter(1990), datenum(1990, 4, 15)) -***** assert(easter(1991), datenum(1991, 3, 31)) -***** assert(easter(1992), datenum(1992, 4, 19)) -***** assert(easter(1993), datenum(1993, 4, 11)) -***** assert(easter(1994), datenum(1994, 4, 3)) -***** assert(easter(1995), datenum(1995, 4, 16)) -***** assert(easter(1996), datenum(1996, 4, 7)) -***** assert(easter(1997), datenum(1997, 3, 30)) -***** assert(easter(1998), datenum(1998, 4, 12)) -***** assert(easter(1999), datenum(1999, 4, 4)) -***** assert(easter([2000 2001]), [datenum(2000, 4, 23) datenum(2001, 4, 15)]) -***** assert(easter([2002;2003]), [datenum(2002, 3, 31);datenum(2003, 4, 20)]) -***** 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.3/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/weeknum.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/weeknum.m -***** assert (weeknum (728647), 52) -***** assert (weeknum ([728647 728848]), [52 27]) -***** assert (weeknum ([728647 ;728648]), [52 ;52]) -***** assert (weeknum ([736413 736813 ; 737213 737613]), [13 17 ; 22 28]) -***** assert (weeknum (datenum (2005, 01, 01), 2, 1), 53) -***** assert (weeknum (datenum (2005, 01, 02), 2, 1), 53) -***** assert (weeknum (datenum (2005, 12, 31), 2, 1), 52) -***** assert (weeknum (datenum (2007, 01, 01), 2, 1), 1) -***** assert (weeknum (datenum (2007, 12, 30), 2, 1), 52) -***** assert (weeknum (datenum (2007, 12, 31), 2, 1), 1) -***** assert (weeknum (datenum (2008, 01, 01), 2, 1), 1) -***** assert (weeknum (datenum (2008, 12, 28), 2, 1), 52) -***** assert (weeknum (datenum (2008, 12, 29), 2, 1), 1) -***** assert (weeknum (datenum (2008, 12, 30), 2, 1), 1) -***** assert (weeknum (datenum (2008, 12, 31), 2, 1), 1) -***** assert (weeknum (datenum (2009, 01, 01), 2, 1), 1) -***** assert (weeknum (datenum (2009, 12, 31), 2, 1), 53) -***** assert (weeknum (datenum (2010, 01, 01), 2, 1), 53) -***** assert (weeknum (datenum (2010, 01, 02), 2, 1), 53) -***** assert (weeknum (datenum (2010, 01, 03), 2, 1), 53) -***** assert (weeknum ([datenum(2005, 1, 1) datenum(2008, 12, 29)], 2, 1), [53 1]) -***** test - [n, y] = weeknum (datenum (2010, 1, 3), 2, 1); - assert ([n y],[53 2009]) -***** demo - d = datenum (2014, 12, 29); - [w, y] = weeknum (datenum (2014, 12, 29), 2, 1); - 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/blsimpv.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/bolling.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/pointfig.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/pointfig.m ***** shared a @@ -2906,105 +2869,6 @@ 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/blstheta.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/binprice.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/blsimpv.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/fbusdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/lbusdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/gbm.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/holidays.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/holidays.m -***** assert(holidays("jan 1 1999", "jan 1 1998"), zeros(0,1)); # return empty when startdate is after enddate -***** assert(holidays("mar 5 2008", "mar 8 2008"), zeros(0,1)); -***** assert(holidays(datenum(2008,3,5), datenum(2008,3,5)), zeros(0,1)); -***** assert(holidays(datenum(2008,1,1), datenum(2008,1,1)), datenum(2008,1,1)); -***** assert (holidays ("jan 1 2010", "mar 1 2010"), [734139; 734156; 734184]); -***** assert (holidays (datenum (2010, 1, 1), datenum (2010, 3, 1)), [734139; 734156; 734184]); -***** assert (holidays ("dec 29 2004", "jan 2 2005"), zeros (0, 1)); -***** 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/effrr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/effrr.m -***** assert (effrr (0.09, 12), 0.0938, 0.00005) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/month.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/corr2cov.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/corr2cov.m -***** demo - sigma = [ 0.5 2.0 ]; - corr = [ 1.0 -0.5; -0.5 1.0 ]; - cov = corr2cov( sigma, corr ); - %-------------------------------------------------- - % Input standard deviations and correlation matrix, output covariance - % matrix -***** test - sigma = [0.5 2.0]; - corr = [1.0 -0.5; -0.5 1.0]; - cov = corr2cov( sigma, corr ); - assert( cov, [ 0.25 -0.5; -0.5 4.0 ] ) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/second.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/busdays.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/busdays.m ***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 12)), datenum (2008, 1, [2;3;4;7;8;9;10;11])) @@ -3018,124 +2882,27 @@ ***** 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/year.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/year.m -***** assert (year (523383), 1432); -***** assert (year ("12-02-34", "mm-dd-yy"), 2034); -***** assert (year ([728647 728848]), [1994 1995]); -***** assert (year ([728647; 728848]), [1994; 1995]); -***** 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/day.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/blkprice.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/negvolidx.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/negvolidx.m -***** shared c, v, nvia, nvib - 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]; - nvia = [100 100 100 100 100 99.44349315 99.44349315 98.49559157 98.49559157 98.49559157 98.49559157 98.78565011 98.78565011 100.7353669 98.13574451 98.13574451 98.13574451 99.14355704 99.14355704]'; - nvib = [5 5 5 5 5 4.972174658 4.972174658 4.924779578 4.924779578 4.924779578 4.924779578 4.939282505 4.939282505 5.036768344 4.906787226 4.906787226 4.906787226 4.957177852 4.957177852]'; -***** assert(negvolidx(c, v), nvia, 1e-5) -***** assert(negvolidx([c' v']), nvia, 1e-5) -***** 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/posvolidx.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/blslambda.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/blslambda.m -***** test - [CallEl, PutEl] = blslambda (90:10:110, 100, 0.04, 1, 0.2); - assert (CallEl, [7.7536 6.2258 5.0647], 1e-4) - assert (PutEl, [-4.8955 -6.3639 -7.8941], 1e-4) -***** test - [CallEl, PutEl] = blslambda (90:10:110, 100, 0.04, 1, 0.2, 0.01); - assert (CallEl, [7.9108 6.3601 5.1762], 1e-4) - assert (PutEl, [-4.7695 -6.2139 -7.7255], 1e-4) -***** error blslambda () -***** error blslambda (1) -***** error blslambda (1, 2) -***** error blslambda (1, 2, 3) -***** error blslambda (1, 2, 3, 4) -7 tests, 7 passed, 0 known failure, 0 skipped -[inst/x2mdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/yeardays.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/yeardays.m -***** assert(yeardays(2000), 366) -***** assert(yeardays(2001), 365) -***** assert(yeardays(2000:2004), [366 365 365 365 366]) -***** assert(yeardays(2000, 0), 366) -***** assert(yeardays(2000, 1), 360) -***** assert(yeardays(2000, 2), 360) -***** assert(yeardays(2000, 3), 365) -***** assert(yeardays(2000, 4), 360) -***** assert(yeardays(2000, 5), 360) -***** assert(yeardays(2000, 6), 360) -***** assert(yeardays(2000, 7), 365) -***** assert(yeardays(2000, 8), 366) -***** assert(yeardays(2000, 9), 360) -***** assert(yeardays(2000, 10), 365) -***** assert(yeardays(2000, 11), 360) -15 tests, 15 passed, 0 known failure, 0 skipped -[inst/months.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/thirdwednesday.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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) +[inst/gbm.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/gbm.m ***** test - [b e] = thirdwednesday (m', y); - assert(b, bt') - assert(e, et') + 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/minute.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/minute.m +***** assert (minute (451482.906781456), 45) +***** assert (minute ("1967-09-21 11:56:34", "yyyy-mm-dd HH:MM:SS"), 56) +2 tests, 2 passed, 0 known failure, 0 skipped +[inst/@sde/simulate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/@sde/simulate.m +***** error simulate () +***** error simulate (1) 2 tests, 2 passed, 0 known failure, 0 skipped [inst/@sde/sde.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/@sde/sde.m @@ -3144,11 +2911,6 @@ ***** error sde (1, 2) ***** error sde (1, 2, "OptionName") 4 tests, 4 passed, 0 known failure, 0 skipped -[inst/@sde/simulate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/@sde/simulate.m -***** error simulate () -***** error simulate (1) -2 tests, 2 passed, 0 known failure, 0 skipped [inst/@sde/simByEuler.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/@sde/simByEuler.m ***** test @@ -3182,95 +2944,29 @@ ***** error simByEuler(1) ***** error simByEuler("invalid type", 1) 5 tests, 5 passed, 0 known failure, 0 skipped -[inst/blsvega.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/movavg.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/eomdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/m2xdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/daysact.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/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/taxedrr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/isbusday.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/macd.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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) +[inst/negvolidx.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/negvolidx.m +***** shared c, v, nvia, nvib + 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]; + nvia = [100 100 100 100 100 99.44349315 99.44349315 98.49559157 98.49559157 98.49559157 98.49559157 98.78565011 98.78565011 100.7353669 98.13574451 98.13574451 98.13574451 99.14355704 99.14355704]'; + nvib = [5 5 5 5 5 4.972174658 4.972174658 4.924779578 4.924779578 4.924779578 4.924779578 4.939282505 4.939282505 5.036768344 4.906787226 4.906787226 4.906787226 4.957177852 4.957177852]'; +***** assert(negvolidx(c, v), nvia, 1e-5) +***** assert(negvolidx([c' v']), nvia, 1e-5) +***** 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/fbusdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/nomrr.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/nomrr.m -***** assert (nomrr (0.0938, 12), 0.09, 0.00005) -1 test, 1 passed, 0 known failure, 0 skipped -[inst/hhigh.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/nweekdate.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/nweekdate.m ***** assert(nweekdate(1, 4, 2008, 1), datenum(2008, 1, 2)) @@ -3286,23 +2982,22 @@ ***** 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/hour.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/hour.m -***** assert (hour (451482.906781456), 21) -***** assert (hour ("1967-09-21 11:56:34", "yyyy-mm-dd HH:MM:SS"), 11) +[inst/months.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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.3/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/blsdelta.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/opprofit.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/opprofit.m ***** assert (opprofit (100, 90, 4, 0, 0), 6) @@ -3317,16 +3012,91 @@ ***** error opprofit (1, 2, 3, 4, 0) ***** error opprofit (1, 2, 3, 0, 5) 11 tests, 11 passed, 0 known failure, 0 skipped -[inst/blkimpv.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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) -***** error blkimpv () -***** error blkimpv (1) -***** error blkimpv (1, 2) -***** error blkimpv (1, 2, 3) -***** 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/cfdur.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/yeardays.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/yeardays.m +***** assert(yeardays(2000), 366) +***** assert(yeardays(2001), 365) +***** assert(yeardays(2000:2004), [366 365 365 365 366]) +***** assert(yeardays(2000, 0), 366) +***** assert(yeardays(2000, 1), 360) +***** assert(yeardays(2000, 2), 360) +***** assert(yeardays(2000, 3), 365) +***** assert(yeardays(2000, 4), 360) +***** assert(yeardays(2000, 5), 360) +***** assert(yeardays(2000, 6), 360) +***** assert(yeardays(2000, 7), 365) +***** assert(yeardays(2000, 8), 366) +***** assert(yeardays(2000, 9), 360) +***** assert(yeardays(2000, 10), 365) +***** assert(yeardays(2000, 11), 360) +15 tests, 15 passed, 0 known failure, 0 skipped +[inst/year.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/year.m +***** assert (year (523383), 1432); +***** assert (year ("12-02-34", "mm-dd-yy"), 2034); +***** assert (year ([728647 728848]), [1994 1995]); +***** assert (year ([728647; 728848]), [1994; 1995]); +***** 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/weeknum.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/weeknum.m +***** assert (weeknum (728647), 52) +***** assert (weeknum ([728647 728848]), [52 27]) +***** assert (weeknum ([728647 ;728648]), [52 ;52]) +***** assert (weeknum ([736413 736813 ; 737213 737613]), [13 17 ; 22 28]) +***** assert (weeknum (datenum (2005, 01, 01), 2, 1), 53) +***** assert (weeknum (datenum (2005, 01, 02), 2, 1), 53) +***** assert (weeknum (datenum (2005, 12, 31), 2, 1), 52) +***** assert (weeknum (datenum (2007, 01, 01), 2, 1), 1) +***** assert (weeknum (datenum (2007, 12, 30), 2, 1), 52) +***** assert (weeknum (datenum (2007, 12, 31), 2, 1), 1) +***** assert (weeknum (datenum (2008, 01, 01), 2, 1), 1) +***** assert (weeknum (datenum (2008, 12, 28), 2, 1), 52) +***** assert (weeknum (datenum (2008, 12, 29), 2, 1), 1) +***** assert (weeknum (datenum (2008, 12, 30), 2, 1), 1) +***** assert (weeknum (datenum (2008, 12, 31), 2, 1), 1) +***** assert (weeknum (datenum (2009, 01, 01), 2, 1), 1) +***** assert (weeknum (datenum (2009, 12, 31), 2, 1), 53) +***** assert (weeknum (datenum (2010, 01, 01), 2, 1), 53) +***** assert (weeknum (datenum (2010, 01, 02), 2, 1), 53) +***** assert (weeknum (datenum (2010, 01, 03), 2, 1), 53) +***** assert (weeknum ([datenum(2005, 1, 1) datenum(2008, 12, 29)], 2, 1), [53 1]) +***** test + [n, y] = weeknum (datenum (2010, 1, 3), 2, 1); + assert ([n y],[53 2009]) +***** demo + d = datenum (2014, 12, 29); + [w, y] = weeknum (datenum (2014, 12, 29), 2, 1); + 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.3/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/taxedrr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/cov2corr.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/cov2corr.m ***** demo @@ -3341,32 +3111,58 @@ 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/cfconv.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/cfconv.m +[inst/corr2cov.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/corr2cov.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; - cfConv = cfconv( cf, yield ); + sigma = [ 0.5 2.0 ]; + corr = [ 1.0 -0.5; -0.5 1.0 ]; + cov = corr2cov( sigma, corr ); %-------------------------------------------------- - % Input cash flow and yield, output convexity + % Input standard deviations and correlation matrix, output covariance + % matrix ***** test - cf = [2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 102.5]; - cfConv = cfconv( cf, 0.025 ); - errVal = round(cfConv*(1e+4))*(1e-4) - 90.4493; - errVal = round(errVal*(1e+10)); - assert(errVal, 0) + sigma = [0.5 2.0]; + corr = [1.0 -0.5; -0.5 1.0]; + cov = corr2cov( sigma, corr ); + assert( cov, [ 0.25 -0.5; -0.5 4.0 ] ) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/bolling.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/minute.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/inst/minute.m -***** assert (minute (451482.906781456), 45) -***** assert (minute ("1967-09-21 11:56:34", "yyyy-mm-dd HH:MM:SS"), 56) +[inst/blkimpv.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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) +***** error blkimpv () +***** error blkimpv (1) +***** error blkimpv (1, 2) +***** error blkimpv (1, 2, 3) +***** 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/busdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/hhigh.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/blsprice.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/blsprice.m @@ -3382,6 +3178,136 @@ ***** 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/blstheta.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/easter.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/easter.m +***** assert(easter(1990), datenum(1990, 4, 15)) +***** assert(easter(1991), datenum(1991, 3, 31)) +***** assert(easter(1992), datenum(1992, 4, 19)) +***** assert(easter(1993), datenum(1993, 4, 11)) +***** assert(easter(1994), datenum(1994, 4, 3)) +***** assert(easter(1995), datenum(1995, 4, 16)) +***** assert(easter(1996), datenum(1996, 4, 7)) +***** assert(easter(1997), datenum(1997, 3, 30)) +***** assert(easter(1998), datenum(1998, 4, 12)) +***** assert(easter(1999), datenum(1999, 4, 4)) +***** assert(easter([2000 2001]), [datenum(2000, 4, 23) datenum(2001, 4, 15)]) +***** assert(easter([2002;2003]), [datenum(2002, 3, 31);datenum(2003, 4, 20)]) +***** 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/binprice.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/nomrr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/nomrr.m +***** assert (nomrr (0.0938, 12), 0.09, 0.00005) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/effrr.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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.3/inst/blslambda.m +***** test + [CallEl, PutEl] = blslambda (90:10:110, 100, 0.04, 1, 0.2); + assert (CallEl, [7.7536 6.2258 5.0647], 1e-4) + assert (PutEl, [-4.8955 -6.3639 -7.8941], 1e-4) +***** test + [CallEl, PutEl] = blslambda (90:10:110, 100, 0.04, 1, 0.2, 0.01); + assert (CallEl, [7.9108 6.3601 5.1762], 1e-4) + assert (PutEl, [-4.7695 -6.2139 -7.7255], 1e-4) +***** error blslambda () +***** error blslambda (1) +***** error blslambda (1, 2) +***** error blslambda (1, 2, 3) +***** error blslambda (1, 2, 3, 4) +7 tests, 7 passed, 0 known failure, 0 skipped +[inst/macd.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/blsdelta.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/posvolidx.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/cfconv.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/cfconv.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; + cfConv = cfconv( cf, yield ); + %-------------------------------------------------- + % Input cash flow and yield, output convexity +***** test + cf = [2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 2.5 102.5]; + cfConv = cfconv( cf, 0.025 ); + errVal = round(cfConv*(1e+4))*(1e-4) - 90.4493; + errVal = round(errVal*(1e+10)); + assert(errVal, 0) +1 test, 1 passed, 0 known failure, 0 skipped +[inst/holidays.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/inst/holidays.m +***** assert(holidays("jan 1 1999", "jan 1 1998"), zeros(0,1)); # return empty when startdate is after enddate +***** assert(holidays("mar 5 2008", "mar 8 2008"), zeros(0,1)); +***** assert(holidays(datenum(2008,3,5), datenum(2008,3,5)), zeros(0,1)); +***** assert(holidays(datenum(2008,1,1), datenum(2008,1,1)), datenum(2008,1,1)); +***** assert (holidays ("jan 1 2010", "mar 1 2010"), [734139; 734156; 734184]); +***** assert (holidays (datenum (2010, 1, 1), datenum (2010, 3, 1)), [734139; 734156; 734184]); +***** assert (holidays ("dec 29 2004", "jan 2 2005"), zeros (0, 1)); +***** 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/llow.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/llow.m ***** shared c, l @@ -3390,14 +3316,97 @@ ***** assert(llow(c), l) ***** assert(llow(c'), l') 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/onbalvol.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/month.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/second.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/blsgamma.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/isbusday.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/blkprice.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/thirdwednesday.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/eomdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/hour.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/movavg.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/datefind.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/cir.m] >>>>> /build/reproducible-path/octave-financial-0.5.3/inst/cir.m @@ -3414,6 +3423,35 @@ Bond = A * exp (-B * InitialInterestRate); assert (BondApproximate, Bond, 1e-3); 1 test, 1 passed, 0 known failure, 0 skipped +[inst/m2xdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/rsindex.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/x2mdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/lbusdate.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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.3/inst/blsrho.m ***** test @@ -3426,26 +3464,24 @@ ***** error blsrho (1, 2, 3) ***** error blsrho (1, 2, 3, 4) 6 tests, 6 passed, 0 known failure, 0 skipped -[inst/busdate.m] ->>>>> /build/reproducible-path/octave-financial-0.5.3/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/onbalvol.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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/blsvega.m] +>>>>> /build/reproducible-path/octave-financial-0.5.3/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 Checking C++ files ... Done running the unit tests. Summary: 292 tests, 292 passed, 0 known failures, 0 skipped @@ -3474,12 +3510,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/100778/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/100778/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/25342 and its subdirectories -I: Current time: Tue Oct 29 05:00:27 -12 2024 -I: pbuilder-time-stamp: 1730221227 +I: removing directory /srv/workspace/pbuilder/100778 and its subdirectories +I: Current time: Tue Dec 2 17:53:37 +14 2025 +I: pbuilder-time-stamp: 1764647617