Skip to main content

A tiny library to help in exhaustive testing of Boolean functions in Python.

Project description

exhaustion

A tiny library to help in exhaustive testing of Boolean functions in Python.

Logo

Requirements

  • Python 3.6 or newer

Installation

Exhaustion can be installed using pip:

pip install exhaustion

Usage

Usage is very straightforward, exhaustion is compatible with any testing library that supports assertions.

import unittest

from exhaustion import exhaust

def _and(a: bool, b: bool):
    """ A simple wrapper over the Python `and` operator for demonstration purposes.

    Args:
        a (bool): The left-hand operand.
        b (bool): The right-hand operand.
    Returns:
        bool: The Boolean conjunction of the arguments provided.
    """
    return a and b

class TestAndAlgebraic(unittest.TestCase):
    """ Tests the algebraic properties of the _and function.
    """

    def test_and_commutative(self):
        """ Proves by exhaustion that the _and function is commutative.
        """
        # The lambda below will execute for every possible combination of Boolean arguments.
        exhaust(lambda a, b: self.assertTrue(_and(a, b) == _and(b, a)))

Related Projects

This library is intentionally very minimal, and was designed to be so. If you're looking for a richer feature set, you might consider the following projects:

  • exhaust - Not to be confused with this project, a library that supports exhastive enumeration of any finite set you can express using a generator function.

License

MIT © lambdacasserole.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exhaustion-1.0.3.tar.gz (3.3 kB view details)

Uploaded Source

Built Distribution

exhaustion-1.0.3-py3-none-any.whl (3.3 kB view details)

Uploaded Python 3

File details

Details for the file exhaustion-1.0.3.tar.gz.

File metadata

  • Download URL: exhaustion-1.0.3.tar.gz
  • Upload date:
  • Size: 3.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.6.9 Linux/5.4.0-124-generic

File hashes

Hashes for exhaustion-1.0.3.tar.gz
Algorithm Hash digest
SHA256 984fdbc5851f2d553600497377b6c5d7abda11c2f4cd3dc7758a0133c178697a
MD5 98c8a52d2aa62c02fa1a88f71072a6bb
BLAKE2b-256 fd1048b2de2c5e9624f146c7bcce0a7694d737cd67fc355c6716ae4f1c1da0af

See more details on using hashes here.

File details

Details for the file exhaustion-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: exhaustion-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 3.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.6.9 Linux/5.4.0-124-generic

File hashes

Hashes for exhaustion-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f1576bafad69cb183b0f634aef006969fe0b5cf7d028f8a5d1a0c2dc462479d2
MD5 069d05402068eb5fbd080b5abb9e73e7
BLAKE2b-256 1cbe9223b8e617f32cfa9729e3c856ce24bac4bf49f3d5b6901ebc16b9e86ef4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page