sparkql 1.2.5 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -46,7 +46,7 @@ class EvaluatorTest < Test::Unit::TestCase
46
46
  assert !sample(filter), "Filter: #{filter}"
47
47
  end
48
48
  end
49
-
49
+
50
50
  # One failing Not expression in a set should always fail. Here we ensure every
51
51
  # permutation of one failing
52
52
  def test_nots_stay_bad
@@ -56,7 +56,7 @@ class EvaluatorTest < Test::Unit::TestCase
56
56
  expressions << "Test Eq #{i == j}"
57
57
  end
58
58
  # Add the unary not to the front!
59
- filter = "Not " + expressions.join(" Not ")
59
+ filter = "Not #{expressions.join(' Not ')}"
60
60
  assert !sample(filter), "Filter: #{filter}"
61
61
  end
62
62
  end
@@ -97,24 +97,23 @@ class EvaluatorTest < Test::Unit::TestCase
97
97
  assert !sample("Test Eq true Not (Not Test Eq false)")
98
98
  assert sample("Not (Not Test Eq true)")
99
99
  assert sample("Not (Not(Not Test Eq true))")
100
- assert !sample("Test Eq false And Test Eq true Not Test Eq false")
100
+ assert !sample("Test Eq false And Test Eq true Not Test Eq false")
101
101
  end
102
-
102
+
103
103
  def test_examples
104
104
  # This one is based on a real life example that had problems.
105
105
  #
106
- # CurrentPrice Bt 130000.00,180000.00 And PropertySubType Eq 'Single Family Residence' And
107
- # SchoolDistrict Eq 'Byron Center','Grandville','Jenison' And MlsStatus Eq 'Active' And
108
- # BathsTotal Bt 1.50,9999.00 And BedsTotal Bt 3,99 And PropertyType Eq 'A'
109
- # Not "Garage"."Garage2" Eq 'No' And "Pool"."OutdoorAbove" Eq true
106
+ # CurrentPrice Bt 130000.00,180000.00 And PropertySubType Eq 'Single Family Residence' And
107
+ # SchoolDistrict Eq 'Byron Center','Grandville','Jenison' And MlsStatus Eq 'Active' And
108
+ # BathsTotal Bt 1.50,9999.00 And BedsTotal Bt 3,99 And PropertyType Eq 'A'
109
+ # Not "Garage"."Garage2" Eq 'No' And "Pool"."OutdoorAbove" Eq true
110
110
  # And "Pool"."OutdoorInground" Eq true Not "Substructure"."Michigan Basement" Eq true
111
111
 
112
- assert !sample("Test Eq false And Test Eq true And " +
113
- "Test Eq false And Test Eq true And " +
114
- "Test Eq true And Test Eq true And Test Eq true " +
115
- "Not Test Eq false And Test Eq false " +
116
- "And Test Eq false Not Test Eq false"
117
- )
112
+ assert !sample("Test Eq false And Test Eq true And " \
113
+ "Test Eq false And Test Eq true And " \
114
+ "Test Eq true And Test Eq true And Test Eq true " \
115
+ "Not Test Eq false And Test Eq false " \
116
+ "And Test Eq false Not Test Eq false")
118
117
  end
119
118
 
120
119
  def test_optimizations
@@ -133,10 +132,10 @@ class EvaluatorTest < Test::Unit::TestCase
133
132
  assert !sample("MlsStatus Eq false And PropertyType Eq true And (City Eq true Or City Eq false)")
134
133
  end
135
134
 
136
- def sample filter
135
+ def sample(filter)
137
136
  @parser = Parser.new
138
137
  @expressions = @parser.parse(filter)
139
- @evaluator = Evaluator.new(BooleanOrBustExpressionResolver.new())
138
+ @evaluator = Evaluator.new(BooleanOrBustExpressionResolver.new)
140
139
  @evaluator.evaluate(@expressions)
141
140
  end
142
141
  end
@@ -7,17 +7,17 @@ class ExpressionStateTest < Test::Unit::TestCase
7
7
  @subject = ExpressionState.new
8
8
  @parser = Parser.new
