### ----------------------------------------------------
### -- Config::TOML
### -- Licenses: Unlicense
### -- Authors: 
### -- File: t/grammar-actions/04-document.rakutest
### ----------------------------------------------------
### -- Chunk 1 of 2
use Test;
use Config::TOML::Parser::Actions;
use Config::TOML::Parser::Grammar;

plan 1;

# document grammar tests {{{

subtest({
    my Str $document = slurp('t/data/example-v0.4.0.toml');
    my Str $document-hard = slurp('t/data/hard_example.toml');
    my Str $document-standard = slurp('t/data/example.toml');

    my Config::TOML::Parser::Actions $actions .= new;
    my $match-document =
        Config::TOML::Parser::Grammar.parse(
            $document,
            :$actions
        );

    my Config::TOML::Parser::Actions $actions-hard .= new;
    my $match-document-hard =
        Config::TOML::Parser::Grammar.parse(
            $document-hard,
            :actions($actions-hard)
        );

    my Config::TOML::Parser::Actions $actions-standard .= new;
    my $match-document-standard =
        Config::TOML::Parser::Grammar.parse(
            $document-standard,
            :actions($actions-standard)
        );

    is(
        $match-document.WHAT,
        Config::TOML::Parser::Grammar,
        q:to/EOF/
        ♪ [Grammar.parse($document)] - 1 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ Parses TOML v0.4.0 document successfully
        ┃   Success   ┃
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document-hard.WHAT,
        Config::TOML::Parser::Grammar,
        q:to/EOF/
        ♪ [Grammar.parse($document-hard)] - 2 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ Parses TOML v0.4.0 document successfully
        ┃   Success   ┃
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document-standard.WHAT,
        Config::TOML::Parser::Grammar,
        q:to/EOF/
        ♪ [Grammar.parse($document-standard)] - 3 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ Parses TOML v0.4.0 document successfully
        ┃   Success   ┃
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );

    is(
        $match-document.made.WHAT,
        Hash,
        q:to/EOF/
        ♪ [Is hash?] - 4 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made.WHAT ~~ Hash
        ┃   Success   ┃
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document-hard.made.WHAT,
        Hash,
        q:to/EOF/
        ♪ [Is hash?] - 5 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document-hard.made.WHAT ~~ Hash
        ┃   Success   ┃
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document-standard.made.WHAT,
        Hash,
        q:to/EOF/
        ♪ [Is hash?] - 6 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document-standard.made.WHAT ~~ Hash
        ┃   Success   ┃
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );

    is(
        $match-document.made<table><key>,
        "value",
        q:to/EOF/
        ♪ [Is expected value?] - 7 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><key>
        ┃   Success   ┃        ~~ "value"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<table><subtable><key>,
        "another value",
        q:to/EOF/
        ♪ [Is expected value?] - 8 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><subtable><key>
        ┃   Success   ┃        ~~ "another value"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<x><y><z><w>,
        {},
        q:to/EOF/
        ♪ [Is expected value?] - 9 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<x><y><z><w>
        ┃   Success   ┃        ~~ {}
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<table><inline><name>,
        %( first => "Tom", last => "Preston-Werner" ),
        q:to/EOF/
        ♪ [Is expected value?] - 10 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><inline><name>
        ┃   Success   ┃        ~~ %( first => "Tom", last => "Preston-Werner" )
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<table><inline><name><first>,
        "Tom",
        q:to/EOF/
        ♪ [Is expected value?] - 11 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><inline><name><first>
        ┃   Success   ┃        ~~ 'Tom'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<table><inline><name><last>,
        "Preston-Werner",
        q:to/EOF/
        ♪ [Is expected value?] - 12 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><inline><name><last>
        ┃   Success   ┃        ~~ 'Preston-Werner'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<table><inline><point>,
        %( x => 1, y => 2 ),
        q:to/EOF/
        ♪ [Is expected value?] - 13 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><inline><point>
        ┃   Success   ┃        ~~ %( x => 1, y => 2 )
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<table><inline><point><x>,
        1,
        q:to/EOF/
        ♪ [Is expected value?] - 14 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><inline><point><x>
        ┃   Success   ┃        == 1
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<table><inline><point><y>,
        2,
        q:to/EOF/
        ♪ [Is expected value?] - 15 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<table><inline><point><y>
        ┃   Success   ┃        == 2
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><basic><basic>,
        "I'm a string. \"You can quote me\". Name\tJosé\nLocation\tSF.",
        q:to/EOF/
        ♪ [Is expected value?] - 16 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><basic><basic>
        ┃   Success   ┃        ~~ "..."
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><multiline><key1>,
        "One\nTwo",
        q:to/EOF/
        ♪ [Is expected value?] - 17 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><multiline><key1>
        ┃   Success   ┃        ~~ "One\nTwo"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><multiline><key2>,
        "One\nTwo",
        q:to/EOF/
        ♪ [Is expected value?] - 18 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><multiline><key2>
        ┃   Success   ┃        ~~ "One\nTwo"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><multiline><key3>,
        "One\nTwo",
        q:to/EOF/
        ♪ [Is expected value?] - 19 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><multiline><key3>
        ┃   Success   ┃        ~~ "One\nTwo"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><multiline><continued><key1>,
        "The quick brown fox jumps over the lazy dog.",
        q:to/EOF/
        ♪ [Is expected value?] - 20 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><multiline><continued><key1>
        ┃   Success   ┃        ~~ "The quick brown fox jumps over the lazy dog."
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><multiline><continued><key2>,
        "The quick brown fox jumps over the lazy dog.",
        q:to/EOF/
        ♪ [Is expected value?] - 21 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><multiline><continued><key2>
        ┃   Success   ┃        ~~ "The quick brown fox jumps over the lazy dog."
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><multiline><continued><key3>,
        "The quick brown fox jumps over the lazy dog.",
        q:to/EOF/
        ♪ [Is expected value?] - 22 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><multiline><continued><key3>
        ┃   Success   ┃        ~~ "The quick brown fox jumps over the lazy dog."
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><literal><winpath>,
        'C:\Users\nodejs\templates',
        q:to/EOF/
        ♪ [Is expected value?] - 23 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><literal><winpath>
        ┃   Success   ┃        ~~ 'C:\Users\nodejs\templates'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    my Str $winpath2 = Q:to/EOF/;
    \\ServerX\admin$\system32\
    EOF
    is(
        $match-document.made<string><literal><winpath2>,
        $winpath2.trim,
        q:to/EOF/
        ♪ [Is expected value?] - 24 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><literal><winpath2>
        ┃   Success   ┃        ~~ '...'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><literal><quoted>,
        'Tom "Dubs" Preston-Werner',
        q:to/EOF/
        ♪ [Is expected value?] - 25 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><literal><quoted>
        ┃   Success   ┃        ~~ 'Tom "Dubs" Preston-Werner'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><literal><regex>,
        '<\i\c*\s*>',
        q:to/EOF/
        ♪ [Is expected value?] - 26 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><literal><regex>
        ┃   Success   ┃        ~~ '<\i\c*\s*>'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    my Str $regex2 = Q{I [dw]on't need \d{2} apples};
    is(
        $match-document.made<string><literal><multiline><regex2>,
        $regex2,
        q:to/EOF/
        ♪ [Is expected value?] - 27 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><literal><multiline><regex2>
        ┃   Success   ┃        ~~ '...'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<string><literal><multiline><lines>,
        "The first newline is\ntrimmed in raw strings.\n   All other whitespace\n   is preserved.\n",
        q:to/EOF/
        ♪ [Is expected value?] - 28 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<string><literal><multiline><lines>
        ┃   Success   ┃        ~~ '...'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<integer><key1>,
        99,
        q:to/EOF/
        ♪ [Is expected value?] - 29 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<integer><key1>
        ┃   Success   ┃        == 99
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<integer><key2>,
        42,
        q:to/EOF/
        ♪ [Is expected value?] - 30 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<integer><key2>
        ┃   Success   ┃        == 42
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<integer><key3>,
        0,
        q:to/EOF/
        ♪ [Is expected value?] - 31 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<integer><key3>
        ┃   Success   ┃        == 0
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<integer><key4>,
        -17,
        q:to/EOF/
        ♪ [Is expected value?] - 32 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<integer><key4>
        ┃   Success   ┃        == -17
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<integer><underscores><key1>,
        1000,
        q:to/EOF/
        ♪ [Is expected value?] - 33 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<integer><underscores><key1>
        ┃   Success   ┃        == 1000
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<integer><underscores><key2>,
        5349221,
        q:to/EOF/
        ♪ [Is expected value?] - 34 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<integer><underscores><key2>
        ┃   Success   ┃        == 5349221
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<integer><underscores><key3>,
        12345,
        q:to/EOF/
        ♪ [Is expected value?] - 35 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<integer><underscores><key3>
        ┃   Success   ┃        == 12345
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><fractional><key1>,
        1.0,
        q:to/EOF/
        ♪ [Is expected value?] - 36 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><fractional><key1>
        ┃   Success   ┃        == 1.0
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><fractional><key2>,
        3.1415,
        q:to/EOF/
        ♪ [Is expected value?] - 37 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><fractional><key2>
        ┃   Success   ┃        == 3.1415
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><fractional><key3>,
        -0.01,
        q:to/EOF/
        ♪ [Is expected value?] - 38 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><fractional><key3>
        ┃   Success   ┃        == -0.01
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><exponent><key1>,
        5e22,
        q:to/EOF/
        ♪ [Is expected value?] - 39 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><exponent><key1>
        ┃   Success   ┃        == 5e22
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><exponent><key2>,
        1e6,
        q:to/EOF/
        ♪ [Is expected value?] - 40 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><exponent><key2>
        ┃   Success   ┃        == 1e6
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><exponent><key3>,
        -2e-2,
        q:to/EOF/
        ♪ [Is expected value?] - 41 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><exponent><key3>
        ┃   Success   ┃        == -2e-2
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><both><key>,
        6.626e-34,
        q:to/EOF/
        ♪ [Is expected value?] - 42 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><both><key>
        ┃   Success   ┃        == 6.626e-34
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><underscores><key1>,
        9224617.445991228313,
        q:to/EOF/
        ♪ [Is expected value?] - 43 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><underscores><key1>
        ┃   Success   ┃        == 9224617.445991228313
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<float><underscores><key2>,
        1e1000,
        q:to/EOF/
        ♪ [Is expected value?] - 44 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<float><underscores><key2>
        ┃   Success   ┃        == 1e1000
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<boolean><True>,
        True,
        q:to/EOF/
        ♪ [Is expected value?] - 45 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<boolean><True>
        ┃   Success   ┃        ~~ True
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<boolean><False>,
        False,
        q:to/EOF/
        ♪ [Is expected value?] - 46 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<boolean><False>
        ┃   Success   ┃        ~~ False
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<datetime><key1>,
        '1979-05-27T07:32:00Z',
        q:to/EOF/
        ♪ [Is expected value?] - 47 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<datetime><key1>
        ┃   Success   ┃        ~~ '1979-05-27T07:32:00Z'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<datetime><key2>,
        '1979-05-27T00:32:00-07:00',
        q:to/EOF/
        ♪ [Is expected value?] - 48 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<datetime><key2>
        ┃   Success   ┃        ~~ '1979-05-27T00:32:00-07:00'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<datetime><key3>,
        '1979-05-27T00:32:00.999999-07:00',
        q:to/EOF/
        ♪ [Is expected value?] - 49 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<datetime><key3>
        ┃   Success   ┃        ~~ '1979-05-27T00:32:00.999999-07:00'
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key1>,
        [ 1, 2, 3 ],
        q:to/EOF/
        ♪ [Is expected value?] - 50 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key1>
        ┃   Success   ┃        ~~ [ 1, 2, 3 ]
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key1>[0],
        1,
        q:to/EOF/
        ♪ [Is expected value?] - 51 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key1>[0]
        ┃   Success   ┃        == 1
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key1>[1],
        2,
        q:to/EOF/
        ♪ [Is expected value?] - 52 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key1>[1]
        ┃   Success   ┃        == 2
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key1>[2],
        3,
        q:to/EOF/
        ♪ [Is expected value?] - 53 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key1>[2]
        ┃   Success   ┃        == 3
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key2>,
        [ "red", "yellow", "green" ],
        q:to/EOF/
        ♪ [Is expected value?] - 54 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key2>
        ┃   Success   ┃        ~~ [ "red", "yellow", "green" ]
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key2>[0],
        "red",
        q:to/EOF/
        ♪ [Is expected value?] - 55 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key2>[0]
        ┃   Success   ┃        ~~ "red"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key2>[1],
        "yellow",
        q:to/EOF/
        ♪ [Is expected value?] - 56 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key2>[1]
        ┃   Success   ┃        ~~ "yellow"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key2>[2],
        "green",
        q:to/EOF/
        ♪ [Is expected value?] - 57 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key2>[2]
        ┃   Success   ┃        ~~ "green"
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key3>,
        [ [ 1, 2 ], [3, 4, 5] ],
        q:to/EOF/
        ♪ [Is expected value?] - 58 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key3>
        ┃   Success   ┃        ~~ [ [ 1, 2 ], [3, 4, 5] ]
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key3>[0],
        [ 1, 2 ],
        q:to/EOF/
        ♪ [Is expected value?] - 59 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key3>[0]
        ┃   Success   ┃        ~~ [ 1, 2 ]
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key3>[0][0],
        1,
        q:to/EOF/
        ♪ [Is expected value?] - 60 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key3>[0][0]
        ┃   Success   ┃        == 1
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key3>[0][1],
        2,
        q:to/EOF/
        ♪ [Is expected value?] - 61 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key3>[0][1]
        ┃   Success   ┃        == 2
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key3>[1],
        [ 3, 4, 5 ],
        q:to/EOF/
        ♪ [Is expected value?] - 62 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key3>[1]
        ┃   Success   ┃        ~~ [ 3, 4, 5 ]
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key3>[1][0],
        3,
        q:to/EOF/
        ♪ [Is expected value?] - 63 of 128
        ┏━━━━━━━━━━━━━┓
        ┃             ┃  ∙ $match-document.made<array><key3>[1][0]
        ┃   Success   ┃        == 3
        ┃             ┃
        ┗━━━━━━━━━━━━━┛
        EOF
    );
    is(
        $match-document.made<array><key3>[1][1],
        4,
        q:to/EOF/
        ♪ [Is expected value?] - 64 of 128
        ┏━━━━