pacti-org / pacti

A package for compositional system analysis and design
https://www.pacti.org
BSD 3-Clause "New" or "Revised" License
19 stars 5 forks source link

Performance benchmarking #336

Closed NicolasRouquette closed 12 months ago

NicolasRouquette commented 1 year ago

The API is backwards compatible but offers new APIs for compose and quotient that allow specifying the list of tactics to be used and provide a tuple result, the resulting contract, and the list of tactic usage information.

codecov[bot] commented 1 year ago

Codecov Report

Merging #336 (6cb8444) into main (ae3b55d) will increase coverage by 2.15%. Report is 2 commits behind head on main. The diff coverage is 83.89%.

@@            Coverage Diff             @@
##             main     #336      +/-   ##
==========================================
+ Coverage   79.61%   81.77%   +2.15%     
==========================================
  Files          16       16              
  Lines        1982     2052      +70     
  Branches      462      440      -22     
==========================================
+ Hits         1578     1678     +100     
+ Misses        273      238      -35     
- Partials      131      136       +5     
Files Changed Coverage Δ
src/pacti/terms/polyhedra/serializer.py 79.37% <ø> (+6.25%) :arrow_up:
src/pacti/terms/polyhedra/polyhedra.py 82.09% <73.75%> (+3.30%) :arrow_up:
src/pacti/contracts/polyhedral_iocontract.py 82.00% <88.23%> (+0.39%) :arrow_up:
src/pacti/iocontract/iocontract.py 80.13% <97.77%> (+2.31%) :arrow_up:
src/pacti/iocontract/__init__.py 100.00% <100.00%> (ø)
src/pacti/terms/polyhedra/syntax/grammar.py 88.97% <100.00%> (+1.72%) :arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

iincer commented 1 year ago

Hi @NicolasRouquette, the code quality checks are passing, which is great. The code coverage decreased as a result of the new functionality for performance. Would you be able to write a couple of tests to exercise the new functionality? The report is https://github.com/pacti-org/pacti/pull/336/checks?check_run_id=16494187644

In addition to make test, we can run make coverage to generate an html page with coverage data.

NicolasRouquette commented 1 year ago

Yes, I'll add some additional tests to improve the coverage.

NicolasRouquette commented 1 year ago

I managed to get the code coverage > 80%.

For the remaining, we must create a contrived PolyhedralTermList and call some methods like _transform with arguments to exercise the missing code branches.

Also, can you suggest pathological inequalities that could trip the untested branches in the various tactics?