使用元运算符进行测试不会打印测试描述

Fer*_*ata 6 testing raku

我正在对复杂数组编写测试Z?,当我注意到缺少测试描述时,我正在使用运算符检查数组是否大致相等。
我试图对这段代码进行分析,以找出显示我所看到的结果的最简单的情况。即使我使用 Num 或 Int 变量和Z==运算符,第二个测试中也缺少描述。

use Test;

my @a = 1e0, 3e0;
my @b = 1e0, 3e0;
ok @a[0] == @b[0], 'description1';     # prints: ok 1 - description1
ok @a[^2] Z== @b[^2], 'description2';  # prints: ok 2 -

done-testing;
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的解释或者这是一个错误?

rai*_*iph 8

这只是优先级——你需要括号。

==是一个二进制操作,在任何一侧都需要一个操作数

Zmetaop其经营者分配到一个列表上的两侧。

use Test;

my @a = 1e0, 3e0;
my @b = 1e0, 3e0;
ok  @a[0]   == @b[0],   'description1';  # prints: ok 1 - description1
ok (@a[^2] Z== @b[^2]), 'description2';  # prints: ok 2 - description2

done-testing;
Run Code Online (Sandbox Code Playgroud)

没有括号,'description2'成为右侧列表的附加元素。根据文档Z

如果其中一个操作数过早用完元素,则 zip 运算符将停止。