+
+is_deeply(
+ test_v({
+ '900' => 'foo',
+ '901' => [ qw/foo bar baz/ ],
+ '902' => [ { 'a' => 1, 'b' => [ 1,2 ] } ],
+ '903' => [ { 'a' => [ 1, 2 ], 'c' => 1, } ],
+ '904' => [ { 'b' => 1 } ],
+ '905' => [ { 'a' => 1 } ],
+ }, undef),
+$expected_error, 'validate without subfields');
+
+ok(my $r1 = $v->report, 'report');
+
+diag "report: $r1" if ( $debug );
+
+is_deeply(
+ test_v({
+ '900' => 'foo',
+ '901' => [ qw/foo bar baz/ ],
+ '902' => [ { 'a' => 1, 'b' => [ 1,2 ], subfields => [ qw/a 0 b 0 b 1/ ] } ],
+ '903' => [ { 'a' => [ 1, 2 ], 'c' => 1, subfields => [ qw/a 0 a 1 c 0/ ] } ],
+ '904' => [ { 'b' => 1, subfields => [ qw/b 0/ ] } ],
+ '905' => [ { 'a' => 1, subfields => [ qw/a 0/ ] } ],
+ }, undef),
+$expected_error, 'validate with subfields');
+
+ok(my $r2 = $v->report, 'report');
+
+cmp_ok($r1, 'eq', $r2, 'subfields same as non-subfields');