#!/usr/bin/perl

# Copyright 2004-2023, Paul Johnson (paul@pjcj.net)

# This software is free.  It is licensed under the same terms as Perl itself.

# The latest version of this software should be available from my homepage:
# http://www.pjcj.net

# __COVER__ uncoverable_file tests/.uncoverable

my $x = 1;
my $y = 1;

# uncoverable branch true
# uncoverable condition left
# uncoverable condition false
if ($x && !$y) {
    $x++;  # uncoverable statement
    # uncoverable statement
    z();
}

# uncoverable branch true
# uncoverable condition right
# uncoverable condition false
if (!$x && $y) {
    # uncoverable statement count:1
    # uncoverable statement count:2
    b(); b();

    # uncoverable statement count:1,2
    b(); b();

    # uncoverable statement count:1..4
    b(); b(); b(); b();

    # uncoverable statement count:1,2,3..4,5..7,8,9,10..11,12
    b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); b(); b();
}

sub z {
    # uncoverable subroutine
    $y++; # uncoverable statement
}

# uncoverable branch false count:1
# uncoverable branch true  count:2
# uncoverable branch false count:2
# uncoverable condition left  count:1,2
# uncoverable condition right count:1..2
# uncoverable condition true  count:2
# uncoverable condition false count:2
if ($x > 0 && $y > 0) {
    $y++;
} elsif ($x < 2 && $y < 0) {
    $y++; # uncoverable statement
} else {
    $y++; # uncoverable statement
}

# uncoverable statement
# uncoverable subroutine
