logic_tools 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,17 @@
1
- * ~a~b~c~d+~a~bc+~ac~d+b~cd+a~b~c~d+a~bd
2
- got: ~ac~d+~b~c~d+~bcd+b~cd
3
- good: ~ac~d+a~bd+~b~c~d+~bcd+b~cd
4
- FIXED!
5
-
1
+ = Known bugs
2
+ ---
3
+ === Bug 1
4
+ $ simplify_qm "~a~b~c~d+~a~bc+~ac~d+b~cd+a~b~c~d+a~bd"
5
+
6
+ -> got: ~ac~d+~b~c~d+~bcd+b~cd
7
+ expecting: ~ac~d+a~bd+~b~c~d+~bcd+b~cd
8
+
9
+ *FIXED*
6
10
 
11
+ ---
12
+ === Bug 2
13
+ $ simplify_qm "~~~a"
14
+
15
+ -> Crashes
16
+
17
+ *FIXED*
@@ -13,6 +13,12 @@ require "logic_tools/logicparse.rb"
13
13
  # For simplifying
14
14
  require "logic_tools/logicsimplify.rb"
15
15
 
16
+ # For the command line interface
17
+ require "logic_tools/logicinput.rb"
18
+
19
+ # For the command line interface
20
+ require "logic_tools/logicinput.rb"
21
+
16
22
  include LogicTools
17
23
 
18
24
 
@@ -22,25 +28,29 @@ include LogicTools
22
28
  ############################
23
29
  # The main program
24
30
 
25
- # First gets the expression to treat
26
- $expr = nil
27
- # Is it in the arguments?
28
- unless $*.empty? then
29
- # Yes, get the expression from them
30
- $expr = $*.join
31
- else
32
- # Get the expression from standard input
33
- print "Please enter your expression and end with ^D:\n"
34
- $expr = ARGF.read
31
+ ## Now use the common command line interface
32
+ # # First gets the expression to treat
33
+ # $expr = nil
34
+ # # Is it in the arguments?
35
+ # unless $*.empty? then
36
+ # # Yes, get the expression from them
37
+ # $expr = $*.join
38
+ # else
39
+ # # Get the expression from standard input
40
+ # print "Please enter your expression and end with ^D:\n"
41
+ # $expr = ARGF.read
42
+ # end
43
+ #
44
+
45
+ # Iterrate on each expression
46
+ each_input do |expr|
47
+ # Parse the expression
48
+ parsed = string2logic(expr)
49
+
50
+ # Simplify it
51
+ simple = parsed.simplify
52
+ # print "Computation done\n"
53
+
54
+ # Display the result
55
+ print simple.to_s, "\n"
35
56
  end
36
-
37
- # Parse the expression
38
- $parsed = string2logic($expr)
39
-
40
- # Simplify it
41
- $simple = $parsed.simplify
42
-
43
- # print "Computation done\n"
44
-
45
- # Display the result
46
- print $simple.to_s, "\n"
@@ -10,6 +10,9 @@ require "logic_tools/logictree.rb"
10
10
  # For parsing the inputs
11
11
  require "logic_tools/logicparse.rb"
12
12
 
13
+ # For the command line interface
14
+ require "logic_tools/logicinput.rb"
15
+
13
16
  include LogicTools
14
17
 
15
18
 
@@ -19,25 +22,41 @@ include LogicTools
19
22
  ############################
20
23
  # The main program
21
24
 
22
- # First gets the expression to treat
23
- $expr = nil
24
- # Is it in the arguments?
25
- unless $*.empty? then
26
- # Yes, get the expression from them
27
- $expr = $*.join
28
- else
29
- # Get the expression from standard input
30
- print "Please enter your expression and end with ^D:\n"
31
- $expr = ARGF.read
25
+ ## Now use the common command line interface
26
+ # # First gets the expression to treat
27
+ # $expr = nil
28
+ # # Is it in the arguments?
29
+ # unless $*.empty? then
30
+ # # Yes, get the expression from them
31
+ # $expr = $*.join
32
+ # else
33
+ # # Get the expression from standard input
34
+ # print "Please enter your expression and end with ^D:\n"
35
+ # $expr = ARGF.read
36
+ # end
37
+ #
38
+ # # Parse the expression
39
+ # $parsed = string2logic($expr)
40
+ #
41
+ # # Generates its conjunctive normal form
42
+ # $conj = $parsed.to_std_conjunctive
43
+ #
44
+ # # print "Computation done\n"
45
+ #
46
+ # # Display the result
47
+ # print $conj.to_s, "\n"
48
+
49
+
50
+ # Iterrate on each expression
51
+ each_input do |expr|
52
+ # Parse the expression
53
+ parsed = string2logic(expr)
54
+
55
+ # Generates its conjunctive normal form
56
+ conj = parsed.to_std_conjunctive
57
+
58
+ # print "Computation done\n"
59
+
60
+ # Display the result
61
+ print conj.to_s, "\n"
32
62
  end
33
-
34
- # Parse the expression
35
- $parsed = string2logic($expr)
36
-
37
- # Generates its conjunctive normal form
38
- $conj = $parsed.to_std_conjunctive
39
-
40
- # print "Computation done\n"
41
-
42
- # Display the result
43
- print $conj.to_s, "\n"
@@ -10,6 +10,9 @@ require "logic_tools/logictree.rb"
10
10
  # For parsing the inputs
11
11
  require "logic_tools/logicparse.rb"
12
12
 
