Diff of the two buildlogs: -- --- b1/build.log 2023-06-07 10:50:43.791293785 +0000 +++ b2/build.log 2023-06-07 10:57:23.333811434 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Jun 6 22:42:09 -12 2023 -I: pbuilder-time-stamp: 1686134529 +I: Current time: Thu Jun 8 00:50:53 +14 2023 +I: pbuilder-time-stamp: 1686135053 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./octave-financial_0.5.3.orig.tar.gz] I: copying [./octave-financial_0.5.3-4.debian.tar.xz] I: Extracting source -gpgv: Signature made Sun Dec 4 20:41:02 2022 -12 +gpgv: Signature made Mon Dec 5 22:41:02 2022 +14 gpgv: using RSA key 3F464391498FE874BDB5D98F2124AA1983785C90 gpgv: issuer "rafael@debian.org" gpgv: Can't check signature: No public key @@ -26,135 +26,167 @@ dpkg-source: info: unpacking octave-financial_0.5.3-4.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/8916/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/32624/tmp/hooks/D01_modify_environment starting +debug: Running on jtx1c. +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 Jun 8 00:51 /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/32624/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/32624/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='armhf' + 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]="15" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 ' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='d14f10b6424140ed89be03184af5d3d3' - 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='8916' - PS1='# ' - PS2='> ' + INVOCATION_ID=bf1a84fa3a9a42b7b35837db354a292f + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=32624 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.wB8uBeod/pbuilderrc_BL8Z --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wB8uBeod/b1 --logfile b1/build.log octave-financial_0.5.3-4.dsc' - SUDO_GID='113' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:3142/' + 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.wB8uBeod/pbuilderrc_xmht --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.wB8uBeod/b2 --logfile b2/build.log --extrapackages usrmerge octave-financial_0.5.3-4.dsc' + SUDO_GID=114 + SUDO_UID=108 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:3142/ I: uname -a - Linux virt32c 5.10.0-23-armmp-lpae #1 SMP Debian 5.10.179-1 (2023-05-12) armv7l GNU/Linux + Linux i-capture-the-hostname 5.10.0-23-arm64 #1 SMP Debian 5.10.179-1 (2023-05-12) aarch64 GNU/Linux I: ls -l /bin total 5072 - -rwxr-xr-x 1 root root 838488 Apr 23 09:24 bash - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 67144 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 67112 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 67632 Sep 20 2022 cat - -rwxr-xr-x 1 root root 67676 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 67644 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 67684 Sep 20 2022 chown - -rwxr-xr-x 1 root root 133532 Sep 20 2022 cp - -rwxr-xr-x 1 root root 132868 Jan 5 01:20 dash - -rwxr-xr-x 1 root root 133220 Sep 20 2022 date - -rwxr-xr-x 1 root root 67732 Sep 20 2022 dd - -rwxr-xr-x 1 root root 68104 Sep 20 2022 df - -rwxr-xr-x 1 root root 133632 Sep 20 2022 dir - -rwxr-xr-x 1 root root 59128 Mar 22 21:02 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 01:33 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 01:33 domainname -> hostname - -rwxr-xr-x 1 root root 67560 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 02:43 egrep - -rwxr-xr-x 1 root root 67548 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 02:43 fgrep - -rwxr-xr-x 1 root root 55748 Mar 22 21:02 findmnt - -rwsr-xr-x 1 root root 26208 Mar 22 20:15 fusermount - -rwxr-xr-x 1 root root 128608 Jan 24 02:43 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 64220 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 67032 Dec 19 01:33 hostname - -rwxr-xr-x 1 root root 67720 Sep 20 2022 ln - -rwxr-xr-x 1 root root 35132 Mar 22 21:51 login - -rwxr-xr-x 1 root root 133632 Sep 20 2022 ls - -rwxr-xr-x 1 root root 136808 Mar 22 21:02 lsblk - -rwxr-xr-x 1 root root 67800 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 67764 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 67596 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 38504 Mar 22 21:02 more - -rwsr-xr-x 1 root root 38496 Mar 22 21:02 mount - -rwxr-xr-x 1 root root 9824 Mar 22 21:02 mountpoint - -rwxr-xr-x 1 root root 133532 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 01:33 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 18:25 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 67608 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 09:24 rbash -> bash - -rwxr-xr-x 1 root root 67600 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 67672 Sep 20 2022 rm - -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 67400 Nov 2 2022 run-parts - -rwxr-xr-x 1 root root 133372 Jan 5 07:55 sed - lrwxrwxrwx 1 root root 4 Jan 5 01:20 sh -> dash - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty - -rwsr-xr-x 1 root root 50800 Mar 22 21:02 su - -rwxr-xr-x 1 root root 67584 Sep 20 2022 sync - -rwxr-xr-x 1 root root 336764 Apr 6 02:25 tar - -rwxr-xr-x 1 root root 67144 Nov 2 2022 tempfile - -rwxr-xr-x 1 root root 133224 Sep 20 2022 touch - -rwxr-xr-x 1 root root 67548 Sep 20 2022 true - -rwxr-xr-x 1 root root 9768 Mar 22 20:15 ulockmgr_server - -rwsr-xr-x 1 root root 22108 Mar 22 21:02 umount - -rwxr-xr-x 1 root root 67572 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 133632 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 42608 Mar 22 21:02 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 01:33 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 6460 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8103 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/8916/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 838488 Apr 24 11:24 bash + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 67112 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 67632 Sep 21 2022 cat + -rwxr-xr-x 1 root root 67676 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 67644 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 67684 Sep 21 2022 chown + -rwxr-xr-x 1 root root 133532 Sep 21 2022 cp + -rwxr-xr-x 1 root root 132868 Jan 6 03:20 dash + -rwxr-xr-x 1 root root 133220 Sep 21 2022 date + -rwxr-xr-x 1 root root 67732 Sep 21 2022 dd + -rwxr-xr-x 1 root root 68104 Sep 21 2022 df + -rwxr-xr-x 1 root root 133632 Sep 21 2022 dir + -rwxr-xr-x 1 root root 59128 Mar 23 23:02 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 03:33 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 03:33 domainname -> hostname + -rwxr-xr-x 1 root root 67560 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 04:43 egrep + -rwxr-xr-x 1 root root 67548 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 04:43 fgrep + -rwxr-xr-x 1 root root 55748 Mar 23 23:02 findmnt + -rwsr-xr-x 1 root root 26208 Mar 23 22:15 fusermount + -rwxr-xr-x 1 root root 128608 Jan 25 04:43 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 64220 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 67032 Dec 20 03:33 hostname + -rwxr-xr-x 1 root root 67720 Sep 21 2022 ln + -rwxr-xr-x 1 root root 35132 Mar 23 23:51 login + -rwxr-xr-x 1 root root 133632 Sep 21 2022 ls + -rwxr-xr-x 1 root root 136808 Mar 23 23:02 lsblk + -rwxr-xr-x 1 root root 67800 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 67764 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 67596 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 38504 Mar 23 23:02 more + -rwsr-xr-x 1 root root 38496 Mar 23 23:02 mount + -rwxr-xr-x 1 root root 9824 Mar 23 23:02 mountpoint + -rwxr-xr-x 1 root root 133532 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 03:33 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 20:25 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 67608 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 11:24 rbash -> bash + -rwxr-xr-x 1 root root 67600 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 67672 Sep 21 2022 rm + -rwxr-xr-x 1 root root 67600 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 67400 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 133372 Jan 6 09:55 sed + lrwxrwxrwx 1 root root 9 Jun 8 00:51 sh -> /bin/bash + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 67644 Sep 21 2022 stty + -rwsr-xr-x 1 root root 50800 Mar 23 23:02 su + -rwxr-xr-x 1 root root 67584 Sep 21 2022 sync + -rwxr-xr-x 1 root root 336764 Apr 7 04:25 tar + -rwxr-xr-x 1 root root 67144 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 133224 Sep 21 2022 touch + -rwxr-xr-x 1 root root 67548 Sep 21 2022 true + -rwxr-xr-x 1 root root 9768 Mar 23 22:15 ulockmgr_server + -rwsr-xr-x 1 root root 22108 Mar 23 23:02 umount + -rwxr-xr-x 1 root root 67572 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 133632 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 42608 Mar 23 23:02 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 03:33 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/32624/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -703,7 +735,7 @@ Get: 505 http://deb.debian.org/debian bookworm/main armhf dh-octave all 1.2.7 [22.8 kB] Get: 506 http://deb.debian.org/debian bookworm/main armhf octave-io armhf 2.6.4-3 [198 kB] Get: 507 http://deb.debian.org/debian bookworm/main armhf octave-statistics armhf 1.5.3-2 [579 kB] -Fetched 171 MB in 13s (12.7 MB/s) +Fetched 171 MB in 15s (11.5 MB/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 ... 19324 files and directories currently installed.) @@ -2782,8 +2814,19 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/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-4_source.changes +I: user script /srv/workspace/pbuilder/32624/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/32624/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/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-4_source.changes dpkg-buildpackage: info: source package octave-financial dpkg-buildpackage: info: source version 0.5.3-4 dpkg-buildpackage: info: source distribution unstable @@ -2848,29 +2891,29 @@ dh_octave_check -O--buildsystem=octave Checking package... Checking m files ... -warning: function /usr/share/octave/packages/statistics-1.5.3/shadow9/std.m shadows a core library function +warning: function /usr/share/octave/packages/statistics-1.5.3/shadow9/median.m shadows a core library function warning: called from /usr/share/octave/packages/statistics-1.5.3/PKG_ADD at line 11 column 3 load_packages_and_dependencies at line 56 column 5 load_packages at line 53 column 3 pkg at line 632 column 7 - /tmp/tmp.YQq6ByWo8o at line 9 column 9 + /tmp/tmp.m0M4XZiLWq at line 9 column 9 -warning: function /usr/share/octave/packages/statistics-1.5.3/shadow9/median.m shadows a core library function +warning: function /usr/share/octave/packages/statistics-1.5.3/shadow9/mean.m shadows a core library function warning: called from /usr/share/octave/packages/statistics-1.5.3/PKG_ADD at line 11 column 3 load_packages_and_dependencies at line 56 column 5 load_packages at line 53 column 3 pkg at line 632 column 7 - /tmp/tmp.YQq6ByWo8o at line 9 column 9 + /tmp/tmp.m0M4XZiLWq at line 9 column 9 -warning: function /usr/share/octave/packages/statistics-1.5.3/shadow9/mean.m shadows a core library function +warning: function /usr/share/octave/packages/statistics-1.5.3/shadow9/std.m shadows a core library function warning: called from /usr/share/octave/packages/statistics-1.5.3/PKG_ADD at line 11 column 3 load_packages_and_dependencies at line 56 column 5 load_packages at line 53 column 3 pkg at line 632 column 7 - /tmp/tmp.YQq6ByWo8o at line 9 column 9 + /tmp/tmp.m0M4XZiLWq at line 9 column 9 warning: function /usr/share/octave/packages/statistics-1.5.3/shadow9/var.m shadows a core library function warning: called from @@ -2878,46 +2921,39 @@ load_packages_and_dependencies at line 56 column 5 load_packages at line 53 column 3 pkg at line 632 column 7 - /tmp/tmp.YQq6ByWo8o at line 9 column 9 + /tmp/tmp.m0M4XZiLWq at line 9 column 9 -[inst/blkprice.m] ->>>>> /build/octave-financial-0.5.3/inst/blkprice.m +[inst/effrr.m] +>>>>> /build/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/isbusday.m] +>>>>> /build/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/corr2cov.m] +>>>>> /build/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 - [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/macd.m] ->>>>> /build/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/llow.m] ->>>>> /build/octave-financial-0.5.3/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/hour.m] ->>>>> /build/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 + 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/year.m] >>>>> /build/octave-financial-0.5.3/inst/year.m ***** assert (year (523383), 1432); @@ -2927,27 +2963,29 @@ ***** 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/blsvega.m] ->>>>> /build/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/negvolidx.m] ->>>>> /build/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/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/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/busdays.m] +>>>>> /build/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])) +***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 12), "d"), datenum (2008, 1, [2;3;4;7;8;9;10;11])) +***** assert (busdays (datenum (2001, 1, 2), datenum (2001, 1, 9), "w"), datenum (2001, 1, [5;12])) +***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 2), "m"), datenum (2008, 1, 31)) +***** assert (busdays (datenum (2008, 1, 1), datenum (2010, 5, 2), "m"), lbusdate ([2008*ones(12,1);2009*ones(12,1);2010*ones(5,1)], [1:12 1:12 1:5]')) +***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 2), "q"), datenum (2008, 3, 31)) +***** assert (busdays (datenum (2008, 1, 1), datenum (2010, 5, 2), "q"), lbusdate ([2008*ones(4,1);2009*ones(4,1);2010*ones(2,1)], [3:3:12 3:3:12 3 6]')) +***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 2), "s"), datenum (2008, 6, 30)) +***** 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/blsprice.m] >>>>> /build/octave-financial-0.5.3/inst/blsprice.m ***** test @@ -2962,53 +3000,91 @@ ***** 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/yeardays.m] ->>>>> /build/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/cir.m] ->>>>> /build/octave-financial-0.5.3/inst/cir.m +[inst/opprofit.m] +>>>>> /build/octave-financial-0.5.3/inst/opprofit.m +***** assert (opprofit (100, 90, 4, 0, 0), 6) +***** assert (opprofit (80:20:120, 90, 4, 0, 0), [-4 6 26]) +***** assert (opprofit (80:20:120, 80:20:120, 0, 0, 0), [0 0 0]) +***** assert (opprofit (100, 90, 4, [0 0 1 1], [0 1 0 1]), [6 -4 -6 4]) +***** error opprofit () +***** error opprofit (1) +***** error opprofit (1, 2) +***** error opprofit (1, 2, 3) +***** error opprofit (1, 2, 3, 4) +***** error opprofit (1, 2, 3, 4, 0) +***** error opprofit (1, 2, 3, 0, 5) +11 tests, 11 passed, 0 known failure, 0 skipped +[inst/binprice.m] +>>>>> /build/octave-financial-0.5.3/inst/binprice.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/taxedrr.m] ->>>>> /build/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/m2xdate.m] ->>>>> /build/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 + [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/negvolidx.m] +>>>>> /build/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/minute.m] +>>>>> /build/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/llow.m] +>>>>> /build/octave-financial-0.5.3/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/blsrho.m] +>>>>> /build/octave-financial-0.5.3/inst/blsrho.m +***** test + [CallRho, PutRho] = blsrho (90:10:110, 100, 0.04, 1, 0.2, 0.01); + assert (CallRho, [30.4331 49.9552 67.3271], 1e-4) + assert (PutRho, [-65.6458 -46.1238 -28.7519], 1e-4) +***** error blsrho () +***** error blsrho (1) +***** error blsrho (1, 2) +***** error blsrho (1, 2, 3) +***** error blsrho (1, 2, 3, 4) +6 tests, 6 passed, 0 known failure, 0 skipped +[inst/blsvega.m] +>>>>> /build/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/holidays.m] +>>>>> /build/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/busdate.m] >>>>> /build/octave-financial-0.5.3/inst/busdate.m ***** assert(busdate(datenum(2008,1,2)), datenum(2008,1,3)) @@ -3029,132 +3105,61 @@ ***** 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/datefind.m] ->>>>> /build/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]) +[inst/rsindex.m] +>>>>> /build/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/daysact.m] ->>>>> /build/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) +[inst/hhigh.m] +>>>>> /build/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/isbusday.m] ->>>>> /build/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/busdays.m] ->>>>> /build/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])) -***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 12), "d"), datenum (2008, 1, [2;3;4;7;8;9;10;11])) -***** assert (busdays (datenum (2001, 1, 2), datenum (2001, 1, 9), "w"), datenum (2001, 1, [5;12])) -***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 2), "m"), datenum (2008, 1, 31)) -***** assert (busdays (datenum (2008, 1, 1), datenum (2010, 5, 2), "m"), lbusdate ([2008*ones(12,1);2009*ones(12,1);2010*ones(5,1)], [1:12 1:12 1:5]')) -***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 2), "q"), datenum (2008, 3, 31)) -***** assert (busdays (datenum (2008, 1, 1), datenum (2010, 5, 2), "q"), lbusdate ([2008*ones(4,1);2009*ones(4,1);2010*ones(2,1)], [3:3:12 3:3:12 3 6]')) -***** assert (busdays (datenum (2008, 1, 1), datenum (2008, 1, 2), "s"), datenum (2008, 6, 30)) -***** 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/gbm.m] ->>>>> /build/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/corr2cov.m] ->>>>> /build/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/blstheta.m] ->>>>> /build/octave-financial-0.5.3/inst/blstheta.m +[inst/macd.m] +>>>>> /build/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/pointfig.m] +>>>>> /build/octave-financial-0.5.3/inst/pointfig.m +***** shared a + a = [1 2 3 2 4 2 1]; ***** 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/@sde/simByEuler.m] ->>>>> /build/octave-financial-0.5.3/inst/@sde/simByEuler.m + [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 - Asset1Price = 40.; Asset2Price = 40.; Strike = 40.; RiskFreeRate = 0.05; Volatility1 = 0.5; Volatility2 = 0.5; ExpiryTime = 0.25; Correlation = 0.3; - Simulations = 1e5; Timesteps = 10; - Drift = drift ([0.;0.], [RiskFreeRate 0.;0. RiskFreeRate]); - Diffusion = diffusion ([1.;1.], [Volatility1 0.;0. Volatility2]); - SDE = sde (Drift, Diffusion, "StartState", [Asset1Price;Asset2Price], "Correlation", [1 Correlation;Correlation 1]); - [Paths, ~, ~] = simulate (SDE, 1, "DeltaTime", ExpiryTime, "NTRIALS", Simulations, "NSTEPS", Timesteps, "Antithetic", true); - BasketCallApproximate = exp (-RiskFreeRate * ExpiryTime) * mean (max (max (Paths(end, :, :)) - Strike, 0.)); - BasketCall = 6.8477; ## Computed using formula from Stulz (1982) - assert (BasketCallApproximate, BasketCall, 1e-1); + [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 - AssetPrice = 100.; RiskFreeRate = 0.04; Dividends = 0.01; Volatility = 0.2; ExpiryTime = 1.; - Simulations = 1e6; Timesteps = 10; - Drift = drift (0., RiskFreeRate - Dividends); - Diffusion = diffusion (1., Volatility); - SDE = sde (Drift, Diffusion, "StartState", AssetPrice); - [Paths, ~, ~] = simByEuler (SDE, 1, "DeltaTime", ExpiryTime, "NTRIALS", Simulations, "NSTEPS", Timesteps, "Antithetic", true); - AssetExpiryMean = AssetPrice * exp ((RiskFreeRate - Dividends) * ExpiryTime); - AssetExpiryMeanApproximate = mean (Paths(end, 1, :)); - AssetExpiryVariance = AssetPrice * AssetPrice * exp (2 * (RiskFreeRate - Dividends) * ExpiryTime) * (exp (Volatility * Volatility * ExpiryTime) - 1); - ConfidenceInterval = 0.01; - tol = norminv(1 - ConfidenceInterval/2) * sqrt (AssetExpiryVariance / Simulations); - assert (AssetExpiryMeanApproximate, AssetExpiryMean, tol) - 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); -***** error simByEuler() -***** error simByEuler(1) -***** error simByEuler("invalid type", 1) -5 tests, 5 passed, 0 known failure, 0 skipped -[inst/@sde/sde.m] ->>>>> /build/octave-financial-0.5.3/inst/@sde/sde.m -***** error sde () -***** error sde (1) -***** error sde (1, 2) -***** error sde (1, 2, "OptionName") + [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/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/@sde/simulate.m] ->>>>> /build/octave-financial-0.5.3/inst/@sde/simulate.m -***** error simulate () -***** error simulate (1) -2 tests, 2 passed, 0 known failure, 0 skipped -[inst/second.m] ->>>>> /build/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/pointfig.m] ->>>>> /build/octave-financial-0.5.3/inst/pointfig.m +[inst/movavg.m] +>>>>> /build/octave-financial-0.5.3/inst/movavg.m ***** shared a a = [1 2 3 2 4 2 1]; ***** test @@ -3170,6 +3175,54 @@ 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/easter.m] +>>>>> /build/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/blslambda.m] +>>>>> /build/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/blsimpv.m] +>>>>> /build/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/day.m] +>>>>> /build/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/nweekdate.m] >>>>> /build/octave-financial-0.5.3/inst/nweekdate.m ***** assert(nweekdate(1, 4, 2008, 1), datenum(2008, 1, 2)) @@ -3185,14 +3238,56 @@ ***** 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/x2mdate.m] ->>>>> /build/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)) +[inst/lbusdate.m] +>>>>> /build/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/cfconv.m] +>>>>> /build/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/blsgamma.m] +>>>>> /build/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/blsdelta.m] +>>>>> /build/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/blkimpv.m] +>>>>> /build/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/thirdwednesday.m] >>>>> /build/octave-financial-0.5.3/inst/thirdwednesday.m ***** shared m, y, bt, et @@ -3209,92 +3304,26 @@ assert(b, bt') assert(e, et') 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/holidays.m] ->>>>> /build/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/rsindex.m] ->>>>> /build/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/opprofit.m] ->>>>> /build/octave-financial-0.5.3/inst/opprofit.m -***** assert (opprofit (100, 90, 4, 0, 0), 6) -***** assert (opprofit (80:20:120, 90, 4, 0, 0), [-4 6 26]) -***** assert (opprofit (80:20:120, 80:20:120, 0, 0, 0), [0 0 0]) -***** assert (opprofit (100, 90, 4, [0 0 1 1], [0 1 0 1]), [6 -4 -6 4]) -***** error opprofit () -***** error opprofit (1) -***** error opprofit (1, 2) -***** error opprofit (1, 2, 3) -***** error opprofit (1, 2, 3, 4) -***** error opprofit (1, 2, 3, 4, 0) -***** error opprofit (1, 2, 3, 0, 5) -11 tests, 11 passed, 0 known failure, 0 skipped -[inst/cov2corr.m] ->>>>> /build/octave-financial-0.5.3/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/day.m] ->>>>> /build/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/fbusdate.m] ->>>>> /build/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)) +[inst/taxedrr.m] +>>>>> /build/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/blsgamma.m] ->>>>> /build/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/blslambda.m] ->>>>> /build/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) +[inst/cir.m] +>>>>> /build/octave-financial-0.5.3/inst/cir.m ***** 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/mirr.m] ->>>>> /build/octave-financial-0.5.3/inst/mirr.m -***** assert (mirr ([-100000 20000 -10000 30000 38000 50000], 0.09, 0.12), 0.0832, 0.00005) + 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/onbalvol.m] >>>>> /build/octave-financial-0.5.3/inst/onbalvol.m @@ -3305,65 +3334,66 @@ ***** assert(onbalvol(c, v), obv) ***** assert(onbalvol([c' v']), obv) 2 tests, 2 passed, 0 known failure, 0 skipped -[inst/minute.m] ->>>>> /build/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/easter.m] ->>>>> /build/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/hhigh.m] ->>>>> /build/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') +[inst/m2xdate.m] +>>>>> /build/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/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/blsdelta.m] ->>>>> /build/octave-financial-0.5.3/inst/blsdelta.m +[inst/blkprice.m] +>>>>> /build/octave-financial-0.5.3/inst/blkprice.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) + [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/movavg.m] ->>>>> /build/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/months.m] +>>>>> /build/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/x2mdate.m] +>>>>> /build/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/second.m] +>>>>> /build/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/bolling.m] +>>>>> /build/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/mirr.m] +>>>>> /build/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/weeknum.m] >>>>> /build/octave-financial-0.5.3/inst/weeknum.m ***** assert (weeknum (728647), 52) @@ -3396,29 +3426,110 @@ 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/effrr.m] ->>>>> /build/octave-financial-0.5.3/inst/effrr.m -***** assert (effrr (0.09, 12), 0.0938, 0.00005) +[inst/@sde/simulate.m] +>>>>> /build/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/octave-financial-0.5.3/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/octave-financial-0.5.3/inst/@sde/simByEuler.m +***** test + Asset1Price = 40.; Asset2Price = 40.; Strike = 40.; RiskFreeRate = 0.05; Volatility1 = 0.5; Volatility2 = 0.5; ExpiryTime = 0.25; Correlation = 0.3; + Simulations = 1e5; Timesteps = 10; + Drift = drift ([0.;0.], [RiskFreeRate 0.;0. RiskFreeRate]); + Diffusion = diffusion ([1.;1.], [Volatility1 0.;0. Volatility2]); + SDE = sde (Drift, Diffusion, "StartState", [Asset1Price;Asset2Price], "Correlation", [1 Correlation;Correlation 1]); + [Paths, ~, ~] = simulate (SDE, 1, "DeltaTime", ExpiryTime, "NTRIALS", Simulations, "NSTEPS", Timesteps, "Antithetic", true); + BasketCallApproximate = exp (-RiskFreeRate * ExpiryTime) * mean (max (max (Paths(end, :, :)) - Strike, 0.)); + BasketCall = 6.8477; ## Computed using formula from Stulz (1982) + assert (BasketCallApproximate, BasketCall, 1e-1); +***** test + AssetPrice = 100.; RiskFreeRate = 0.04; Dividends = 0.01; Volatility = 0.2; ExpiryTime = 1.; + Simulations = 1e6; Timesteps = 10; + Drift = drift (0., RiskFreeRate - Dividends); + Diffusion = diffusion (1., Volatility); + SDE = sde (Drift, Diffusion, "StartState", AssetPrice); + [Paths, ~, ~] = simByEuler (SDE, 1, "DeltaTime", ExpiryTime, "NTRIALS", Simulations, "NSTEPS", Timesteps, "Antithetic", true); + AssetExpiryMean = AssetPrice * exp ((RiskFreeRate - Dividends) * ExpiryTime); + AssetExpiryMeanApproximate = mean (Paths(end, 1, :)); + AssetExpiryVariance = AssetPrice * AssetPrice * exp (2 * (RiskFreeRate - Dividends) * ExpiryTime) * (exp (Volatility * Volatility * ExpiryTime) - 1); + ConfidenceInterval = 0.01; + tol = norminv(1 - ConfidenceInterval/2) * sqrt (AssetExpiryVariance / Simulations); + assert (AssetExpiryMeanApproximate, AssetExpiryMean, tol) + 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); +***** error simByEuler() +***** error simByEuler(1) +***** error simByEuler("invalid type", 1) +5 tests, 5 passed, 0 known failure, 0 skipped +[inst/blstheta.m] +>>>>> /build/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/gbm.m] +>>>>> /build/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/cfconv.m] ->>>>> /build/octave-financial-0.5.3/inst/cfconv.m +[inst/cov2corr.m] +>>>>> /build/octave-financial-0.5.3/inst/cov2corr.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 ); + cov = [ 0.25 -0.5; -0.5 4.0 ]; + [ sigma, corr ] = cov2corr( cov ); %-------------------------------------------------- - % Input cash flow and yield, output convexity + % Input covariance matrix, output standard deviations and correlation + % 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) + 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/month.m] ->>>>> /build/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"}); +[inst/posvolidx.m] +>>>>> /build/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/datefind.m] +>>>>> /build/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/hour.m] +>>>>> /build/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/cfdur.m] >>>>> /build/octave-financial-0.5.3/inst/cfdur.m @@ -3436,97 +3547,29 @@ assert( errVal1, 0 ) assert( errVal2, 0 ) 1 test, 1 passed, 0 known failure, 0 skipped -[inst/blsrho.m] ->>>>> /build/octave-financial-0.5.3/inst/blsrho.m -***** test - [CallRho, PutRho] = blsrho (90:10:110, 100, 0.04, 1, 0.2, 0.01); - assert (CallRho, [30.4331 49.9552 67.3271], 1e-4) - assert (PutRho, [-65.6458 -46.1238 -28.7519], 1e-4) -***** error blsrho () -***** error blsrho (1) -***** error blsrho (1, 2) -***** error blsrho (1, 2, 3) -***** error blsrho (1, 2, 3, 4) -6 tests, 6 passed, 0 known failure, 0 skipped -[inst/blsimpv.m] ->>>>> /build/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/posvolidx.m] ->>>>> /build/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/eomdate.m] ->>>>> /build/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/binprice.m] ->>>>> /build/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/months.m] ->>>>> /build/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/nomrr.m] ->>>>> /build/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/lbusdate.m] ->>>>> /build/octave-financial-0.5.3/inst/lbusdate.m -***** assert(lbusdate(2008,4), datenum(2008,4,30)) -***** assert(lbusdate(2008,5), datenum(2008,5,30)) +[inst/month.m] +>>>>> /build/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/bolling.m] ->>>>> /build/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/blkimpv.m] ->>>>> /build/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/yeardays.m] +>>>>> /build/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 Checking C++ files ... Summary: 292 tests, 292 passed, 0 known failures, 0 skipped dh_installdocs -O--buildsystem=octave @@ -3554,12 +3597,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/32624/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/32624/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/8916 and its subdirectories -I: Current time: Tue Jun 6 22:50:39 -12 2023 -I: pbuilder-time-stamp: 1686135039 +I: removing directory /srv/workspace/pbuilder/32624 and its subdirectories +I: Current time: Thu Jun 8 00:57:19 +14 2023 +I: pbuilder-time-stamp: 1686135439