9
9
  end
10
-
10
+
11
11
  def test_needs_join
12
12
  filter = '"General Property Description"."Taxes" Lt 500.0'
13
13
  process(filter)
14
14
  assert @subject.needs_join?
15
15
  end
16
-
16
+
17
17
  def test_or
18
18
  filter = '"General Property Description"."Taxes" Lt 500.0 Or "General Property Description"."Taxes" Gt 400.0'
19
19
  process(filter)
20
- assert !@subject.needs_join?, "#{@subject.inspect} Expressions:#{ @expressions.inspect}"
20
+ assert !@subject.needs_join?, "#{@subject.inspect} Expressions:#{@expressions.inspect}"
21
21
  end
22
22
 
23
23
  def test_not
@@ -33,31 +33,31 @@ class ExpressionStateTest < Test::Unit::TestCase
33
33
  end
34
34
 
35
35
  def test_and_or
36
- filter = '"General Property Description"."Taxes" Lt 500.0 And "General Property Description"."Taxes2" ' +
37
- 'Eq 1.0 Or "General Property Description"."Taxes" Gt 400.0'
36
+ filter = '"General Property Description"."Taxes" Lt 500.0 And "General Property Description"."Taxes2" ' \
37
+ 'Eq 1.0 Or "General Property Description"."Taxes" Gt 400.0'
38
38
  process(filter)
39
39
  assert !@subject.needs_join?
40
40
  end
41
41
 
42
42
  def test_or_and
43
- filter = '"General Property Description"."Taxes" Lt 500.0 Or "General Property Description"."Taxes" ' +
44
- 'Gt 400.0 And "General Property Description"."Taxes2" Eq 1.0'
43
+ filter = '"General Property Description"."Taxes" Lt 500.0 Or "General Property Description"."Taxes" ' \
44
+ 'Gt 400.0 And "General Property Description"."Taxes2" Eq 1.0'
45
45
  process(filter)
46
46
  assert @subject.needs_join?
47
47
  end
48
-
48
+
49
49
  def test_or_with_standard_field
50
50
  filter = 'Test Eq 0.0 Or "General Property Description"."Taxes" Lt 500.0'
51
51
  process(filter)
52
52
  assert @subject.needs_join?
53
53
  end
54
-
54
+
55
55
  # Nesting
56
56
  def test_nested_or
57
57
  parse '"General Property Description"."Taxes" Lt 5.0 Or ("General Property Description"."Taxes" Gt 4.0)'
58
58
  @expressions.each do |ex|
59
59
  @subject.push(ex)
60
- assert @subject.needs_join?, "#{@subject.inspect} Expression:#{ ex.inspect}"
60
+ assert @subject.needs_join?, "#{@subject.inspect} Expression:#{ex.inspect}"
61
61
  end
62
62
  end
63
63
 
@@ -70,20 +70,20 @@ class ExpressionStateTest < Test::Unit::TestCase
70
70
  @subject.push(@expressions[2])
71
71
  assert !@subject.needs_join?
72
72
  end
73
-
73
+
74
74
  # Nesting
75
75
  def test_nested_and
76
76
  parse '"Tax"."Taxes" Lt 5.0 Or ("Tax"."Taxes" Gt 4.0 And "Tax"."Taxes" Gt 2.0)'
77
77
  @expressions.each do |ex|
78
78
  @subject.push(ex)
79
- assert @subject.needs_join?, "#{@subject.inspect} Expression:#{ ex.inspect}"
79
+ assert @subject.needs_join?, "#{@subject.inspect} Expression:#{ex.inspect}"
80
80
  end
81
81
  end
82
-
82
+
83
83
  def parse(filter)
84
84
  @expressions = @parser.parse(filter)
85
85
  end
86
-
86
+
87
87
  def process(filter)
88
88
  @expressions = @parser.parse(filter)
89
89
  @expressions.each do |ex|
@@ -91,5 +91,4 @@ class ExpressionStateTest < Test::Unit::TestCase
91
91
  end
92
92
  @expressions
93
93
  end
94
-
95
94
  end