13
+ # For the command line interface
14
+ require "logic_tools/logicinput.rb"
15
+
13
16
  include LogicTools
14
17
 
15
18
 
@@ -19,25 +22,41 @@ include LogicTools
19
22
  ############################
20
23
  # The main program
21
24
 
22
- # First gets the expression to treat
23
- $expr = nil
24
- # Is it in the arguments?
25
- unless $*.empty? then
26
- # Yes, get the expression from them
27
- $expr = $*.join
28
- else
29
- # Get the expression from standard input
30
- print "Please enter your expression and end with ^D:\n"
31
- $expr = ARGF.read
25
+ ## Now use the common command line interface
26
+ # # First gets the expression to treat
27
+ # $expr = nil
28
+ # # Is it in the arguments?
29
+ # unless $*.empty? then
30
+ # # Yes, get the expression from them
31
+ # $expr = $*.join
32
+ # else
33
+ # # Get the expression from standard input
34
+ # print "Please enter your expression and end with ^D:\n"
35
+ # $expr = ARGF.read
36
+ # end
37
+ #
38
+ # # Parse the expression
39
+ # $parsed = string2logic($expr)
40
+ #
41
+ # # Generates its disjunctive normal form
42
+ # $dij = $parsed.to_std_disjunctive
43
+ #
44
+ # # print "Computation done\n"
45
+ #
46
+ # # Display the result
47
+ # print $dij.to_s, "\n"
48
+
49
+
50
+ # Iterrate on each expression
51
+ each_input do |expr|
52
+ # Parse the expression
53
+ parsed = string2logic(expr)
54
+
55
+ # Generates its disjunctive normal form
56
+ dij = parsed.to_std_disjunctive
57
+
58
+ # print "Computation done\n"
59
+
60
+ # Display the result
61
+ print dij.to_s, "\n"
32
62
  end
33
-
34
- # Parse the expression
35
- $parsed = string2logic($expr)
36
-
37
- # Generates its disjonctive normal form
38
- $dij = $parsed.to_std_disjonctive
39
-
40
- # print "Computation done\n"
41
-
42
- # Display the result
43
- print $dij.to_s, "\n"
@@ -10,6 +10,9 @@ require "logic_tools/logictree.rb"
10
10
  # For parsing the inputs
11
11
  require "logic_tools/logicparse.rb"
12
12
 
13
+ # For the command line interface
14
+ require "logic_tools/logicinput.rb"
15
+
13
16
  include LogicTools
14
17
 
15
18
 
@@ -19,29 +22,47 @@ include LogicTools
19
22
  ############################
20
23
  # The main program
21
24
 
22
- # First gets the expression to treat
23
- $expr = nil
24
- # Is it in the arguments?
25
- unless $*.empty? then
26
- # Yes, get the expression from them
27
- $expr = $*.join
28
- else
29
- # Get the expression from standard input
30
- print "Please enter your expression and end with ^D:\n"
31
- $expr = ARGF.read
32
- end
25
+ ## Now use the common command line interface
26
+ # # First gets the expression to treat
27
+ # $expr = nil
28
+ # # Is it in the arguments?
29
+ # unless $*.empty? then
30
+ # # Yes, get the expression from them
31
+ # $expr = $*.join
32
+ # else
33
+ # # Get the expression from standard input
34
+ # print "Please enter your expression and end with ^D:\n"
35
+ # $expr = ARGF.read
36
+ # end
37
+ #
38
+ # # Parse the expression
39
+ # $parsed = string2logic($expr)
40
+ #
41
+ # # Display the variables
42
+ # $vars = $parsed.getVariables
43
+ # $vars.each { |var| print "#{var} " }
44
+ # print "\n"
45
+ #
46
+ # # Display the values
47
+ # $parsed.each_line do |vars,val|
48
+ # vars.each { |var| print "#{var.value ? 1 : 0} " }
49
+ # print "#{val ? 1: 0}\n"
50
+ # end
33
51
 
34
- # Parse the expression
35
- $parsed = string2logic($expr)
52
+ # Iterrate on each expression
53
+ each_input do |expr|
54
+ # Parse the expression
55
+ parsed = string2logic(expr)
36
56
 
37
- # Display the variables
38
- $vars = $parsed.getVariables
39
- $vars.each { |var| print "#{var} " }
40
- print "\n"
57
+ # Display the variables
58
+ vars = parsed.getVariables
59
+ vars.each { |var| print "#{var} " }
60
+ print "\n"
41
61
 
42
- # Display the values
43
- $parsed.each_line do |vars,val|
44
- vars.each { |var| print "#{var.value ? 1 : 0} " }
45
- print "#{val ? 1: 0}\n"
62
+ # Display the values
63
+ parsed.each_line do |vars,val|
64
+ vars.each { |var| print "#{var.value ? 1 : 0} " }
65
+ print "#{val ? 1: 0}\n"
66
+ end
67
+ print "\n"
46
68
  end
47
-
@@ -1,3 +1,3 @@
1
1
  module LogicTools
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logic_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lovic Gauthier
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-11 00:00:00.000000000 Z
11
+ date: 2016-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -96,6 +96,7 @@ files:
96
96
  - exe/std_dij
97
97
  - exe/truth_tbl
98
98
  - lib/logic_tools.rb
99
+ - lib/logic_tools/logicinput.rb
99
100
  - lib/logic_tools/logicparse.rb
100
101
  - lib/logic_tools/logicsimplify.rb
101
102
  - lib/logic_tools/logictree.rb