Diff of the two buildlogs: -- --- b1/build.log 2025-08-03 12:07:14.067006945 +0000 +++ b2/build.log 2025-08-03 12:08:00.159061241 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Aug 3 00:05:57 -12 2025 -I: pbuilder-time-stamp: 1754222757 +I: Current time: Sun Sep 6 08:30:16 +14 2026 +I: pbuilder-time-stamp: 1788633016 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -26,52 +26,84 @@ dpkg-source: info: applying rspec3.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1318723/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/917384/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +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 Sep 5 18:30 /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/917384/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/917384/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='arm64' - DEBIAN_FRONTEND='noninteractive' + 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]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='0b56b2a68aa44e3ebcdcd96420ee1c29' - 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='1318723' - PS1='# ' - PS2='> ' + INVOCATION_ID=c76b1b0fd37242cd87e3bdf2ff1bfea2 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-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=917384 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.X3GpgttQ/pbuilderrc_85ef --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.X3GpgttQ/b1 --logfile b1/build.log ruby-coercible_1.0.0-3.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4: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.X3GpgttQ/pbuilderrc_o7oI --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.X3GpgttQ/b2 --logfile b2/build.log ruby-coercible_1.0.0-3.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink04-arm64 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1318723/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/917384/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -246,7 +278,7 @@ Get: 127 http://deb.debian.org/debian unstable/main arm64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 128 http://deb.debian.org/debian unstable/main arm64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 129 http://deb.debian.org/debian unstable/main arm64 ruby-rspec-its all 1.3.0-1 [6864 B] -Fetched 34.5 MB in 0s (99.8 MB/s) +Fetched 34.5 MB in 0s (161 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:arm64. (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 ... 19964 files and directories currently installed.) @@ -676,8 +708,8 @@ Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Sun Aug 3 12:06:33 UTC 2025. -Universal Time is now: Sun Aug 3 12:06:33 UTC 2025. +Local time is now: Sat Sep 5 18:30:37 UTC 2026. +Universal Time is now: Sat Sep 5 18:30:37 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up ruby-minitest (5.25.4-3) ... @@ -802,7 +834,11 @@ fakeroot is already the newest version (1.37.1.2-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/ruby-coercible-1.0.0/ && 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 > ../ruby-coercible_1.0.0-3_source.changes +I: user script /srv/workspace/pbuilder/917384/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/917384/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-coercible-1.0.0/ && 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 > ../ruby-coercible_1.0.0-3_source.changes dpkg-buildpackage: info: source package ruby-coercible dpkg-buildpackage: info: source version 1.0.0-3 dpkg-buildpackage: info: source distribution unstable @@ -886,333 +922,603 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 43599 +Randomized with seed 27291 -Coercible::Coercer::String - behaves like Configurable - .config_name - is expected to be an instance of Symbol - .config - responds to configuration keys - is expected to be an instance of Coercible::Configuration - .config_name - is expected to equal :string - .config_keys - is expected to be an instance of Array - is expected not to be empty +Coercible::Coercer::Configurable.config + is expected to equal # -Coercible::Coercer::Integer.to_decimal - is expected to eql 0.1e1 +Coercible::Coercer::Decimal.to_decimal + is expected to equal 0.1e1 + +Coercible::Coercer::Time#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true + +Coercible::Coercer::TimeCoercions.to_datetime + when the value does not respond to #to_datetime + is expected to be an instance of DateTime + is expected to eql # + when the value responds to #to_datetime + is expected to be an instance of DateTime + is expected to eql # + +Coercible::Coercer::Float#to_float + is expected to eql "2013-02-16 17:44:32.120" + +Coercible::Coercer::Numeric.to_integer + is expected to eql 1 + +Coercible::Coercer::Integer.to_string + is expected to eql "1" + is expected to be an instance of String + +Coercible::Coercer::Float.to_decimal is expected to be an instance of BigDecimal + is expected to eql 0.1e1 + +Coercible::Coercer::String.to_time + with an invalid date time string + is expected to raise Coercible::UnsupportedCoercion + with a valid time string + not including time part + it should behave like a correct time object + is expected to be an instance of Time + year + is expected to == 2011 + min + is expected to == 0 + sec + is expected to == 0 + month + is expected to == 7 + hour + is expected to == 0 + day + is expected to == 22 + including time part + it should behave like a correct time object + is expected to be an instance of Time + hour + is expected to == 13 + month + is expected to == 7 + min + is expected to == 44 + day + is expected to == 22 + year + is expected to == 2011 + sec + is expected to == 50 + +Coercible::Coercer::Object.to_integer + when the value does not respond to #to_int + is expected to raise Coercible::UnsupportedCoercion + when the value responds to #to_int + is expected to equal # + +Coercible::Coercer::Decimal#coerced? + behaves like Coercible::Coercer#coerced? + with a primitive value + is expected to equal true + with a non-primitive value + is expected to equal false + +Coercible::Coercer::String.to_boolean + with "TRUE" + is expected to equal true + with "YES" + is expected to equal true + with "no" + is expected to equal false + with "t" + is expected to equal true + with "true" + is expected to equal true + with "f" + is expected to equal false + with "0" + is expected to equal false + with "on" + is expected to equal true + with "1" + is expected to equal true + with "n" + is expected to equal false + with "N" + is expected to equal false + with "off" + is expected to equal false + with "false" + is expected to equal false + with "NO" + is expected to equal false + with "F" + is expected to equal false + with an invalid boolean string +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/string/to_boolean_spec.rb:28:in `block (3 levels) in '. + is expected to raise Exception + with "yes" + is expected to equal true + with "OFF" + is expected to equal false + with "Y" + is expected to equal true + with "T" + is expected to equal true + with "y" + is expected to equal true + with "ON" + is expected to equal true + with "FALSE" + is expected to equal false Coercible::Coercer::Float.to_float is expected to equal 1.0 -Coercible::Coercer::Integer#datetime_proc - with Rubinius - is expected to be an instance of Proc - with other Ruby VMs - is expected to be an instance of Proc +Coercible::Coercer::String.to_datetime + with a valid date string + not including time part + it should behave like a correct datetime object + is expected to be an instance of DateTime + hour + is expected to == 0 + sec + is expected to == 0 + year + is expected to == 2011 + day + is expected to == 22 + min + is expected to == 0 + month + is expected to == 7 + including time part + it should behave like a correct datetime object + is expected to be an instance of DateTime + year + is expected to == 2011 + month + is expected to == 7 + hour + is expected to == 13 + day + is expected to == 22 + min + is expected to == 44 + sec + is expected to == 50 + with an invalid date time string + is expected to raise Coercible::UnsupportedCoercion -Coercible::Coercer::TimeCoercions.to_time - when the value responds to #to_time - is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - is expected to be an instance of Time - when the value does not respond to #to_time +Coercible::Coercer::Object#method_missing + when method doesn't match coercion method regexp + is expected to raise NoMethodError + when method matches coercion method regexp + is expected to equal # + +Coercible::Coercer::Float.to_integer + is expected to be a kind of Integer + is expected to eql 1 + +Coercible::Coercer::Numeric.to_float + is expected to eql 1.0 + +Configuring coercers +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/integration/configuring_coercers_spec.rb:12:in `block (2 levels) in '. + allows to configure coercers + +Coercible::Coercer::Symbol.to_string + is expected to eql "piotr" + is expected to be an instance of String + +Coercible::Coercer::String.to_constant + with a namespaced qualified name + is expected to equal Coercible::Coercer::String + with a namespaced name + is expected to equal Coercible::Coercer::String + with a non-namespaced qualified name + is expected to equal String + with a non-namespaced name + is expected to equal String + when the name is unknown + is expected to raise NameError + with a name outside of the namespace + is expected to raise NameError + when the name is invalid + is expected to raise NameError + +Coercible::Coercer::String#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true + +Coercible::Coercer::Object.to_array + when the value responds to #to_a but not #to_ary + is expected to equal # + when the value returns nil from #to_ary + wraps the value in an Array if #to_a is not available + calls #to_a as a fallback + when the value responds to #to_ary + is expected to equal # + does not call #to_a if #to_ary is available + when the value does not respond to #to_ary or #to_a + is expected to be an instance of Array + is expected to == [#] + +Coercible::Coercer::Integer#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true + +Coercible::Coercer::DateTime.to_time + when DateTime does not support #to_time is expected to be an instance of Time is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + when DateTime supports #to_time + is expected to equal 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" -Coercible::Coercer::Integer - behaves like Configurable - .config - responds to configuration keys - is expected to be an instance of Coercible::Configuration - .config_keys - is expected to be an instance of Array - is expected not to be empty - .config_name - is expected to equal :integer - .config_name - is expected to be an instance of Symbol +Coercible::Coercer::FalseClass#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true + +Coercible::Coercer::Hash#coerced? + behaves like Coercible::Coercer#coerced? + with a primitive value + is expected to equal true + with a non-primitive value + is expected to equal false + +Coercible::Coercer::Date#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true + +Coercible::Coercer::Float#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true + +Coercible::Coercer::Date.to_string + is expected to be an instance of String + is expected to eql "2011-01-01" + +Coercible::Coercer::Date.to_time + is expected to be an instance of Time + is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + +Coercible::Coercer::Integer#to_datetime + is expected to eql "2013-02-16 17:44:32.000" Coercible::Coercer::String.to_date - with an invalid date string - is expected to raise Coercible::UnsupportedCoercion with a valid date string is expected to be an instance of Date day is expected to == 22 - month - is expected to == 7 year is expected to == 2011 + month + is expected to == 7 + with an invalid date string + is expected to raise Coercible::UnsupportedCoercion -Coercible::Coercer::Time.to_time - is expected to equal 0, 0, 0, 1, 1, 2012, 0, 1, false, and "UTC" +Coercible::Coercer::Decimal.to_integer + is expected to eql 1 + is expected to be a kind of Integer -Coercible::Coercer::Array#coerced? - behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true - with a non-primitive value - is expected to equal false +Coercible::Coercer::TimeCoercions.to_string + is expected to be an instance of String + is expected to eql "2011-01-01" -Coercible::Coercer::Object#inspect - is expected to == "#" +Coercible::Coercer::Decimal.to_string + is expected to be an instance of String + is expected to eql "1.0" -Coercible::Coercer::FalseClass#coerced? +Coercible::Coercer::TimeCoercions.to_time + when the value does not respond to #to_time + is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + is expected to be an instance of Time + when the value responds to #to_time + is expected to be an instance of Time + is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + +Coercible::Coercer::Integer#datetime_format + with other Ruby VMs + is expected to == "%s" + with Rubinius + is expected to == "%Q" + +Coercible::Coercer::Object#coerced? + is expected to equal true + +Coercible::Coercer::TrueClass.to_string + is expected to be an instance of String + is expected to eql "true" + +Coercible::Coercer::Array#coerced? behaves like Coercible::Coercer#coerced? with a non-primitive value is expected to equal false with a primitive value is expected to equal true +Coercible::Coercer::Numeric.to_decimal + with an object responding to #to_d + is expected to eql 0.1e1 + with an object not responding to #to_d + is expected to eql 0.1e1 + Coercible::Coercer::Hash.to_datetime - when time segments are missing - uses the Time now to populate the segments + when time segments are strings + is expected to eql # is expected to be an instance of DateTime when time segments are integers is expected to be an instance of DateTime is expected to eql # - when time segments are strings - is expected to eql # + when time segments are missing + uses the Time now to populate the segments is expected to be an instance of DateTime -Coercible::Coercer::Symbol.to_string - is expected to eql "piotr" - is expected to be an instance of String - -Coercible::Coercer::String.to_decimal - with "-1.0E-1" - is expected to be an instance of BigDecimal - is expected to eql -0.1e0 - with "+1.0e-1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal - with "1.0" - is expected to be an instance of BigDecimal - is expected to eql 0.1e1 - with ".1e-1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e-1 - with ".1e+1" - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal - with ".1E-1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e-1 - with "-1.0E+1" - is expected to be an instance of BigDecimal - is expected to eql -0.1e2 - with "+1.0e+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e2 - with "1" - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal - with "-1.0" - is expected to be an instance of BigDecimal - is expected to eql -0.1e1 - with "-1" - is expected to eql -0.1e1 - is expected to be an instance of BigDecimal - with an invalid decimal string - is expected to raise Coercible::UnsupportedCoercion - with "1.0E-1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal - with ".1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal - with "1.0e-1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal - with "+1" - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal - with "+1.0" - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal - with "+1.0E-1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal - with "+1.0E+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e2 - with "1.0E+1" - is expected to eql 0.1e2 - is expected to be an instance of BigDecimal - with "-1.0e+1" - is expected to be an instance of BigDecimal - is expected to eql -0.1e2 - with "-1.0e-1" - is expected to be an instance of BigDecimal - is expected to eql -0.1e0 - with ".1E+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e1 - with "1.0e+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e2 +Coercible::Coercer::Integer + behaves like Configurable + .config + is expected to be an instance of Coercible::Configuration + responds to configuration keys + .config_name + is expected to be an instance of Symbol + .config_name + is expected to equal :integer + .config_keys + is expected to be an instance of Array + is expected not to be empty -Coercible::Coercer::Array#to_set - is expected to eql "a", 1, "b", and 2 - is expected to be an instance of Set +Coercible::Coercer::String + behaves like Configurable + .config_name + is expected to equal :string + .config_keys + is expected to be an instance of Array + is expected not to be empty + .config_name + is expected to be an instance of Symbol + .config + is expected to be an instance of Coercible::Configuration + responds to configuration keys -Coercible::Coercer::String.to_boolean - with "F" - is expected to equal false - with "off" - is expected to equal false - with an invalid boolean string -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/string/to_boolean_spec.rb:28:in `block (3 levels) in '. - is expected to raise Exception - with "y" - is expected to equal true - with "0" - is expected to equal false - with "no" - is expected to equal false - with "FALSE" - is expected to equal false - with "false" - is expected to equal false - with "NO" - is expected to equal false - with "t" - is expected to equal true - with "Y" - is expected to equal true - with "TRUE" - is expected to equal true - with "YES" - is expected to equal true - with "yes" - is expected to equal true - with "OFF" - is expected to equal false - with "n" - is expected to equal false - with "true" - is expected to equal true - with "f" - is expected to equal false - with "on" - is expected to equal true - with "1" - is expected to equal true - with "N" - is expected to equal false - with "T" - is expected to equal true - with "ON" - is expected to equal true +Coercible::Coercer::Date.to_datetime + when Date supports #to_datetime + is expected to equal # + when Date does not support #to_datetime + is expected to be an instance of DateTime + is expected to eql # -Coercible::Coercer::Date.to_date - is expected to equal # +Coercible::Coercer::Integer.to_float + is expected to eql 1.0 + is expected to be an instance of Float Coercible::Coercer::String.to_float - with "1.0E+1" - is expected to eql 10.0 - is expected to be an instance of Float - with "+1" + with "+1.0" is expected to eql 1.0 is expected to be an instance of Float - with ".1E+1" - is expected to be an instance of Float - is expected to eql 1.0 - with "1e1" + with "-1e-1" is expected to be an instance of Float - is expected to eql 10.0 - with "+1.0E+1" + is expected to eql -0.1 + with "1E+1" is expected to be an instance of Float is expected to eql 10.0 - with "-1" - is expected to be an instance of Float - is expected to eql -1.0 - with "+1.0E-1" - is expected to eql 0.1 + with "-1.0E+1" is expected to be an instance of Float - with ".1e+1" + is expected to eql -10.0 + with ".1E-1" + is expected to eql 0.01 is expected to be an instance of Float - is expected to eql 1.0 - with ".1e-1" + with "-1.0E-1" + is expected to eql -0.1 is expected to be an instance of Float - is expected to eql 0.01 - with "1E+1" + with "-1.0e-1" is expected to be an instance of Float + is expected to eql -0.1 + with "+1.0e+1" is expected to eql 10.0 - with "1" + is expected to be an instance of Float + with "1.0" is expected to be an instance of Float is expected to eql 1.0 - with "+1e-1" + with "-1" + is expected to eql -1.0 is expected to be an instance of Float + string starts with e + is expected to raise Coercible::UnsupportedCoercion + with "+1.0E-1" is expected to eql 0.1 + is expected to be an instance of Float with "-1.0" - is expected to eql -1.0 is expected to be an instance of Float + is expected to eql -1.0 with "1.0e+1" is expected to eql 10.0 is expected to be an instance of Float - with an invalid float string - is expected to raise Coercible::UnsupportedCoercion - string starts with e - is expected to raise Coercible::UnsupportedCoercion - with "1.0e-1" + with "1.0E-1" is expected to be an instance of Float is expected to eql 0.1 - with "-1.0E-1" - is expected to eql -0.1 + with ".1e-1" + is expected to eql 0.01 is expected to be an instance of Float - with "1.0" + with ".1" + is expected to eql 0.1 + is expected to be an instance of Float + with "1.0E+1" + is expected to eql 10.0 is expected to be an instance of Float + with "1" + is expected to eql 1.0 + is expected to be an instance of Float + with an invalid float string + is expected to raise Coercible::UnsupportedCoercion + with "+1" is expected to eql 1.0 + is expected to be an instance of Float with "+1.0e-1" is expected to be an instance of Float is expected to eql 0.1 - with "-1.0e-1" + with ".1E+1" + is expected to eql 1.0 is expected to be an instance of Float - is expected to eql -0.1 - with ".1" + with "+1e-1" is expected to be an instance of Float is expected to eql 0.1 - with "-1e-1" - is expected to eql -0.1 - is expected to be an instance of Float with "-1.0e+1" - is expected to eql -10.0 is expected to be an instance of Float - with "-1.0E+1" is expected to eql -10.0 + with ".1e+1" + is expected to eql 1.0 is expected to be an instance of Float with "-1E1" - is expected to be an instance of Float is expected to eql -10.0 - with "1.0E-1" - is expected to eql 0.1 is expected to be an instance of Float - with ".1E-1" - is expected to eql 0.01 - is expected to be an instance of Float - with "+1.0e+1" + with "+1.0E+1" + is expected to eql 10.0 is expected to be an instance of Float + with "1e1" is expected to eql 10.0 - with "+1.0" - is expected to eql 1.0 is expected to be an instance of Float + with "1.0e-1" + is expected to eql 0.1 + is expected to be an instance of Float + +Coercible::Coercer::Integer.to_integer + is expected to equal 1 + +Coercible::Coercer::Integer.to_boolean + when the fixnum is 0 + is expected to equal false + when the fixnum is 1 + is expected to equal true + when the fixnum is not 1 or 0 + is expected to raise Coercible::UnsupportedCoercion + +Coercible::Coercer::Object.to_string + when the value responds to #to_str + is expected to equal # + when the value does not respond to #to_str + is expected to raise Coercible::UnsupportedCoercion + +Coercible::Coercer::Object#inspect + is expected to == "#" + +Coercible::Coercer::Decimal.to_float + is expected to eql 1.0 + is expected to be an instance of Float + +Coercible::Coercer::Integer.to_decimal + is expected to be an instance of BigDecimal + is expected to eql 0.1e1 + +Coercible::Coercer::DateTime.to_datetime + is expected to equal # + +Coercible::Coercer::DateTime.to_date + when DateTime supports #to_date + is expected to equal # + when DateTime does not support #to_date + is expected to eql # + is expected to be an instance of Date + +Coercible::Coercer::Configurable.config_name + is expected to equal :test Coercible::Coercer.new is expected to be an instance of Coercible::Coercer config is expected to respond to #string config - is expected to respond to #string= - config is expected to be an instance of Coercible::Configuration + config + is expected to respond to #string= -Coercible::Coercer::TimeCoercions.to_string +Coercible::Coercer::Integer#datetime_proc + with Rubinius + is expected to be an instance of Proc + with other Ruby VMs + is expected to be an instance of Proc + +Coercible::Coercer::TrueClass#coerced? + behaves like Coercible::Coercer#coerced? + with a primitive value + is expected to equal true + with a non-primitive value + is expected to equal false + +Coercible::Coercer::DateTime.to_string is expected to be an instance of String - is expected to eql "2011-01-01" + is expected to eql "2011-01-01T00:00:00+00:00" + +Coercible::Coercer#[] + with an unknown type + is expected to be an instance of Coercible::Coercer::Object + with a known type + is expected to be an instance of Coercible::Coercer::String + +Coercible::Coercer::Symbol#coerced? + behaves like Coercible::Coercer#coerced? + with a primitive value + is expected to equal true + with a non-primitive value + is expected to equal false + +Coercible::Configuration.build + is expected to respond to #foo= + is expected to respond to #foo + is expected to respond to #bar= + is expected to be an instance of Coercible::Configuration + is expected to respond to #bar + +Coercible::Coercer::String.config + boolean_map + is expected to equal {"0"=>false, "1"=>true, "f"=>false, "false"=>false, "n"=>false, "no"=>false, "off"=>false, "on"=>true, "t"=>true, "true"=>true, "y"=>true, "yes"=>true} + +Coercible::Coercer::TimeCoercions.to_date + when the value responds to #to_date + is expected to be an instance of Date + is expected to eql # + when the value does not respond to #to_date + is expected to eql # + is expected to be an instance of Date + +Coercible::Coercer::Date.to_date + is expected to equal # + +Coercible::Coercer::Array#to_set + is expected to be an instance of Set + is expected to eql "a", 1, "b", and 2 + +Coercible::Coercer::Hash.to_date + when time segments are integers + is expected to be an instance of Date + is expected to eql # + when time segments are missing + uses the Time now to populate the segments + is expected to be an instance of Date + when time segments are strings + is expected to be an instance of Date + is expected to eql # + +Coercible::Coercer::Time.to_time + is expected to equal 0, 0, 0, 1, 1, 2012, 0, 1, false, and "UTC" Coercible::Coercer::Object.to_hash when the value responds to #to_hash @@ -1220,487 +1526,217 @@ when the value does not respond to #to_hash is expected to raise Coercible::UnsupportedCoercion -Coercible::Coercer::String.config - boolean_map - is expected to equal {"0"=>false, "1"=>true, "f"=>false, "false"=>false, "n"=>false, "no"=>false, "off"=>false, "on"=>true, "t"=>true, "true"=>true, "y"=>true, "yes"=>true} +Coercible::Coercer::Time.to_integer + is expected to eql 1788633055 -Coercible::Coercer::Float#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true +Coercible::Coercer::String.to_symbol + is expected to equal :value Coercible::Coercer::Float.to_string is expected to eql "1.0" is expected to be an instance of String -Coercible::Coercer::Object#method_missing - when method doesn't match coercion method regexp - is expected to raise NoMethodError - when method matches coercion method regexp - is expected to equal # - Coercible::Coercer::String.to_integer - with ".1e+1" + with "+1.0e+1" + is expected to eql 10 is expected to be a kind of Integer - is expected to eql 1 - with an invalid integer string + string starts with e is expected to raise Coercible::UnsupportedCoercion - with "1" - is expected to be a kind of Integer - is expected to eql 1 - with "+1.0E-1" + with "1.0E-1" is expected to be a kind of Integer is expected to eql 0 - with "+1.0" - is expected to eql 1 - is expected to be a kind of Integer - with "+1.0e-1" + with "+1e-1" is expected to eql 0 is expected to be a kind of Integer - with "+1" + when integer string is big + is expected to == 334490140000101135 + with ".1e+1" + is expected to eql 1 + is expected to be a kind of Integer + with ".1E+1" is expected to be a kind of Integer is expected to eql 1 - with "1.0E+1" - is expected to eql 10 + with "1" + is expected to eql 1 is expected to be a kind of Integer - with "1e1" + with "-1E1" is expected to be a kind of Integer - is expected to eql 10 - with "1E+1" - is expected to eql 10 + is expected to eql -10 + with "-1e-1" is expected to be a kind of Integer - with "1.0e-1" is expected to eql 0 + with "+1.0E-1" + is expected to eql 0 + is expected to be a kind of Integer + with "-1.0" + is expected to eql -1 is expected to be a kind of Integer with "-1.0e-1" is expected to eql 0 is expected to be a kind of Integer - with "1.7976931348623158e+307" - is expected to eql 17976931348623157580412819756850388593900235011794141176754562789180111453639664485361928830517704263...0189893797509826303293149283469713429932049693599732425511693654044437030940398714664210204414967808 + with "1.0" + is expected to eql 1 is expected to be a kind of Integer + with an invalid integer string + is expected to raise Coercible::UnsupportedCoercion with ".1" - is expected to eql 0 is expected to be a kind of Integer - with "-1.0" + is expected to eql 0 + with ".1e-1" is expected to be a kind of Integer - is expected to eql -1 - with "-1e-1" is expected to eql 0 + with "1e1" is expected to be a kind of Integer + is expected to eql 10 with "-1" is expected to eql -1 is expected to be a kind of Integer + with ".1E-1" + is expected to eql 0 + is expected to be a kind of Integer + with "1.7976931348623158e+307" + is expected to eql 17976931348623157580412819756850388593900235011794141176754562789180111453639664485361928830517704263...0189893797509826303293149283469713429932049693599732425511693654044437030940398714664210204414967808 + is expected to be a kind of Integer with "-1.0e+1" is expected to be a kind of Integer is expected to eql -10 - with "1.0e+1" - is expected to be a kind of Integer - is expected to eql 10 - with "2.2250738585072014e-308" - is expected to eql 0 + with "+1.0" + is expected to eql 1 is expected to be a kind of Integer - with "1.0E-1" + with "1.0e-1" is expected to eql 0 is expected to be a kind of Integer - with "+1.0E+1" + with "-1.0E+1" + is expected to eql -10 is expected to be a kind of Integer - is expected to eql 10 - with ".1e-1" + with "2.2250738585072014e-308" is expected to eql 0 is expected to be a kind of Integer - with "+1e-1" - is expected to be a kind of Integer - is expected to eql 0 - with "-1.0E-1" + with "1.0e+1" is expected to be a kind of Integer + is expected to eql 10 + with "+1.0e-1" is expected to eql 0 - with "-1.0E+1" - is expected to be a kind of Integer - is expected to eql -10 - with "-1E1" is expected to be a kind of Integer - is expected to eql -10 - with "+1.0e+1" + with "+1.0E+1" is expected to eql 10 is expected to be a kind of Integer - with "1.0" + with "+1" is expected to be a kind of Integer is expected to eql 1 - with ".1E+1" - is expected to eql 1 + with "1E+1" + is expected to eql 10 is expected to be a kind of Integer - when integer string is big - is expected to == 334490140000101135 - string starts with e - is expected to raise Coercible::UnsupportedCoercion - with ".1E-1" + with "1.0E+1" + is expected to eql 10 is expected to be a kind of Integer + with "-1.0E-1" is expected to eql 0 - -Coercible::Coercer::FalseClass.to_string - is expected to be an instance of String - is expected to eql "false" - -Coercible::Coercer::Time.to_integer - is expected to eql 1754222829 - -Coercible::Coercer::DateTime.to_datetime - is expected to equal # - -Coercible::Coercer::Float#to_float - is expected to eql "2013-02-16 17:44:32.120" - -Coercible::Coercer::DateTime.to_date - when DateTime supports #to_date - is expected to equal # - when DateTime does not support #to_date - is expected to be an instance of Date - is expected to eql # - -Coercible::Coercer::DateTime#coerced? - behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true - with a non-primitive value - is expected to equal false - -Coercible::Coercer::Integer#datetime_format - with Rubinius - is expected to == "%Q" - with other Ruby VMs - is expected to == "%s" - -Coercible::Coercer::Object.to_array - when the value responds to #to_a but not #to_ary - is expected to equal # - when the value does not respond to #to_ary or #to_a - is expected to be an instance of Array - is expected to == [#] - when the value returns nil from #to_ary - wraps the value in an Array if #to_a is not available - calls #to_a as a fallback - when the value responds to #to_ary - is expected to equal # - does not call #to_a if #to_ary is available - -Coercible::Coercer::Date.to_string - is expected to eql "2011-01-01" - is expected to be an instance of String - -Coercible::Coercer::Date.to_datetime - when Date does not support #to_datetime - is expected to be an instance of DateTime - is expected to eql # - when Date supports #to_datetime - is expected to equal # - -Coercible::Coercer::TrueClass.to_string - is expected to eql "true" - is expected to be an instance of String - -Coercible::Coercer::String.to_time - with an invalid date time string - is expected to raise Coercible::UnsupportedCoercion - with a valid time string - including time part - it should behave like a correct time object - is expected to be an instance of Time - sec - is expected to == 50 - day - is expected to == 22 - hour - is expected to == 13 - month - is expected to == 7 - year - is expected to == 2011 - min - is expected to == 44 - not including time part - it should behave like a correct time object - is expected to be an instance of Time - sec - is expected to == 0 - min - is expected to == 0 - hour - is expected to == 0 - month - is expected to == 7 - day - is expected to == 22 - year - is expected to == 2011 - -Coercible::Coercer::Object.to_integer - when the value does not respond to #to_int - is expected to raise Coercible::UnsupportedCoercion - when the value responds to #to_int - is expected to equal # - -Coercible::Coercer::DateTime.to_time - when DateTime supports #to_time - is expected to equal 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - when DateTime does not support #to_time - is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - is expected to be an instance of Time - -Coercible::Coercer::String#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true - -Coercible::Coercer::String.to_datetime - with a valid date string - including time part - it should behave like a correct datetime object - is expected to be an instance of DateTime - day - is expected to == 22 - sec - is expected to == 50 - min - is expected to == 44 - hour - is expected to == 13 - year - is expected to == 2011 - month - is expected to == 7 - not including time part - it should behave like a correct datetime object - is expected to be an instance of DateTime - hour - is expected to == 0 - day - is expected to == 22 - min - is expected to == 0 - sec - is expected to == 0 - year - is expected to == 2011 - month - is expected to == 7 - with an invalid date time string - is expected to raise Coercible::UnsupportedCoercion - -Coercible::Coercer::Numeric.to_float - is expected to eql 1.0 - -Coercible::Coercer::TimeCoercions.to_datetime - when the value responds to #to_datetime - is expected to eql # - is expected to be an instance of DateTime - when the value does not respond to #to_datetime - is expected to be an instance of DateTime - is expected to eql # - -Coercible::Coercer::String.to_constant - when the name is invalid - is expected to raise NameError - when the name is unknown - is expected to raise NameError - with a namespaced qualified name - is expected to equal Coercible::Coercer::String - with a non-namespaced qualified name - is expected to equal String - with a namespaced name - is expected to equal Coercible::Coercer::String - with a name outside of the namespace - is expected to raise NameError - with a non-namespaced name - is expected to equal String - -Coercible::Coercer::Integer.to_integer - is expected to equal 1 + is expected to be a kind of Integer Coercible::Coercer::Numeric.to_string is expected to eql "1/1" -Coercible::Coercer::Integer#to_datetime - is expected to eql "2013-02-16 17:44:32.000" - Coercible::Coercer::Hash.to_time when time segments are strings is expected to eql 1, 1, 1, 1, 1, 2011, 6, 1, false, and "UTC" is expected to be an instance of Time when time segments are integers - is expected to be an instance of Time is expected to eql 1, 1, 1, 1, 1, 2011, 6, 1, false, and "UTC" + is expected to be an instance of Time when time segments are missing - uses the Time now to populate the segments is expected to be an instance of Time + uses the Time now to populate the segments -Coercible::Coercer::Decimal.to_decimal - is expected to equal 0.1e1 - -Coercible::Coercer::Integer.to_float - is expected to eql 1.0 - is expected to be an instance of Float - -Coercible::Coercer::Numeric.to_integer - is expected to eql 1 - -Coercible::Coercer::Decimal.to_string - is expected to eql "1.0" +Coercible::Coercer::FalseClass.to_string + is expected to eql "false" is expected to be an instance of String -Coercible::Coercer::Date#coerced? - behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true - with a non-primitive value - is expected to equal false - -Coercible::Coercer::TimeCoercions.to_date - when the value responds to #to_date - is expected to eql # - is expected to be an instance of Date - when the value does not respond to #to_date - is expected to eql # - is expected to be an instance of Date - -Coercible::Coercer::Float.to_integer - is expected to eql 1 - is expected to be a kind of Integer - -Coercible::Coercer::Hash#coerced? - behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true - with a non-primitive value - is expected to equal false - -Coercible::Coercer::Numeric.to_decimal - with an object responding to #to_d +Coercible::Coercer::String.to_decimal + with "1.0e-1" + is expected to eql 0.1e0 + is expected to be an instance of BigDecimal + with ".1E+1" is expected to eql 0.1e1 - with an object not responding to #to_d + is expected to be an instance of BigDecimal + with "1.0e+1" + is expected to eql 0.1e2 + is expected to be an instance of BigDecimal + with "-1.0E-1" + is expected to eql -0.1e0 + is expected to be an instance of BigDecimal + with "-1.0e-1" + is expected to be an instance of BigDecimal + is expected to eql -0.1e0 + with "-1" + is expected to be an instance of BigDecimal + is expected to eql -0.1e1 + with "-1.0" + is expected to eql -0.1e1 + is expected to be an instance of BigDecimal + with "-1.0E+1" + is expected to eql -0.1e2 + is expected to be an instance of BigDecimal + with "+1.0e+1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e2 + with "1.0" is expected to eql 0.1e1 - -Coercible::Coercer::TrueClass#coerced? - behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true - with a non-primitive value - is expected to equal false - -Configuring coercers -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/integration/configuring_coercers_spec.rb:12:in `block (2 levels) in '. - allows to configure coercers - -Coercible::Coercer::Symbol#coerced? - behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true - with a non-primitive value - is expected to equal false - -Coercible::Configuration.build - is expected to respond to #bar= - is expected to respond to #foo= - is expected to be an instance of Coercible::Configuration - is expected to respond to #bar - is expected to respond to #foo - -Coercible::Coercer::Integer#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true - -Coercible::Coercer::Configurable.config_name - is expected to equal :test - -Coercible::Coercer::Object.to_string - when the value does not respond to #to_str + is expected to be an instance of BigDecimal + with "+1.0e-1" + is expected to eql 0.1e0 + is expected to be an instance of BigDecimal + with ".1E-1" + is expected to eql 0.1e-1 + is expected to be an instance of BigDecimal + with "1" + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal + with "+1.0E-1" + is expected to eql 0.1e0 + is expected to be an instance of BigDecimal + with "1.0E-1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e0 + with "+1.0E+1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e2 + with "+1.0" + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal + with an invalid decimal string is expected to raise Coercible::UnsupportedCoercion - when the value responds to #to_str - is expected to equal # - -Coercible::Coercer::Decimal.to_integer - is expected to be a kind of Integer - is expected to eql 1 - -Coercible::Coercer::Configurable.config - is expected to equal # - -Coercible::Coercer::Hash.to_date - when time segments are strings - is expected to eql # - is expected to be an instance of Date - when time segments are integers - is expected to eql # - is expected to be an instance of Date - when time segments are missing - is expected to be an instance of Date - uses the Time now to populate the segments - -Coercible::Coercer::Date.to_time - is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - is expected to be an instance of Time - -Coercible::Coercer::DateTime.to_string - is expected to eql "2011-01-01T00:00:00+00:00" - is expected to be an instance of String + with ".1e+1" + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal + with ".1e-1" + is expected to eql 0.1e-1 + is expected to be an instance of BigDecimal + with "-1.0e+1" + is expected to eql -0.1e2 + is expected to be an instance of BigDecimal + with ".1" + is expected to eql 0.1e0 + is expected to be an instance of BigDecimal + with "+1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e1 + with "1.0E+1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e2 -Coercible::Coercer::Time#coerced? +Coercible::Coercer::DateTime#coerced? behaves like Coercible::Coercer#coerced? with a primitive value is expected to equal true with a non-primitive value is expected to equal false -Coercible::Coercer::Decimal.to_float - is expected to be an instance of Float - is expected to eql 1.0 - -Coercible::Coercer::Integer.to_boolean - when the fixnum is 1 - is expected to equal true - when the fixnum is 0 - is expected to equal false - when the fixnum is not 1 or 0 - is expected to raise Coercible::UnsupportedCoercion - -Coercible::Coercer::Decimal#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true - -Coercible::Coercer::String.to_symbol - is expected to equal :value - -Coercible::Coercer::Float.to_decimal - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal - -Coercible::Coercer#[] - with an unknown type - is expected to be an instance of Coercible::Coercer::Object - with a known type - is expected to be an instance of Coercible::Coercer::String - -Coercible::Coercer::Integer.to_string - is expected to eql "1" - is expected to be an instance of String - -Coercible::Coercer::Object#coerced? - is expected to equal true - Deprecation Warnings: RSpec::Core::Configuration#treat_symbols_as_metadata_keys_with_true_values= is deprecated, it is now set to true as default and setting it to false has no effect. -Using `stub` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/integer/datetime_proc_spec.rb:11:in `block (3 levels) in '. +Using `stub` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/configurable/config_spec.rb:18:in `block (2 levels) in '. If you need more of the backtrace for any of these deprecations to @@ -1710,54 +1746,54 @@ 2 deprecation warnings total -Top 10 slowest examples (0.0804 seconds, 18.4% of total time): - Coercible::Coercer::String.to_decimal with "+1.0E+1" is expected to be an instance of BigDecimal - 0.01777 seconds ./spec/unit/coercible/coercer/string/to_decimal_spec.rb:36 - Coercible::Coercer::Integer.to_decimal is expected to eql 0.1e1 - 0.01271 seconds ./spec/unit/coercible/coercer/integer/to_decimal_spec.rb:11 - Coercible::Coercer::String.to_float with an invalid float string is expected to raise Coercible::UnsupportedCoercion - 0.01007 seconds ./spec/unit/coercible/coercer/string/to_float_spec.rb:48 - Coercible::Coercer::String.to_integer with "1e1" is expected to eql 10 - 0.00959 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:46 - Coercible::Coercer::String.to_datetime with a valid date string including time part it should behave like a correct datetime object month is expected to == 7 - 0.00721 seconds ./spec/unit/coercible/coercer/string/to_datetime_spec.rb:7 - Coercible::Coercer::String.to_date with a valid date string month is expected to == 7 - 0.00481 seconds ./spec/unit/coercible/coercer/string/to_date_spec.rb:14 - Coercible::Coercer::String.to_float with "1.0E+1" is expected to eql 10.0 - 0.0047 seconds ./spec/unit/coercible/coercer/string/to_float_spec.rb:41 - Coercible::Coercer::String.to_float with "1E+1" is expected to be an instance of Float - 0.00462 seconds ./spec/unit/coercible/coercer/string/to_float_spec.rb:39 - Coercible::Coercer::String.to_float with "1.0e+1" is expected to eql 10.0 - 0.00447 seconds ./spec/unit/coercible/coercer/string/to_float_spec.rb:41 - Coercible::Coercer::String.to_float with "+1.0E+1" is expected to be an instance of Float - 0.00446 seconds ./spec/unit/coercible/coercer/string/to_float_spec.rb:39 +Top 10 slowest examples (0.06924 seconds, 22.7% of total time): + Coercible::Coercer::TimeCoercions.to_time when the value does not respond to #to_time is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + 0.01134 seconds ./spec/unit/coercible/coercer/time_coercions/to_time_spec.rb:36 + Coercible::Coercer::String.to_float string starts with e is expected to raise Coercible::UnsupportedCoercion + 0.01007 seconds ./spec/unit/coercible/coercer/string/to_float_spec.rb:54 + Coercible::Coercer::String.to_datetime with a valid date string including time part it should behave like a correct datetime object day is expected to == 22 + 0.00991 seconds ./spec/unit/coercible/coercer/string/to_datetime_spec.rb:8 + Coercible::Coercer::TimeCoercions.to_datetime when the value responds to #to_datetime is expected to eql # + 0.00928 seconds ./spec/unit/coercible/coercer/time_coercions/to_datetime_spec.rb:23 + Coercible::Coercer::Configurable.config_name is expected to equal :test + 0.00879 seconds ./spec/unit/coercible/coercer/configurable/config_name_spec.rb:17 + Coercible::Coercer::String.to_integer with "+1e-1" is expected to eql 0 + 0.00785 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:46 + Coercible::Coercer::String.to_integer with "2.2250738585072014e-308" is expected to eql 0 + 0.00359 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:46 + Coercible::Coercer::String.to_integer with "1.7976931348623158e+307" is expected to eql 17976931348623157580412819756850388593900235011794141176754562789180111453639664485361928830517704263...0189893797509826303293149283469713429932049693599732425511693654044437030940398714664210204414967808 + 0.00306 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:46 + Coercible::Coercer::String.to_integer with ".1E-1" is expected to be a kind of Integer + 0.00272 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:44 + Coercible::Coercer::String.to_integer with "1.0e-1" is expected to eql 0 + 0.00264 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:46 Top 10 slowest example groups: - Coercible::Coercer::Integer.to_decimal - 0.00669 seconds average (0.01338 seconds / 2 examples) ./spec/unit/coercible/coercer/integer/to_decimal_spec.rb:3 - Coercible::Coercer::Integer#datetime_format - 0.00498 seconds average (0.00995 seconds / 2 examples) ./spec/unit/coercible/coercer/integer/datetime_format_spec.rb:3 - Coercible::Coercer::FalseClass#coerced? - 0.00281 seconds average (0.00562 seconds / 2 examples) ./spec/unit/coercible/coercer/false_class/coerced_predicate_spec.rb:3 - Coercible::Coercer::Date#coerced? - 0.00267 seconds average (0.00534 seconds / 2 examples) ./spec/unit/coercible/coercer/date/coerced_predicate_spec.rb:3 - Coercible::Coercer::TimeCoercions.to_date - 0.00263 seconds average (0.01053 seconds / 4 examples) ./spec/unit/coercible/coercer/time_coercions/to_date_spec.rb:3 + Coercible::Coercer::Configurable.config_name + 0.00901 seconds average (0.00901 seconds / 1 example) ./spec/unit/coercible/coercer/configurable/config_name_spec.rb:3 Coercible::Coercer::TimeCoercions.to_time - 0.00244 seconds average (0.00976 seconds / 4 examples) ./spec/unit/coercible/coercer/time_coercions/to_time_spec.rb:3 - Coercible::Coercer::Hash.to_time - 0.00232 seconds average (0.01395 seconds / 6 examples) ./spec/unit/coercible/coercer/hash/to_time_spec.rb:3 - Coercible::Coercer::String.to_date - 0.00222 seconds average (0.01109 seconds / 5 examples) ./spec/unit/coercible/coercer/string/to_date_spec.rb:3 - Coercible::Coercer::Decimal.to_decimal - 0.00204 seconds average (0.00204 seconds / 1 example) ./spec/unit/coercible/coercer/decimal/to_decimal_spec.rb:3 - Coercible::Coercer::Hash.to_datetime - 0.00197 seconds average (0.01181 seconds / 6 examples) ./spec/unit/coercible/coercer/hash/to_datetime_spec.rb:3 + 0.00346 seconds average (0.01385 seconds / 4 examples) ./spec/unit/coercible/coercer/time_coercions/to_time_spec.rb:3 + Coercible::Coercer::TimeCoercions.to_datetime + 0.00327 seconds average (0.01308 seconds / 4 examples) ./spec/unit/coercible/coercer/time_coercions/to_datetime_spec.rb:3 + Coercible::Coercer::Configurable.config + 0.0022 seconds average (0.0022 seconds / 1 example) ./spec/unit/coercible/coercer/configurable/config_spec.rb:3 + Coercible::Coercer::String.to_datetime + 0.00125 seconds average (0.01872 seconds / 15 examples) ./spec/unit/coercible/coercer/string/to_datetime_spec.rb:14 + Coercible::Coercer::String.to_integer + 0.00109 seconds average (0.0686 seconds / 63 examples) ./spec/unit/coercible/coercer/string/to_integer_spec.rb:3 + Configuring coercers + 0.00106 seconds average (0.00106 seconds / 1 example) ./spec/integration/configuring_coercers_spec.rb:3 + Coercible::Coercer::String.config + 0.00092 seconds average (0.00092 seconds / 1 example) ./spec/unit/coercible/coercer/string/class_methods/config_spec.rb:3 + Coercible::Coercer::Float.to_integer + 0.0009 seconds average (0.0018 seconds / 2 examples) ./spec/unit/coercible/coercer/float/to_integer_spec.rb:3 + Coercible::Coercer::String.to_time + 0.00088 seconds average (0.01318 seconds / 15 examples) ./spec/unit/coercible/coercer/string/to_time_spec.rb:14 -Finished in 0.43645 seconds (files took 0.48903 seconds to load) +Finished in 0.30481 seconds (files took 0.25913 seconds to load) 396 examples, 0 failures -Randomized with seed 43599 +Randomized with seed 27291 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1792,12 +1828,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/917384/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/917384/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/1318723 and its subdirectories -I: Current time: Sun Aug 3 00:07:13 -12 2025 -I: pbuilder-time-stamp: 1754222833 +I: removing directory /srv/workspace/pbuilder/917384 and its subdirectories +I: Current time: Sun Sep 6 08:30:59 +14 2026 +I: pbuilder-time-stamp: 1788633059