/logic

Parses logic expressions and produce a truth table and MC/DC cases

Primary LanguageRubyMIT LicenseMIT

logic

Installation

gem install logic

Usage

By default, you get a truth table and a list of MC/DC pairs:

logic '(apple or bongo) and (cat or dog)'

Gives you:

a <= apple b <= bongo c <= cat d <= dog

    a b c d | output
 1) 0 0 0 0 |   0
 2) 0 0 0 1 |   0
 3) 0 0 1 0 |   0
 4) 0 0 1 1 |   0
 5) 0 1 0 0 |   0
 6) 0 1 0 1 |   1
 7) 0 1 1 0 |   1
 8) 0 1 1 1 |   1
 9) 1 0 0 0 |   0
10) 1 0 0 1 |   1
11) 1 0 1 0 |   1
12) 1 0 1 1 |   1
13) 1 1 0 0 |   0
14) 1 1 0 1 |   1
15) 1 1 1 0 |   1
16) 1 1 1 1 |   1

a => [[2, 10], [3, 11], [4, 12]]
b => [[2, 6], [3, 7], [4, 8]]
c => [[5, 7], [9, 11], [13, 15]]
d => [[5, 6], [9, 10], [13, 14]]

Operators

The syntax understands: ‘and’, ‘&&’, ‘or’, ‘||’, ‘xor’, ‘^’, ‘not’, ‘!’, and parenthesis.

Copyright © 2017 Bryan Ash. See LICENSE for details.