-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Publishing what-do-condition-proposition-predicate-property-and-invar…
…iant-really-mean.md
- Loading branch information
Vitaliy Zakaznikov
committed
Mar 2, 2025
1 parent
3dc86e7
commit 0d264ff
Showing
47 changed files
with
1,065 additions
and
80 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,228 @@ | ||
|
||
<!DOCTYPE HTML> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>TestFlows - Python Testing Framework | TestFlows</title> | ||
<meta name="description" content="TestFlows is a Python testing framework with support for behavior-driven testing, combinatorial testing, AI auto-steps, and requirement traceability""> | ||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
<meta name="author" content="TestFlows"> | ||
<meta name="og:site_name" content="TestFlows"> | ||
<meta property="og:image" content="https://testflows.com/img/social-share.png"> | ||
|
||
<link rel="preload" as="image" href="https://testflows.com/img/logo.png"> | ||
|
||
|
||
|
||
<link href="https://testflows.com/img/favicon.ico" rel="icon"> | ||
|
||
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&display=swap" rel="stylesheet"> | ||
<link rel="stylesheet" href="/css/bootstrap/bootstrap.css" media="screen" type="text/css"> | ||
<link rel="stylesheet" href="/css/highlight.css?v=1740882049973" media="screen" type="text/css"> | ||
<link rel="stylesheet" href="/css/fontawesome/css/all.css?v=1.0" type="text/css"> | ||
<link rel="stylesheet" href="/css/style.css?v=1740882049973" media="screen" type="text/css"> | ||
<!--[if lt IE 9]> | ||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> | ||
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.9/es5-shim.min.js"></script> | ||
<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-sham.min.js"></script> | ||
<![endif]--> | ||
<!-- hexo injector head_end start --> | ||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css"> | ||
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/hexo-math@4.0.0/dist/style.css"> | ||
<!-- hexo injector head_end end --><meta name="generator" content="Hexo 5.4.2"></head> | ||
|
||
<body> | ||
<nav id="main-nav" class="fixed-top navbar navbar-expand-md navbar-fixed-top" role="navigation"> | ||
<a class="navbar-brand" href="/"> | ||
<img src="/img/logo-white.png" alt="TestFlows"> | ||
</a> | ||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> | ||
<span class="navbar-toggler-icon fas fa-2x fa-bars"></span> | ||
</button> | ||
<div class="collapse navbar-collapse nav-menu" id="navbarNav"> | ||
<ul class="nav navbar-nav"> | ||
|
||
<li class="nav-item"> | ||
<a class="nav-link" href="/handbook"><i class="fas fa-book pr-2"></i>Handbook</a> | ||
</li> | ||
|
||
<li class="nav-item"> | ||
<a class="nav-link" href="/blog"><i class="fas fa-blog pr-2"></i>Blog</a> | ||
</li> | ||
|
||
<li class="nav-item"> | ||
<a class="nav-link" href="/assistant"><i class="fas fa-robot pr-2"></i>Assistant</a> | ||
</li> | ||
|
||
<li class="nav-item"> | ||
<a class="nav-link" href="/about.html"><i class="fas fa-info-circle pr-2"></i>About</a> | ||
</li> | ||
|
||
<li class="nav-item"> | ||
<a class="nav-link" href="/contact.html"><i class="fas fa-envelope-open-text pr-2"></i>Contact</a> | ||
</li> | ||
|
||
</ul> | ||
</div> | ||
</nav> | ||
<div class="clearfix"></div> | ||
|
||
<div class="container-fluid p-0"> | ||
<div class="content"> | ||
|
||
|
||
</div> | ||
</div> | ||
<div class="container-footer" id="container-footer"> | ||
|
||
<footer> <div class="row no-gutters"> | ||
<div class="col-12 text-center"> | ||
<div class="links"> | ||
<div class="btn-group" role="group" aria-label="Basic example"> | ||
<button type="button" class="btn btn-secondary"> | ||
<a target="_blank" rel="noopener external nofollow noreferrer" href="https://pypi.org/project/testflows/"> | ||
<span class="fab fa-2x fa-python"></span> | ||
</a> | ||
</button> | ||
<button type="button" class="btn btn-secondary"> | ||
<a target="_blank" rel="noopener external nofollow noreferrer" href="https://t.me/testflows"> | ||
<span class="fab fa-2x fa-telegram-plane"></span> | ||
</a> | ||
</button> | ||
<button type="button" class="btn btn-secondary"> | ||
<a target="_blank" rel="noopener external nofollow noreferrer" href="https://github.com/testflows"> | ||
<span class="fab fa-2x fa-github"></span> | ||
</a> | ||
</button> | ||
</div> | ||
</div> | ||
</div> | ||
<div class="col-12 text-center"> | ||
<img src="/img/favicon-square.png"</img> | ||
</div> | ||
<div class="col-12 text-center"> | ||
Copyright 2020-2022 Katteli Inc. | ||
</div> | ||
<div class="col-12 text-center"> | ||
<span class="text-nowrap">All rights reserved.</span> | ||
</div> | ||
<div class="col-12 text-center no-padding links"> | ||
<a class="btn" href="/credits.html">Credits</a> | ||
</div> | ||
</div> | ||
</footer> | ||
|
||
</div> | ||
<script src="/js/jquery-3.4.1.slim.js"></script> | ||
<script src="/js/popper.min.js"></script> | ||
<script src="/js/bootstrap/bootstrap.min.js"></script> | ||
<script src="https://unpkg.com/3d-force-graph@1.72.3/dist/3d-force-graph.min.js"></script> | ||
<script defer src='https://static.cloudflareinsights.com/beacon.min.js' data-cf-beacon='{"token": "ab95920418b1480e9f8458e94fe40615"}'></script> | ||
<script> | ||
var isInViewport = function (elem) { | ||
var bounding = elem.getBoundingClientRect(); | ||
return ( | ||
bounding.top >= 0 && | ||
bounding.left >= 0 && | ||
bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) && | ||
bounding.right <= (window.innerWidth || document.documentElement.clientWidth) | ||
); | ||
}; | ||
var banner = document.querySelector('.banner'); | ||
window.addEventListener('scroll', function (event) { | ||
if (isInViewport(banner)) { | ||
banner.classList.remove("not-in-view"); | ||
} else { | ||
banner.classList.add("not-in-view"); | ||
} | ||
}, false); | ||
// codeblock copy | ||
function codeblock_copy() { | ||
$("figure.highlight").hover( | ||
function() { | ||
var figure = $(this); | ||
$( this ).append($("<button class=\"btn codeblock-copy\"><i class=\"fas fa-clipboard\"></i></button>")); | ||
}, function() { | ||
$( this ).find("button").first().remove(); | ||
} | ||
); | ||
$("figure.highlight").click( | ||
function() { | ||
var figure = $(this); | ||
navigator.clipboard.writeText(figure.find(".code").first()[0].innerText.trimEnd()).then( | ||
function() { | ||
figure.find(".codeblock-copy").find("i").removeClass("fa-clipboard").addClass("fa-clipboard-check"); | ||
} | ||
) | ||
} | ||
); | ||
} | ||
// apply codeblock copy | ||
codeblock_copy() | ||
// hero graph | ||
function heroGraph() { | ||
const distance = 2350; | ||
const N = 7; | ||
const msb = n => Math.max(0, 31 - Math.clz32(n)); | ||
const gData = { | ||
nodes: [...Array(2**(N+1)-2).keys()].map(i => ({ id: i, group: i % 2, val: msb(i) })), | ||
links: [...Array(2*((2**(N+1)-2)-2**N)).keys()] | ||
.map(id => ({ | ||
source: Math.floor(id/2), | ||
target: id+2 | ||
})) | ||
}; | ||
start = gData.nodes.length; | ||
gData.nodes.push({id:start, group: 2, val:msb(start)}); | ||
gData.links.push({source: start, target: 0}); | ||
gData.links.push({source: start, target: 1}); | ||
window.Graph = ForceGraph3D() | ||
.backgroundColor("black") | ||
//.dagMode('td') | ||
//.dagLevelDistance(200) | ||
(document.getElementById('banner-graph')) | ||
.nodeAutoColorBy('group') | ||
.linkAutoColorBy(d => gData.nodes[d.source].group) | ||
.onNodeDragEnd(node => { | ||
node.fx = node.x; | ||
node.fy = node.y; | ||
node.fz = node.z; | ||
}) | ||
.linkDirectionalArrowLength(3.5) | ||
.linkDirectionalArrowRelPos(1) | ||
.graphData(gData); | ||
// camera orbit | ||
let angle = 0; | ||
//let isRotationActive = true; | ||
window.Graph.cameraPosition({ | ||
x: distance * Math.sin(angle), | ||
z: distance * Math.cos(angle) | ||
}); | ||
window.Graph.dagGraphModes = ['td', 'bu', 'lr', 'rl', 'zin', 'zout', 'radialout', 'radialin', 'off']; | ||
window.Graph.currentDagMode = 0; | ||
} | ||
// disabling form submissions if there are invalid fields | ||
(function() { | ||
'use strict'; | ||
window.addEventListener('load', function() { | ||
// Fetch all the forms we want to apply custom Bootstrap validation styles to | ||
var forms = document.getElementsByClassName('needs-validation'); | ||
// Loop over them and prevent submission | ||
var validation = Array.prototype.filter.call(forms, function(form) { | ||
form.addEventListener('submit', function(event) { | ||
if (form.checkValidity() === false) { | ||
event.preventDefault(); | ||
event.stopPropagation(); | ||
} | ||
form.classList.add('was-validated'); | ||
}, false); | ||
}); | ||
}, false); | ||
})(); | ||
</script> | ||
|
||
</body> | ||
</html> | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.