# Devel::Cover::Truth_Table - Truth tables for coverage objects. - perldoc - [phpMan]

## NAME
    [Devel::Cover::Truth_Table](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3ACover%3A%3ATruthTable/markdown) - Truth tables for coverage objects.

## VERSION
    version 1.40

## SYNOPSIS
      use [Devel::Cover::Truth_Table](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3ACover%3A%3ATruthTable/markdown);

      # $a || $b
      my $or_tt  = [Devel::Cover::Truth_Table](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3ACover%3A%3ATruthTable/markdown)->new_primitive('or_3', 0, 1, 1);

      # $c && $d
      my $and_tt = [Devel::Cover::Truth_Table](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3ACover%3A%3ATruthTable/markdown)->new_primitive('and_3', 1, 0, 1);

      # merge contents of $and_tt into right column of $or_tt, to create
      # $a || ($c && $d)
      $or_tt->right_merge($and_tt);

      # get a (sorted) textual representation
      my @text = $or_tt->sort->text;
      print "$_\n" foreach @text;

      __END__
      A B C |exp|hit
      --------------
      0 0 X | 0 |---
      0 1 0 | 0 |---
      0 1 1 | 1 |+++
      1 X X | 1 |+++
      --------------

## DESCRIPTION
    This module provides methods for creating and merging conditional primitives ("$a && $b", "$c ||
    $d", etc.) into more complex composite expressions.

## METHODS
  new_primitive($op, @coverage)
    Create a new truth table based on one of the built-in primitives, which are the subclasses of
    [Devel::Cover::DB::Condition](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3ACover%3A%3ADB%3A%3ACondition/markdown). $op is one of the following:

    and_3
        "and" or "&&" with three conditional paths.

    or_3
        "or" or "||" with three conditional paths.

    or_2
        "or" or "||" with two conditional paths. (i.e., when the right hand side of the expression
        is a constant)

    xor_4
        "xor" with four conditional paths.

    @coverage is a list booleans identifying which of the possible paths have been covered.

  sort()
    Sorts a truth table (in place) and returns the sorted object.

  text()
    Format a truth table to an array of strings for printing.

  html()
    Format a truth table in HTML.

  error()
  percentage()
    Determines the proportion of possible conditions that have coverage.

  right_merge($sub_table)
    Merge entries from $sub_table into right column of table.

  left_merge($sub_table)
    Merge entries from $sub_table into left column of table.

## SEE ALSO
    [Devel::Cover](https://www.chedong.com/phpMan.php/perldoc/Devel%3A%3ACover/markdown)

## BUGS
    None that I'm aware of...

## LICENSE
    Copyright 2002 Michael Carman <<mjcarman@mchsi.com>>

    This software is free. It is licensed under the same terms as Perl itself. The latest version
    should be available from: <http://www.pjcj.net>

