icontract-hypothesis
Polyester.jl
Our great sponsors
icontract-hypothesis | Polyester.jl | |
---|---|---|
3 | 3 | |
74 | 214 | |
- | 5.6% | |
0.0 | 7.5 | |
almost 2 years ago | 10 days ago | |
Python | Julia | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
icontract-hypothesis
-
Automated Unit Test Improvement Using Large Language Models at Meta
https://github.com/mristin/icontract-hypothesis
Nagini and deal-solver attempt to Formally Verify Python code with or without unit tests: https://news.ycombinator.com/item?id=39139198
Additional research:
"Fuzz target generation using LLMs" (2023)
-
Adding “invariant” clauses to C++ via GCC plugin to enable Design-by-Contract
https://icontract.readthedocs.io/en/latest/usage.html#invari...
For unit testing, there's icontract-hypothesis; with the Preconditions and Postconditions delineated by e.g. decorators, it's possible to generate many of the fuzz tests from the additional Design by Contract structure of the source.
From https://github.com/mristin/icontract-hypothesis :
> icontract-hypothesis combines design-by-contract with automatic testing.
> It is an integration between icontract library for design-by-contract and Hypothesis library for property-based testing.
> The result is a powerful combination that allows you to automatically test your code. Instead of writing manually the Hypothesis search strategies for a function, icontract-hypothesis infers them based on the function’s [sic] precondition
-
Pynguin – Allow developers to generate Python unit tests automatically
Just in case you are looking for an alternative approach: if you write contracts in your code, you might also consider crosshair [1] or icontract-hypothesis [2]. If your function/method does not need any pre-conditions then the the type annotations can be directly used.
(I'm one of the authors of icontract-hypothesis.)
[1] https://github.com/pschanely/CrossHair
[2] https://github.com/mristin/icontract-hypothesis
Polyester.jl
-
[2207.08135] Parallelizing Explicit and Implicit Extrapolation Methods for Ordinary Differential Equations
This is a new stiff ODE solver which uses multi-threading within the method to make the solve of single ODEs faster in cases where it's too small to benefit from implicit threading in BLAS. Uses Polyester mixed with a very specific adaptivity method to optimize the work calculation to hit this performance. And of note, it's the type of manual parallel algorithm that cannot use array-based parallelism offered by machine learning libraries, so it's an algorithm you kind of need to implement in C++ or... Julia! Was a fun multi-year project and am really glad to see it completed.
-
Concurrency in Julia
The Folds.jl [1] package mentioned in the article is very nicely written.
For another alternative to Julia's built-in `Threads.@threads` macro, folks may also be interested in checking out `@batch` from Polyester.jl [2] (formerly CheapThreads.jl), which features particularly low-overhead threading.
[1] https://github.com/JuliaFolds/Folds.jl
[2] https://github.com/JuliaSIMD/Polyester.jl
- Pynguin – Allow developers to generate Python unit tests automatically
What are some alternatives?
pynguin - The PYthoN General UnIt Test geNerator is a test-generation tool for Python
CrossHair - An analysis tool for Python that blurs the line between testing and type systems.
parallel_primes_rs - A very naïve implementation of rust algorithm that finds all primes between two numbers
clang-contracts - Experimental support for contracts programming in clang++
Primes.jl - Prime numbers in Julia
AlphaCodium - Official implementation for the paper: "Code Generation with AlphaCodium: From Prompt Engineering to Flow Engineering""
Folds.jl - A unified interface for sequential, threaded, and distributed fold
ReusePatterns.jl - Implement composition and concrete subtyping in Julia.