# New Ticket Created by Zoffix Znet
# Please include the string: [perl #130786]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=130786 >
The Failure has DESTROY submethod[^1] with a comment above it saying "Shouldn't
happen". But I did manage to make it happen,
but only on a 32-bit box. I have both 64-bit and 32-bit boxes with
2017.01-121-gf94cb21 on them and the warning
happens only on the 32-bit box.
Attached are the program and the output it generated. The warnings appear
around test 100.
[1]
https://github.com/rakudo/rakudo/blob/b51a5505a6b766e6be1861f4f6d08a0986b1a7ac/src/core/Failure.pm#L34-L35
$ perl6 foo.p6
ok 1 - 3..4 ~~ -1/0..1/0
ok 2 - 0/0..0/0 ~~ -1/0..1/0
ok 3 - 2..3 ~~ 2..3
ok 4 - "2".."3" ~~ 2..3
ok 5 - 2.0..3.0 ~~ 2..3
ok 6 - 2..3 ~~ 2..3
ok 7 - 2.5..2.8 ~~ 2..3
ok 8 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2..3
ok 9 - 2..FatRat.new(3, 1) ~~ 2..3
ok 10 - 2e0..FatRat.new(3, 1) ~~ 2..3
ok 11 - 2.5..FatRat.new(3, 1) ~~ 2..3
ok 12 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2..3
ok 13 - 1..3 ~~ 2..3
ok 14 - "2".."4" ~~ 2..3
ok 15 - -2..5.0 ~~ 2..3
ok 16 - -10..10 ~~ 2..3
ok 17 - 2.5..6.5 ~~ 2..3
ok 18 - 1^..3 ~~ 2..3
ok 19 - "2"..^"4" ~~ 2..3
ok 20 - "1"^..^3 ~~ 2..3
ok 21 - <0/0>..<0/0> ~~ 2..3
ok 22 - FatRat.new(3, 1)..10 ~~ 2..3
ok 23 - -2e0..FatRat.new(2, 1) ~~ 2..3
ok 24 - 2..3 ~~ 2..3e0
ok 25 - "2".."3" ~~ 2..3e0
ok 26 - 2.0..3.0 ~~ 2..3e0
ok 27 - 2..3 ~~ 2..3e0
ok 28 - 2.5..2.8 ~~ 2..3e0
ok 29 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2..3e0
ok 30 - 2..FatRat.new(3, 1) ~~ 2..3e0
ok 31 - 2e0..FatRat.new(3, 1) ~~ 2..3e0
ok 32 - 2.5..FatRat.new(3, 1) ~~ 2..3e0
ok 33 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2..3e0
ok 34 - 1..3 ~~ 2..3e0
ok 35 - "2".."4" ~~ 2..3e0
ok 36 - -2..5.0 ~~ 2..3e0
ok 37 - -10..10 ~~ 2..3e0
ok 38 - 2.5..6.5 ~~ 2..3e0
ok 39 - 1^..3 ~~ 2..3e0
ok 40 - "2"..^"4" ~~ 2..3e0
ok 41 - "1"^..^3 ~~ 2..3e0
ok 42 - <0/0>..<0/0> ~~ 2..3e0
ok 43 - FatRat.new(3, 1)..10 ~~ 2..3e0
ok 44 - -2e0..FatRat.new(2, 1) ~~ 2..3e0
ok 45 - 2..3 ~~ 2..3.0
ok 46 - "2".."3" ~~ 2..3.0
ok 47 - 2.0..3.0 ~~ 2..3.0
ok 48 - 2..3 ~~ 2..3.0
ok 49 - 2.5..2.8 ~~ 2..3.0
ok 50 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2..3.0
ok 51 - 2..FatRat.new(3, 1) ~~ 2..3.0
ok 52 - 2e0..FatRat.new(3, 1) ~~ 2..3.0
ok 53 - 2.5..FatRat.new(3, 1) ~~ 2..3.0
ok 54 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2..3.0
ok 55 - 1..3 ~~ 2..3.0
ok 56 - "2".."4" ~~ 2..3.0
ok 57 - -2..5.0 ~~ 2..3.0
ok 58 - -10..10 ~~ 2..3.0
ok 59 - 2.5..6.5 ~~ 2..3.0
ok 60 - 1^..3 ~~ 2..3.0
ok 61 - "2"..^"4" ~~ 2..3.0
ok 62 - "1"^..^3 ~~ 2..3.0
ok 63 - <0/0>..<0/0> ~~ 2..3.0
ok 64 - FatRat.new(3, 1)..10 ~~ 2..3.0
ok 65 - -2e0..FatRat.new(2, 1) ~~ 2..3.0
ok 66 - 2..3 ~~ 2..FatRat.new(3, 1)
ok 67 - "2".."3" ~~ 2..FatRat.new(3, 1)
ok 68 - 2.0..3.0 ~~ 2..FatRat.new(3, 1)
ok 69 - 2..3 ~~ 2..FatRat.new(3, 1)
ok 70 - 2.5..2.8 ~~ 2..FatRat.new(3, 1)
ok 71 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2..FatRat.new(3, 1)
ok 72 - 2..FatRat.new(3, 1) ~~ 2..FatRat.new(3, 1)
ok 73 - 2e0..FatRat.new(3, 1) ~~ 2..FatRat.new(3, 1)
ok 74 - 2.5..FatRat.new(3, 1) ~~ 2..FatRat.new(3, 1)
ok 75 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2..FatRat.new(3, 1)
ok 76 - 1..3 ~~ 2..FatRat.new(3, 1)
ok 77 - "2".."4" ~~ 2..FatRat.new(3, 1)
ok 78 - -2..5.0 ~~ 2..FatRat.new(3, 1)
ok 79 - -10..10 ~~ 2..FatRat.new(3, 1)
ok 80 - 2.5..6.5 ~~ 2..FatRat.new(3, 1)
ok 81 - 1^..3 ~~ 2..FatRat.new(3, 1)
ok 82 - "2"..^"4" ~~ 2..FatRat.new(3, 1)
ok 83 - "1"^..^3 ~~ 2..FatRat.new(3, 1)
ok 84 - <0/0>..<0/0> ~~ 2..FatRat.new(3, 1)
ok 85 - FatRat.new(3, 1)..10 ~~ 2..FatRat.new(3, 1)
ok 86 - -2e0..FatRat.new(2, 1) ~~ 2..FatRat.new(3, 1)
ok 87 - 2..3 ~~ 2e0..3
ok 88 - "2".."3" ~~ 2e0..3
ok 89 - 2.0..3.0 ~~ 2e0..3
ok 90 - 2..3 ~~ 2e0..3
ok 91 - 2.5..2.8 ~~ 2e0..3
ok 92 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2e0..3
ok 93 - 2..FatRat.new(3, 1) ~~ 2e0..3
ok 94 - 2e0..FatRat.new(3, 1) ~~ 2e0..3
ok 95 - 2.5..FatRat.new(3, 1) ~~ 2e0..3
ok 96 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2e0..3
ok 97 - 1..3 ~~ 2e0..3
ok 98 - "2".."4" ~~ 2e0..3
ok 99 - -2..5.0 ~~ 2e0..3
ok 100 - -10..10 ~~ 2e0..3
ok 101 - 2.5..6.5 ~~ 2e0..3
ok 102 - 1^..3 ~~ 2e0..3
ok 103 - "2"..^"4" ~~ 2e0..3
ok 104 - "1"^..^3 ~~ 2e0..3
ok 105 - <0/0>..<0/0> ~~ 2e0..3
ok 106 - FatRat.new(3, 1)..10 ~~ 2e0..3
ok 107 - -2e0..FatRat.new(2, 1) ~~ 2e0..3
ok 108 - 2..3 ~~ 2e0..3e0
ok 109 - "2".."3" ~~ 2e0..3e0
ok 110 - 2.0..3.0 ~~ 2e0..3e0
ok 111 - 2..3 ~~ 2e0..3e0
ok 112 - 2.5..2.8 ~~ 2e0..3e0
ok 113 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2e0..3e0
ok 114 - 2..FatRat.new(3, 1) ~~ 2e0..3e0
ok 115 - 2e0..FatRat.new(3, 1) ~~ 2e0..3e0
ok 116 - 2.5..FatRat.new(3, 1) ~~ 2e0..3e0
ok 117 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2e0..3e0
ok 118 - 1..3 ~~ 2e0..3e0
ok 119 - "2".."4" ~~ 2e0..3e0
ok 120 - -2..5.0 ~~ 2e0..3e0
ok 121 - -10..10 ~~ 2e0..3e0
ok 122 - 2.5..6.5 ~~ 2e0..3e0
ok 123 - 1^..3 ~~ 2e0..3e0
ok 124 - "2"..^"4" ~~ 2e0..3e0
ok 125 - "1"^..^3 ~~ 2e0..3e0
ok 126 - <0/0>..<0/0> ~~ 2e0..3e0
ok 127 - FatRat.new(3, 1)..10 ~~ 2e0..3e0
ok 128 - -2e0..FatRat.new(2, 1) ~~ 2e0..3e0
ok 129 - 2..3 ~~ 2e0..3.0
ok 130 - "2".."3" ~~ 2e0..3.0
ok 131 - 2.0..3.0 ~~ 2e0..3.0
ok 132 - 2..3 ~~ 2e0..3.0
ok 133 - 2.5..2.8 ~~ 2e0..3.0
ok 134 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2e0..3.0
ok 135 - 2..FatRat.new(3, 1) ~~ 2e0..3.0
ok 136 - 2e0..FatRat.new(3, 1) ~~ 2e0..3.0
ok 137 - 2.5..FatRat.new(3, 1) ~~ 2e0..3.0
ok 138 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2e0..3.0
ok 139 - 1..3 ~~ 2e0..3.0
ok 140 - "2".."4" ~~ 2e0..3.0
ok 141 - -2..5.0 ~~ 2e0..3.0
ok 142 - -10..10 ~~ 2e0..3.0
ok 143 - 2.5..6.5 ~~ 2e0..3.0
ok 144 - 1^..3 ~~ 2e0..3.0
ok 145 - "2"..^"4" ~~ 2e0..3.0
ok 146 - "1"^..^3 ~~ 2e0..3.0
ok 147 - <0/0>..<0/0> ~~ 2e0..3.0
ok 148 - FatRat.new(3, 1)..10 ~~ 2e0..3.0
ok 149 - -2e0..FatRat.new(2, 1) ~~ 2e0..3.0
ok 150 - 2..3 ~~ 2e0..FatRat.new(3, 1)
ok 151 - "2".."3" ~~ 2e0..FatRat.new(3, 1)
ok 152 - 2.0..3.0 ~~ 2e0..FatRat.new(3, 1)
ok 153 - 2..3 ~~ 2e0..FatRat.new(3, 1)
ok 154 - 2.5..2.8 ~~ 2e0..FatRat.new(3, 1)
ok 155 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2e0..FatRat.new(3, 1)
ok 156 - 2..FatRat.new(3, 1) ~~ 2e0..FatRat.new(3, 1)
ok 157 - 2e0..FatRat.new(3, 1) ~~ 2e0..FatRat.new(3, 1)
ok 158 - 2.5..FatRat.new(3, 1) ~~ 2e0..FatRat.new(3, 1)
ok 159 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2e0..FatRat.new(3, 1)
ok 160 - 1..3 ~~ 2e0..FatRat.new(3, 1)
ok 161 - "2".."4" ~~ 2e0..FatRat.new(3, 1)
ok 162 - -2..5.0 ~~ 2e0..FatRat.new(3, 1)
ok 163 - -10..10 ~~ 2e0..FatRat.new(3, 1)
ok 164 - 2.5..6.5 ~~ 2e0..FatRat.new(3, 1)
ok 165 - 1^..3 ~~ 2e0..FatRat.new(3, 1)
ok 166 - "2"..^"4" ~~ 2e0..FatRat.new(3, 1)
ok 167 - "1"^..^3 ~~ 2e0..FatRat.new(3, 1)
ok 168 - <0/0>..<0/0> ~~ 2e0..FatRat.new(3, 1)
ok 169 - FatRat.new(3, 1)..10 ~~ 2e0..FatRat.new(3, 1)
ok 170 - -2e0..FatRat.new(2, 1) ~~ 2e0..FatRat.new(3, 1)
ok 171 - 2..3 ~~ 2.0..3
ok 172 - "2".."3" ~~ 2.0..3
ok 173 - 2.0..3.0 ~~ 2.0..3
ok 174 - 2..3 ~~ 2.0..3
ok 175 - 2.5..2.8 ~~ 2.0..3
ok 176 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2.0..3
ok 177 - 2..FatRat.new(3, 1) ~~ 2.0..3
ok 178 - 2e0..FatRat.new(3, 1) ~~ 2.0..3
ok 179 - 2.5..FatRat.new(3, 1) ~~ 2.0..3
ok 180 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2.0..3
ok 181 - 1..3 ~~ 2.0..3
ok 182 - "2".."4" ~~ 2.0..3
ok 183 - -2..5.0 ~~ 2.0..3
ok 184 - -10..10 ~~ 2.0..3
ok 185 - 2.5..6.5 ~~ 2.0..3
ok 186 - 1^..3 ~~ 2.0..3
ok 187 - "2"..^"4" ~~ 2.0..3
ok 188 - "1"^..^3 ~~ 2.0..3
ok 189 - <0/0>..<0/0> ~~ 2.0..3
ok 190 - FatRat.new(3, 1)..10 ~~ 2.0..3
ok 191 - -2e0..FatRat.new(2, 1) ~~ 2.0..3
ok 192 - 2..3 ~~ 2.0..3e0
ok 193 - "2".."3" ~~ 2.0..3e0
ok 194 - 2.0..3.0 ~~ 2.0..3e0
ok 195 - 2..3 ~~ 2.0..3e0
ok 196 - 2.5..2.8 ~~ 2.0..3e0
ok 197 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2.0..3e0
ok 198 - 2..FatRat.new(3, 1) ~~ 2.0..3e0
ok 199 - 2e0..FatRat.new(3, 1) ~~ 2.0..3e0
ok 200 - 2.5..FatRat.new(3, 1) ~~ 2.0..3e0
ok 201 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2.0..3e0
ok 202 - 1..3 ~~ 2.0..3e0
ok 203 - "2".."4" ~~ 2.0..3e0
ok 204 - -2..5.0 ~~ 2.0..3e0
ok 205 - -10..10 ~~ 2.0..3e0
ok 206 - 2.5..6.5 ~~ 2.0..3e0
ok 207 - 1^..3 ~~ 2.0..3e0
ok 208 - "2"..^"4" ~~ 2.0..3e0
ok 209 - "1"^..^3 ~~ 2.0..3e0
ok 210 - <0/0>..<0/0> ~~ 2.0..3e0
ok 211 - FatRat.new(3, 1)..10 ~~ 2.0..3e0
ok 212 - -2e0..FatRat.new(2, 1) ~~ 2.0..3e0
ok 213 - 2..3 ~~ 2.0..3.0
ok 214 - "2".."3" ~~ 2.0..3.0
ok 215 - 2.0..3.0 ~~ 2.0..3.0
ok 216 - 2..3 ~~ 2.0..3.0
ok 217 - 2.5..2.8 ~~ 2.0..3.0
ok 218 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2.0..3.0
ok 219 - 2..FatRat.new(3, 1) ~~ 2.0..3.0
ok 220 - 2e0..FatRat.new(3, 1) ~~ 2.0..3.0
ok 221 - 2.5..FatRat.new(3, 1) ~~ 2.0..3.0
ok 222 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2.0..3.0
ok 223 - 1..3 ~~ 2.0..3.0
ok 224 - "2".."4" ~~ 2.0..3.0
ok 225 - -2..5.0 ~~ 2.0..3.0
ok 226 - -10..10 ~~ 2.0..3.0
ok 227 - 2.5..6.5 ~~ 2.0..3.0
ok 228 - 1^..3 ~~ 2.0..3.0
ok 229 - "2"..^"4" ~~ 2.0..3.0
ok 230 - "1"^..^3 ~~ 2.0..3.0
ok 231 - <0/0>..<0/0> ~~ 2.0..3.0
ok 232 - FatRat.new(3, 1)..10 ~~ 2.0..3.0
ok 233 - -2e0..FatRat.new(2, 1) ~~ 2.0..3.0
ok 234 - 2..3 ~~ 2.0..FatRat.new(3, 1)
ok 235 - "2".."3" ~~ 2.0..FatRat.new(3, 1)
ok 236 - 2.0..3.0 ~~ 2.0..FatRat.new(3, 1)
ok 237 - 2..3 ~~ 2.0..FatRat.new(3, 1)
ok 238 - 2.5..2.8 ~~ 2.0..FatRat.new(3, 1)
ok 239 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ 2.0..FatRat.new(3, 1)
ok 240 - 2..FatRat.new(3, 1) ~~ 2.0..FatRat.new(3, 1)
ok 241 - 2e0..FatRat.new(3, 1) ~~ 2.0..FatRat.new(3, 1)
ok 242 - 2.5..FatRat.new(3, 1) ~~ 2.0..FatRat.new(3, 1)
ok 243 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ 2.0..FatRat.new(3, 1)
ok 244 - 1..3 ~~ 2.0..FatRat.new(3, 1)
ok 245 - "2".."4" ~~ 2.0..FatRat.new(3, 1)
ok 246 - -2..5.0 ~~ 2.0..FatRat.new(3, 1)
ok 247 - -10..10 ~~ 2.0..FatRat.new(3, 1)
ok 248 - 2.5..6.5 ~~ 2.0..FatRat.new(3, 1)
ok 249 - 1^..3 ~~ 2.0..FatRat.new(3, 1)
ok 250 - "2"..^"4" ~~ 2.0..FatRat.new(3, 1)
ok 251 - "1"^..^3 ~~ 2.0..FatRat.new(3, 1)
ok 252 - <0/0>..<0/0> ~~ 2.0..FatRat.new(3, 1)
ok 253 - FatRat.new(3, 1)..10 ~~ 2.0..FatRat.new(3, 1)
ok 254 - -2e0..FatRat.new(2, 1) ~~ 2.0..FatRat.new(3, 1)
ok 255 - 2..3 ~~ FatRat.new(2, 1)..3
ok 256 - "2".."3" ~~ FatRat.new(2, 1)..3
ok 257 - 2.0..3.0 ~~ FatRat.new(2, 1)..3
ok 258 - 2..3 ~~ FatRat.new(2, 1)..3
ok 259 - 2.5..2.8 ~~ FatRat.new(2, 1)..3
ok 260 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..3
ok 261 - 2..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..3
ok 262 - 2e0..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..3
ok 263 - 2.5..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..3
ok 264 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..3
ok 265 - 1..3 ~~ FatRat.new(2, 1)..3
ok 266 - "2".."4" ~~ FatRat.new(2, 1)..3
ok 267 - -2..5.0 ~~ FatRat.new(2, 1)..3
ok 268 - -10..10 ~~ FatRat.new(2, 1)..3
ok 269 - 2.5..6.5 ~~ FatRat.new(2, 1)..3
ok 270 - 1^..3 ~~ FatRat.new(2, 1)..3
ok 271 - "2"..^"4" ~~ FatRat.new(2, 1)..3
ok 272 - "1"^..^3 ~~ FatRat.new(2, 1)..3
ok 273 - <0/0>..<0/0> ~~ FatRat.new(2, 1)..3
ok 274 - FatRat.new(3, 1)..10 ~~ FatRat.new(2, 1)..3
ok 275 - -2e0..FatRat.new(2, 1) ~~ FatRat.new(2, 1)..3
ok 276 - 2..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 277 - "2".."3" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 278 - 2.0..3.0 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 279 - 2..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 280 - 2.5..2.8 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 281 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ FatRat.new(2,
1)..FatRat.new(3, 1)
ok 282 - 2..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 283 - 2e0..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 284 - 2.5..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 285 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ FatRat.new(2,
1)..FatRat.new(3, 1)
ok 286 - 1..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 287 - "2".."4" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 288 - -2..5.0 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 289 - -10..10 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 290 - 2.5..6.5 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 291 - 1^..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 292 - "2"..^"4" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 293 - "1"^..^3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 294 - <0/0>..<0/0> ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 295 - FatRat.new(3, 1)..10 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 296 - -2e0..FatRat.new(2, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 297 - 2..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 298 - "2".."3" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 299 - 2.0..3.0 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 300 - 2..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 301 - 2.5..2.8 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 302 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ FatRat.new(2,
1)..FatRat.new(3, 1)
ok 303 - 2..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 304 - 2e0..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 305 - 2.5..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 306 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ FatRat.new(2,
1)..FatRat.new(3, 1)
ok 307 - 1..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 308 - "2".."4" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 309 - -2..5.0 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 310 - -10..10 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 311 - 2.5..6.5 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 312 - 1^..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 313 - "2"..^"4" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 314 - "1"^..^3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 315 - <0/0>..<0/0> ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 316 - FatRat.new(3, 1)..10 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 317 - -2e0..FatRat.new(2, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 318 - 2..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 319 - "2".."3" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 320 - 2.0..3.0 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 321 - 2..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 322 - 2.5..2.8 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 323 - FatRat.new(2, 1)..FatRat.new(3, 1) ~~ FatRat.new(2,
1)..FatRat.new(3, 1)
ok 324 - 2..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 325 - 2e0..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 326 - 2.5..FatRat.new(3, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 327 - FatRat.new(3, 1)..FatRat.new(3, 1) ~~ FatRat.new(2,
1)..FatRat.new(3, 1)
ok 328 - 1..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 329 - "2".."4" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 330 - -2..5.0 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 331 - -10..10 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 332 - 2.5..6.5 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 333 - 1^..3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 334 - "2"..^"4" ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 335 - "1"^..^3 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 336 - <0/0>..<0/0> ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 337 - FatRat.new(3, 1)..10 ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
ok 338 - -2e0..FatRat.new(2, 1) ~~ FatRat.new(2, 1)..FatRat.new(3, 1)
1..338
ok 1 - smartmatch against numeric range
1..8
# Looks like you planned 8 tests, but ran 0
not ok 2 - smartmatch of string ranges
# Failed test 'smartmatch of string ranges'
# at foo.p6 line 23
not ok 1 - 0..10 ~~ "0"..3
# Failed test '0..10 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 2 - 0..FatRat.new(10, 1) ~~ "0"..3
# Failed test '0..FatRat.new(10, 1) ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 3 - 0..10e0 ~~ "0"..3
# Failed test '0..10e0 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 4 - 0..10.0 ~~ "0"..3
# Failed test '0..10.0 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 5 - 0..10.0 ~~ "0"..3
# Failed test '0..10.0 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 6 - 0e0..10 ~~ "0"..3
# Failed test '0e0..10 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 7 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..3
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 8 - 0.0..10e0 ~~ "0"..3
# Failed test '0.0..10e0 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 9 - 0e0..10.0 ~~ "0"..3
# Failed test '0e0..10.0 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 10 - 0e0..10.0 ~~ "0"..3
# Failed test '0e0..10.0 ~~ "0"..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 11 - 0..30 ~~ "0"..3
ok 12 - 0..FatRat.new(30, 1) ~~ "0"..3
ok 13 - 0..30e0 ~~ "0"..3
ok 14 - 0..30.0 ~~ "0"..3
ok 15 - 0..30.0 ~~ "0"..3
ok 16 - 0e0..30 ~~ "0"..3
ok 17 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ "0"..3
ok 18 - 0.0..30e0 ~~ "0"..3
ok 19 - 0e0..30.0 ~~ "0"..3
ok 20 - 0e0..30.0 ~~ "0"..3
not ok 21 - 0..10 ~~ "0"..3.0
# Failed test '0..10 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 22 - 0..FatRat.new(10, 1) ~~ "0"..3.0
# Failed test '0..FatRat.new(10, 1) ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 23 - 0..10e0 ~~ "0"..3.0
# Failed test '0..10e0 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 24 - 0..10.0 ~~ "0"..3.0
# Failed test '0..10.0 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 25 - 0..10.0 ~~ "0"..3.0
# Failed test '0..10.0 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 26 - 0e0..10 ~~ "0"..3.0
# Failed test '0e0..10 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 27 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..3.0
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 28 - 0.0..10e0 ~~ "0"..3.0
# Failed test '0.0..10e0 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 29 - 0e0..10.0 ~~ "0"..3.0
# Failed test '0e0..10.0 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 30 - 0e0..10.0 ~~ "0"..3.0
# Failed test '0e0..10.0 ~~ "0"..3.0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 31 - 0..30 ~~ "0"..3.0
ok 32 - 0..FatRat.new(30, 1) ~~ "0"..3.0
ok 33 - 0..30e0 ~~ "0"..3.0
ok 34 - 0..30.0 ~~ "0"..3.0
ok 35 - 0..30.0 ~~ "0"..3.0
ok 36 - 0e0..30 ~~ "0"..3.0
ok 37 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ "0"..3.0
ok 38 - 0.0..30e0 ~~ "0"..3.0
ok 39 - 0e0..30.0 ~~ "0"..3.0
ok 40 - 0e0..30.0 ~~ "0"..3.0
not ok 41 - 0..10 ~~ "0"..3e0
# Failed test '0..10 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 42 - 0..FatRat.new(10, 1) ~~ "0"..3e0
# Failed test '0..FatRat.new(10, 1) ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 43 - 0..10e0 ~~ "0"..3e0
# Failed test '0..10e0 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 44 - 0..10.0 ~~ "0"..3e0
# Failed test '0..10.0 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 45 - 0..10.0 ~~ "0"..3e0
# Failed test '0..10.0 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 46 - 0e0..10 ~~ "0"..3e0
# Failed test '0e0..10 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 47 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..3e0
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 48 - 0.0..10e0 ~~ "0"..3e0
# Failed test '0.0..10e0 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 49 - 0e0..10.0 ~~ "0"..3e0
# Failed test '0e0..10.0 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 50 - 0e0..10.0 ~~ "0"..3e0
# Failed test '0e0..10.0 ~~ "0"..3e0'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 51 - 0..30 ~~ "0"..3e0
ok 52 - 0..FatRat.new(30, 1) ~~ "0"..3e0
ok 53 - 0..30e0 ~~ "0"..3e0
ok 54 - 0..30.0 ~~ "0"..3e0
ok 55 - 0..30.0 ~~ "0"..3e0
ok 56 - 0e0..30 ~~ "0"..3e0
ok 57 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ "0"..3e0
ok 58 - 0.0..30e0 ~~ "0"..3e0
ok 59 - 0e0..30.0 ~~ "0"..3e0
ok 60 - 0e0..30.0 ~~ "0"..3e0
not ok 61 - 0..10 ~~ "0"..FatRat.new(3, 1)
# Failed test '0..10 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 62 - 0..FatRat.new(10, 1) ~~ "0"..FatRat.new(3, 1)
# Failed test '0..FatRat.new(10, 1) ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 63 - 0..10e0 ~~ "0"..FatRat.new(3, 1)
# Failed test '0..10e0 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 64 - 0..10.0 ~~ "0"..FatRat.new(3, 1)
# Failed test '0..10.0 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 65 - 0..10.0 ~~ "0"..FatRat.new(3, 1)
# Failed test '0..10.0 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 66 - 0e0..10 ~~ "0"..FatRat.new(3, 1)
# Failed test '0e0..10 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 67 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..FatRat.new(3, 1)
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 68 - 0.0..10e0 ~~ "0"..FatRat.new(3, 1)
# Failed test '0.0..10e0 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 69 - 0e0..10.0 ~~ "0"..FatRat.new(3, 1)
# Failed test '0e0..10.0 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 70 - 0e0..10.0 ~~ "0"..FatRat.new(3, 1)
# Failed test '0e0..10.0 ~~ "0"..FatRat.new(3, 1)'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 71 - 0..30 ~~ "0"..FatRat.new(3, 1)
ok 72 - 0..FatRat.new(30, 1) ~~ "0"..FatRat.new(3, 1)
ok 73 - 0..30e0 ~~ "0"..FatRat.new(3, 1)
ok 74 - 0..30.0 ~~ "0"..FatRat.new(3, 1)
ok 75 - 0..30.0 ~~ "0"..FatRat.new(3, 1)
ok 76 - 0e0..30 ~~ "0"..FatRat.new(3, 1)
ok 77 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ "0"..FatRat.new(3, 1)
ok 78 - 0.0..30e0 ~~ "0"..FatRat.new(3, 1)
ok 79 - 0e0..30.0 ~~ "0"..FatRat.new(3, 1)
ok 80 - 0e0..30.0 ~~ "0"..FatRat.new(3, 1)
not ok 81 - 0..10 ~~ 0..3
# Failed test '0..10 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 82 - 0..FatRat.new(10, 1) ~~ 0..3
# Failed test '0..FatRat.new(10, 1) ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 83 - 0..10e0 ~~ 0..3
# Failed test '0..10e0 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 84 - 0..10.0 ~~ 0..3
# Failed test '0..10.0 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 85 - 0..10.0 ~~ 0..3
# Failed test '0..10.0 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 86 - 0e0..10 ~~ 0..3
# Failed test '0e0..10 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 87 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ 0..3
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 88 - 0.0..10e0 ~~ 0..3
# Failed test '0.0..10e0 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 89 - 0e0..10.0 ~~ 0..3
# Failed test '0e0..10.0 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 90 - 0e0..10.0 ~~ 0..3
# Failed test '0e0..10.0 ~~ 0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 91 - 0..30 ~~ 0..3
ok 92 - 0..FatRat.new(30, 1) ~~ 0..3
ok 93 - 0..30e0 ~~ 0..3
ok 94 - 0..30.0 ~~ 0..3
ok 95 - 0..30.0 ~~ 0..3
ok 96 - 0e0..30 ~~ 0..3
ok 97 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ 0..3
ok 98 - 0.0..30e0 ~~ 0..3
ok 99 - 0e0..30.0 ~~ 0..3
ok 100 - 0e0..30.0 ~~ 0..3
not ok 101 - 0..10 ~~ 0.0..3
# Failed test '0..10 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 102 - 0..FatRat.new(10, 1) ~~ 0.0..3
# Failed test '0..FatRat.new(10, 1) ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 103 - 0..10e0 ~~ 0.0..3
# Failed test '0..10e0 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 104 - 0..10.0 ~~ 0.0..3
# Failed test '0..10.0 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 105 - 0..10.0 ~~ 0.0..3
# Failed test '0..10.0 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 106 - 0e0..10 ~~ 0.0..3
# Failed test '0e0..10 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 107 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ 0.0..3
WARNING: unhandled Failure detected in DESTROY:
Cannot convert string to number: base-10 number must begin with valid digits or
'.' in '⏏♥' (indicated by ⏏)
in block at foo.p6 line 34
in block <unit> at foo.p6 line 33
WARNING: unhandled Failure detected in DESTROY:
Cannot convert string to number: base-10 number must begin with valid digits or
'.' in '⏏b' (indicated by ⏏)
in block at foo.p6 line 34
in block <unit> at foo.p6 line 33
WARNING: unhandled Failure detected in DESTROY:
Cannot convert string to number: base-10 number must begin with valid digits or
'.' in '⏏a' (indicated by ⏏)
in block at foo.p6 line 34
in block <unit> at foo.p6 line 33
WARNING: unhandled Failure detected in DESTROY:
Cannot convert string to number: base-10 number must begin with valid digits or
'.' in '⏏♥0' (indicated by ⏏)
in block at foo.p6 line 31
in block <unit> at foo.p6 line 30
WARNING: unhandled Failure detected in DESTROY:
Cannot convert string to number: base-10 number must begin with valid digits or
'.' in '⏏♥' (indicated by ⏏)
in block at foo.p6 line 31
in block <unit> at foo.p6 line 30
WARNING: unhandled Failure detected in DESTROY:
Cannot convert string to number: base-10 number must begin with valid digits or
'.' in '⏏a' (indicated by ⏏)
in block at foo.p6 line 31
in block <unit> at foo.p6 line 30
WARNING: unhandled Failure detected in DESTROY:
Cannot convert string to number: base-10 number must begin with valid digits or
'.' in '⏏b' (indicated by ⏏)
in block at foo.p6 line 31
in block <unit> at foo.p6 line 30
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 108 - 0.0..10e0 ~~ 0.0..3
# Failed test '0.0..10e0 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 109 - 0e0..10.0 ~~ 0.0..3
# Failed test '0e0..10.0 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 110 - 0e0..10.0 ~~ 0.0..3
# Failed test '0e0..10.0 ~~ 0.0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 111 - 0..30 ~~ 0.0..3
ok 112 - 0..FatRat.new(30, 1) ~~ 0.0..3
ok 113 - 0..30e0 ~~ 0.0..3
ok 114 - 0..30.0 ~~ 0.0..3
ok 115 - 0..30.0 ~~ 0.0..3
ok 116 - 0e0..30 ~~ 0.0..3
ok 117 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ 0.0..3
ok 118 - 0.0..30e0 ~~ 0.0..3
ok 119 - 0e0..30.0 ~~ 0.0..3
ok 120 - 0e0..30.0 ~~ 0.0..3
not ok 121 - 0..10 ~~ 0e0..3
# Failed test '0..10 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 122 - 0..FatRat.new(10, 1) ~~ 0e0..3
# Failed test '0..FatRat.new(10, 1) ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 123 - 0..10e0 ~~ 0e0..3
# Failed test '0..10e0 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 124 - 0..10.0 ~~ 0e0..3
# Failed test '0..10.0 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 125 - 0..10.0 ~~ 0e0..3
# Failed test '0..10.0 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 126 - 0e0..10 ~~ 0e0..3
# Failed test '0e0..10 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 127 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ 0e0..3
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 128 - 0.0..10e0 ~~ 0e0..3
# Failed test '0.0..10e0 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 129 - 0e0..10.0 ~~ 0e0..3
# Failed test '0e0..10.0 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 130 - 0e0..10.0 ~~ 0e0..3
# Failed test '0e0..10.0 ~~ 0e0..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 131 - 0..30 ~~ 0e0..3
ok 132 - 0..FatRat.new(30, 1) ~~ 0e0..3
ok 133 - 0..30e0 ~~ 0e0..3
ok 134 - 0..30.0 ~~ 0e0..3
ok 135 - 0..30.0 ~~ 0e0..3
ok 136 - 0e0..30 ~~ 0e0..3
ok 137 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ 0e0..3
ok 138 - 0.0..30e0 ~~ 0e0..3
ok 139 - 0e0..30.0 ~~ 0e0..3
ok 140 - 0e0..30.0 ~~ 0e0..3
not ok 141 - 0..10 ~~ FatRat.new(0, 1)..3
# Failed test '0..10 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 142 - 0..FatRat.new(10, 1) ~~ FatRat.new(0, 1)..3
# Failed test '0..FatRat.new(10, 1) ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 143 - 0..10e0 ~~ FatRat.new(0, 1)..3
# Failed test '0..10e0 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 144 - 0..10.0 ~~ FatRat.new(0, 1)..3
# Failed test '0..10.0 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 145 - 0..10.0 ~~ FatRat.new(0, 1)..3
# Failed test '0..10.0 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 146 - 0e0..10 ~~ FatRat.new(0, 1)..3
# Failed test '0e0..10 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 147 - FatRat.new(0, 1)..FatRat.new(10, 1) ~~ FatRat.new(0, 1)..3
# Failed test 'FatRat.new(0, 1)..FatRat.new(10, 1) ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 148 - 0.0..10e0 ~~ FatRat.new(0, 1)..3
# Failed test '0.0..10e0 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 149 - 0e0..10.0 ~~ FatRat.new(0, 1)..3
# Failed test '0e0..10.0 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
not ok 150 - 0e0..10.0 ~~ FatRat.new(0, 1)..3
# Failed test '0e0..10.0 ~~ FatRat.new(0, 1)..3'
# at foo.p6 line 53
# expected: Bool::True
# got: Bool::False
ok 151 - 0..30 ~~ FatRat.new(0, 1)..3
ok 152 - 0..FatRat.new(30, 1) ~~ FatRat.new(0, 1)..3
ok 153 - 0..30e0 ~~ FatRat.new(0, 1)..3
ok 154 - 0..30.0 ~~ FatRat.new(0, 1)..3
ok 155 - 0..30.0 ~~ FatRat.new(0, 1)..3
ok 156 - 0e0..30 ~~ FatRat.new(0, 1)..3
ok 157 - FatRat.new(0, 1)..FatRat.new(30, 1) ~~ FatRat.new(0, 1)..3
ok 158 - 0.0..30e0 ~~ FatRat.new(0, 1)..3
ok 159 - 0e0..30.0 ~~ FatRat.new(0, 1)..3
ok 160 - 0e0..30.0 ~~ FatRat.new(0, 1)..3
1..160
# Looks like you failed 80 tests of 160
not ok 3 - smartmatch numeric range against string range [numeric strings]
# Failed test 'smartmatch numeric range against string range [numeric strings]'
# at foo.p6 line 38
use Test;
subtest 'smartmatch against numeric range' => {
constant fr2 = FatRat.new: 2, 1;
constant fr3 = FatRat.new: 3, 1;
constant @true = 2..3, '2'..'3', 2/1..3/1, 2..3, 2.5..2.8,
fr2..fr3, 2..fr3, 2e0..fr3, 2.5..fr3, fr3..fr3;
constant @false = 1..3, '2'..'4', -2..5/1, -10..10, 2.5..6.5, 1^..3,
'2'..^'4', '1'^..^3, 0/0..0/0, fr3..10, -2e0..fr2, 'a'..'z';
constant @variants = 2..3, 2..3e0, 2..3.0, 2..fr3,
2e0..3, 2e0..3e0, 2e0..3.0, 2e0..fr3,
2.0..3, 2.0..3e0, 2.0..3.0, 2.0..fr3,
fr2..3, fr2..fr3, fr2..fr3, fr2..fr3;
constant $plan = 2 + @variants * (@true + @false);
is-deeply 3..4 ~~ -1/0..1/0, True, ' 3..4 ~~ -1/0..1/0';
is-deeply 0/0..0/0 ~~ -1/0..1/0, False, '0/0..0/0 ~~ -1/0..1/0';
for @variants -> $r {
is-deeply $_ ~~ $r, True, "{.perl} ~~ {$r.perl}" for @true;
try is-deeply $_ ~~ $r, False, "{.perl} ~~ {$r.perl}" for @false;
}
}
subtest 'smartmatch of string ranges' => {
my @true = ['a'..'z', 'b'..'c'], ['aa'..'bb', 'a'..'z' ],
['♥'..'♦', '♥'..'♦'], ['♥0'..'♦3', '♥0'..'♦3'];
my @false = ['b'..'c', 'a'..'z'], ['aa'..'bb', 'b'..'z' ],
['♤'..'♦', '♥'..'♦'], ['♤0'..'♦3', '♥0'..'♦3'];
plan @true + @false;
for @true -> ($a, $b) {
try is-deeply $a ~~ $b, True, "{$a.perl} ~~ {$b.perl}";
}
for @false -> ($a, $b) {
try is-deeply $a ~~ $b, False, "{$a.perl} ~~ {$b.perl}";
}
}
subtest 'smartmatch numeric range against string range [numeric strings]' => {
# Note: numeric `10` in tests below should be compared as a string by
# the smartmatch against a string range, and so it *is* correct that
# 0..10 ~~ '0'..'3' === True, since string '10' is before '3' and after '0'
constant fr0 = FatRat.new: 0, 1; constant fr3 = FatRat.new: 3, 1;
constant fr10 = FatRat.new: 10, 1; constant fr30 = FatRat.new: 30, 1;
constant @true = 0..10, 0..fr10, 0..10e0, 0..10.0, 0..10/1,
0e0..10, fr0..fr10, 0.0..10e0, 0e0..10.0, 0e0..10/1;
constant @false = 0..30, 0..fr30, 0..30e0, 0..30.0, 0..30/1,
0e0..30, fr0..fr30, 0.0..30e0, 0e0..30.0, 0e0..30/1;
constant @variants = '0'..3, '0'..3.0, '0'..3e0, '0'..fr3,
0..'3', 0.0..'3', 0e0..'3', fr0..'3';
constant $plan = @variants * (@true + @false);
for @variants -> $r {
is-deeply $_ ~~ $r, True, "{.perl} ~~ {$r.perl}" for @true;
is-deeply $_ ~~ $r, False, "{.perl} ~~ {$r.perl}" for @false;
}
}