Property-Based Testing and Verication: a Catalog of Classroom Examples
Property Driven Development in Erlang, by Example
Generating programs and test properties for validating impact analysis based test selection
#!/bin/sh | |
set -e | |
version=`git describe --tags --match 'v*' --always --dirty=-monkeypatched | cut -c 2-` | |
sbt -Dversion=$version "$@" |
#!/bin/sh | |
set -e | |
for f in `find . -name '*.class'` | |
do | |
echo $f `basename $f .class|grep -Eo '[[:lower:]][eo]r([^[:lower:]]|$)'|wc -l` | |
done | sort -rnk 2 |
#!/bin/bash | |
set -e | |
for f in $(find /sys/class/gpio/ -name 'gpio[0-9]*') | |
do | |
echo $(basename $f | cut -c 5-) | tee /sys/class/gpio/unexport | |
done |
import string | |
import os | |
from filecmp import cmp as file_contents_equal | |
def _extension(template_file, format): | |
if format is not None: | |
return "." + format | |
elif template_file is not None: | |
return os.path.splitext(template_file)[1] |
#!/bin/sh | |
set -e | |
if [ ! -f ~/.bintray-login ] | |
then | |
echo save your bintray.com <userid>:<api-key> in ~/.bintray-login | |
exit 1 | |
fi | |
groupid=${1:?group-id} |
private static class NoisyThreadingPolicy implements ThreadingPolicy | |
{ | |
private final Thread testThread = Thread.currentThread(); | |
@Override public Invokable synchroniseAccessTo(final Invokable mockObject) | |
{ | |
final StackTraceElement[] creationStack = stackTrace(); | |
return new Invokable() | |
{ |
#!/bin/bash | |
# Usage: merge-to-subdir source-repo destination-repo subdir | |
# | |
# Merges the history of source-repo into destination-repo as the | |
# history of the subdirectory subdir. | |
# | |
# source-repo can be local or remote. | |
# destination-repo must be local to the machine. | |
# subdir can be a relative path, in which case intermediate |
If you're coming to the Property-Based TDD As If You Meant It Workshop, you will need to bring a laptop with your favourite programming environment, a property-based testing library and, depending on the language, a test framework to run the property-based-tests.
Any other languages or suggestions? Comment below.
.NET (C#, F#, VB)
Python:
def dicts(d): | |
keys, value_iters = zip(*d.items()) | |
return (dict(zip(keys,values)) for values in zip(*value_iters)) | |
def property(test_fn=None, tests=100): | |
def bind_parameters(test_fn): | |
arg_bindings = dicts(test_fn.__annotations__) | |
def bound_test_fn(): | |
for args in itertools.islice(arg_bindings, tests): |