App-Test-Generator

 view release on metacpan or  search on metacpan

bin/test-generator-index  view on Meta::CPAN

		body { font-family: sans-serif; }
		table { border-collapse: collapse; width: 100%; }
		th, td { border: 1px solid #ccc; padding: 8px; text-align: left; }
		th { background-color: #f2f2f2; }
		.low { background-color: #fdd; }
		.med { background-color: #ffd; }
		.high { background-color: #dfd; }
		.badges img { margin-right: 10px; }
		.disabled-icon {
			opacity: 0.4;
			cursor: default;
		}
		.icon-link {
			text-decoration: none;
		}
		.icon-link:hover {
			opacity: 0.7;
			cursor: pointer;
		}
		.coverage-badge {
			padding: 2px 6px;
			border-radius: 4px;
			font-weight: bold;
			color: white;
			font-size: 0.9em;
		}
		.badge-good { background-color: #4CAF50; }
		.badge-warn { background-color: #FFC107; }
		.badge-bad { background-color: #F44336; }
		.summary-row {
			font-weight: bold;
			background-color: #f0f0f0;
		}
		td.positive { color: green; font-weight: bold; }
		td.negative { color: red; font-weight: bold; }
		td.neutral { color: gray; }
		/* Show cursor points on the headers to show that they are clickable */
		th { background-color: #f2f2f2; cursor: pointer; }
		th.sortable {
			cursor: grab;
			user-select: none;
			white-space: nowrap;
		}
		th .arrow {
			color: #aaa;	/* dimmed for inactive */
			font-weight: normal;
		}
		th .arrow.active {
			color: #000;	/* dark for active */
			font-weight: bold;
		}
		/* Prevent child spans intercepting drag events so enter/leave fire only on the th */
		th.sortable .label,
		th.sortable .arrow { pointer-events: none; }
		th.col-dragging { opacity: 0.4; cursor: grabbing; }
		th.col-drag-over { outline: 2px dashed #555; background-color: #d8eaff !important; }
		.sparkline {
			display: inline-block;
			vertical-align: middle;
		}
		tr.cpan-fail td {
			background-color: #fdd;
		}
		tr.cpan-unknown td {
			background-color: #eee;

bin/test-generator-index  view on Meta::CPAN

    white-space: normal;
    margin: 0;
    padding: 0;
    line-height: 1.2;
}

.nav { margin-bottom: 1em; }

.toggle {
    float: right;
    cursor: pointer;
    padding: 6px 10px;
    border: 1px solid var(--border);
    border-radius: 4px;
}

/* Tooltip container */
.tooltip {
	position: relative;
	cursor: help;
}

/* Tooltip bubble */
.tooltip:hover::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 0;
    top: 100%;
    background: var(--table-header);
    color: var(--table-header-text);

bin/test-generator-index  view on Meta::CPAN

	font-size: 0.9em;
}

/* Indent the list of mutations that displays when expanding by 8 characters */
pre details.mutant-details ul {
	padding-left: 8ch;
	margin: 0.2em 0;
}

.mutant-details summary {
	cursor: pointer;
	font-weight: bold;
}

.lcsaj-dot {
    color: #5555ff;
    font-size: 10px;
    margin-right: 3px;
}

.lcsaj-dot-uncovered {

bin/test-generator-index  view on Meta::CPAN

}

.lcsaj-tip:hover .lcsaj-tip-text {
	visibility: visible;
}

.cpd-dot {
    color: #cc8800;
    font-size: 10px;
    margin-right: 3px;
    cursor: help;
    text-decoration: none;
}
a.cpd-dot { cursor: pointer; }
a.cpd-dot:hover { color: #ff8800; }

.cpd-tip {
    position: relative;
    display: inline-block;
}

.cpd-tip .cpd-tip-text {
    visibility: hidden;
    background-color: #333;

bin/test-generator-index  view on Meta::CPAN

    pointer-events: none;
}

.cpd-tip:hover .cpd-tip-text {
    visibility: visible;
}

/* CPD drill-down page styles */
.dup-line { background-color: #fff3cd; display: block; }
.dup-line:hover { background-color: #ffe082; }
.intra-dot { color: #9944cc; margin-right: 4px; cursor: help; text-decoration: none; }
a.intra-dot { cursor: pointer; }
a.intra-dot:hover { color: #7700bb; }
.cpd-legend {
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 4px;
    display: inline-block;
    padding: 6px 10px;
    margin-bottom: 1em;
    font-size: 0.9em;
}

t/function.t  view on Meta::CPAN

# The depth > 100 croak in _perl_quote() is unreachable through any
# single-level call from the public perl_quote() wrapper (which always
# starts at depth 0), but is reachable legitimately by feeding
# perl_quote() a sufficiently deep arrayref-of-arrayrefs -- no need to
# call the private _perl_quote() directly with a fabricated depth.
# ==================================================================
subtest 'Generator::perl_quote - croaks on a structure nested past the recursion limit' => sub {
	Readonly my $DEPTH_BEYOND_LIMIT => 101;

	my $deeply_nested = [];
	my $cursor = $deeply_nested;
	for (1 .. $DEPTH_BEYOND_LIMIT) {
		push @{$cursor}, [];
		$cursor = $cursor->[0];
	}

	throws_ok { App::Test::Generator::perl_quote($deeply_nested) }
		qr/^perl_quote: structure too deeply nested \(circular reference\?\) at /,
		'an arrayref nested past the recursion limit croaks with the exact documented message';
};

# ==================================================================
# App::Test::Generator::_validate_config - dispatch isolation
#



( run in 5.370 seconds using v1.01-cache-2.11-cpan-4ac696b4eb4 )