## name Cases with no violations
## failures 0
## cut

print 42;
print 43;
print "Forty two";
print "Forty three";

## name trivial case of duplicate strings
## failures 1
## cut

print "Forty two";
print "Forty two";

## name allowed duplicate string
## parms { allowlist => '"Forty two"' }
## failures 0
## cut

print "Forty two";
print "Forty two";

## name multiple allowed duplicate strings
## parms { allowlist => '"Forty two" \'Forty three\'' }
## failures 0
## cut

print "Forty two";
print "Forty two";
print "Forty three";
print "Forty three";

## name Strings with different different quote.
## failures 1
## cut

say 'Forty two';
say "Forty two";

## name trivial case of duplicate numbers
## failures 1
## cut

my $n = 42;
print 42;

## name trivial case of duplicate numbers
## failures 1
## cut

my $o = foo() ? 1 : 0;
my $two = 1 + 1 + 0;
my $n = 42;
print 42;

## name duplicate numbers
## failures 1
## cut

if ($a < 42) {
  if ($b < 42) {
    print("Hello World")
  }
}

## name certain duplicate numbers are OK
## parms { allowlist => '42' }
## failures 0
## cut

if ($a < 42) {
  if ($b < 42) {
    print("Hello World")
  }
}

## name without allowlist
## failures 2
## cut

if ($a < 42) {
  if ($b < 42) {
    print("Hello World");
    print("Hello World");
  }
}

## name with allowlist
## parms { allowlist => '42 "Hello World"' }
## failures 0
## cut

if ($a < 42) {
  if ($b < 42) {
    print("Hello World");
    print("Hello World");
  }
}

## name numbers and their string counterpart
## parms { allowlist => '42' }
## failures 0
## cut

if ($a eq "42") {
  if ($b ne "42") {
    print("Hello World");
  }
}

## name strings and their numerical counterpart
## parms { allowlist => '"42"' }
## failures 0
## cut

if ($a == 42) {
  if ($b != 42) {
    print("Hello World");
  }
}