1..189
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check strict equality
ok 3 constraint matcher: match: should check inequality
ok 4 constraint matcher: match: should check strict inequality
ok 5 constraint matcher: match: should check gt operator
ok 6 constraint matcher: match: should check lt operator
ok 7 constraint matcher: match: should check gte operator
ok 8 constraint matcher: match: should check lte operator
ok 9 constraint matcher: match: should check like operator
ok 10 constraint matcher: match: should check notLike operator
ok 11 constraint matcher: match: should check and operator
ok 12 constraint matcher: match: should check or operator
ok 13 constraint matcher: match: should check with member operator
ok 14 constraint matcher: match: should check with in operator
ok 15 constraint matcher: match: should check with notIn operator
ok 16 constraint matcher: match: should allow properties with in
ok 17 constraint matcher: match: should check with boolean associativity
ok 18 constraint matcher: match: should check with nested properties
ok 19 constraint matcher: match: should check with function
ok 20 constraint matcher: match: should check with functions and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 22 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
ok 23 constraint matcher: match: should have date helpers
ok 24 constraint matcher: match: should create have type helpers
ok 25 constraint matcher: match: should check truthy statements
ok 26 constraint matcher: toConstraints: should create for expressions
ok 27 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 28 constraint matcher: toJs: should create js equvalent expression
ok 29 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 30 constraint matcher: equals: should return true when equal
ok 31 constraint matcher: equals: should return false when not equal
ok 32 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 33 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 34 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 35 flowgetFacts: should get all facts in the session
ok 36 flowgetFacts: should get all facts in the session by Type
ok 37 agenda-groups: should only fire events in focused group
ok 38 agenda-groups: should should treat focus like a stack
ok 39 auto-focus: should activate agenda groups in proper order
ok 40 async actions: should fire all rules
ok 41 events: should emit when facts are asserted
ok 42 events: should emit when facts are retracted
ok 43 events: should emit when facts are modified
ok 44 events: should emit when rules are fired
ok 45 exists rule: fact assertion: should only activate once
ok 46 exists rule: fact assertion: should not activate once if the fact does not exists
ok 47 exists rule: fact retraction: should should handle fact retractions properly
ok 48 exists rule: fact modification: should should handle fact modification properly
ok 49 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 50 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 51 exists rule: with from modifier: modify: should should handle fact modification properly
ok 52 from condition: with non array properties: should create the proper match contexts
ok 53 from condition: with non array properties: should propagate modified facts properly
ok 54 from condition: with non array properties: should retract facts properly
ok 55 from condition: with js source: should create the proper match contexts
ok 56 from condition: with js source: should propagate modified facts properly
ok 57 from condition: with array properties: should create all cross product matches
ok 58 from condition: with array properties: should retract all cross product matches
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 from condition: with not node: should only fullfill if all facts evaluate to false
ok 61 matchUntilHalt: should match until halt is called
ok 62 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 64 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 65 not rule: with multiple facts: should fire rules in order
ok 66 not rule: modifying facts: should handle modifications
ok 67 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 68 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 69 or rule: or rule with three conditions: should should match if one constraints matches
ok 70 or rule: or rule with three conditions: should not call when none constraints match
ok 71 or rule: or rule with different types: should should match if one constraints matches
ok 72 or rule: or rule with different types: should not call when none constraints match
ok 73 or rule: or with not conditions: should activate for each fact that does not exist
ok 74 flowrule: should create a rule
ok 75 flowrule: should create a rule with joins properly
ok 76 flowrule: should create a rules that are dependent on eachother properly
ok 77 salience: should activate in the proper order
ok 78 scope option: should call when a string equals 'hello'
ok 79 scope option: should call when a string equals 'world'
ok 80 scope option: should not call when a string that does equal 'hello' or 'world
ok 81 simple rule: should call hello world rule
ok 82 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 84 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 85 Flow compiled: or rule: should call when a string equals 'hello'
ok 86 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 87 Flow compiled: exists rule: should call when a string equals 'hello'
ok 88 Flow compiled: exists rule: should not call when a string that does not equal 'hello'
ok 89 Flow compiled: exists rule: should call when a string that does not equal 'hello' and one that does exist
ok 90 Flow compiled: scoped functions: should call the scoped function
ok 91 Flow compiled: events: should emit when facts are asserted
ok 92 Flow compiled: events: should emit when facts are retracted
ok 93 Flow compiled: events: should emit when facts are modified
ok 94 Flow compiled: events: should emit when rules are fired
ok 95 Flow compiled: agenda-groups: should only fire events in focused group
ok 96 Flow compiled: agenda-groups: should should treat focus like a stack
ok 97 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 98 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 99 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 100 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 101 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 102 Flow compiled: diagnosis using dsl: should treat properly
ok 103 Flow compiled: getFacts from action: should get all facts
ok 104 Flow compiled: getFacts from action: should get facts by type
ok 105 nools dsl parser: define: should parse a define statement
ok 106 nools dsl parser: define: should throw an error when the define block is missing a name
ok 107 nools dsl parser: define: should throw an error for invalid define blocks
ok 108 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 109 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 110 nools dsl parser: global: should parse a require call statement
ok 111 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 112 nools dsl parser: global: should resolve relative require paths
ok 113 nools dsl parser: global: should parse a member look up
ok 114 nools dsl parser: global: should parse a strings
ok 115 nools dsl parser: global: should parse a boolean
ok 116 nools dsl parser: global: should parse numbers
ok 117 nools dsl parser: global: should parse a new instantiation
ok 118 nools dsl parser: function: should parse a function statement
ok 119 nools dsl parser: function: should throw an error when the function block is missing a name
ok 120 nools dsl parser: function: should throw an error for invalid define blocks
ok 121 nools dsl parser: rule: should parse rules
ok 122 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 123 nools dsl parser: rule: should throw an error for a missing name
ok 124 nools dsl parser: rule: should parse not conditions
ok 125 nools dsl parser: rule: should parse or conditions
ok 126 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 127 nools dsl parser: rule: should parse when clause with from
ok 128 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 129 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 130 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 131 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 132 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 133 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 134 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 135 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 136 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 137 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 138 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 139 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 141 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 142 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 143 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 144 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 145 nools dsl parser: rule: should throw an error for invalid when clauses
ok 146 nools dsl parser: rule: should throw an error for invalid then clauses
ok 147 nools dsl parser: rule: should parse rules with exists clause
ok 148 A Parser: should parse valid string expressions
ok 149 A Parser: should parse regexps and not be greedy
ok 150 A Parser: should parse valid string expressions with functions
ok 151 A Parser: should parse valid string expressions with property access
ok 152 A Parser: should parse valid string expressions with boolean operators
ok 153 A Parser: should handle operator associativity properly
ok 154 A Parser: should parse arrays
ok 155 A Parser: should parse the in operator
ok 156 A Parser: should parse the notIn operator
ok 157 A Parser: should parse truthy statements
ok 158 Rule: createRule: with strings: should create for string
ok 159 Rule: createRule: with strings: should create for String
ok 160 Rule: createRule: with strings: should create for number
ok 161 Rule: createRule: with strings: should create for Number
ok 162 Rule: createRule: with strings: should create for date
ok 163 Rule: createRule: with strings: should create for Date
ok 164 Rule: createRule: with strings: should create for array
ok 165 Rule: createRule: with strings: should create for Array
ok 166 Rule: createRule: with strings: should create for boolean
ok 167 Rule: createRule: with strings: should create for Boolean
ok 168 Rule: createRule: with strings: should create for regexp
ok 169 Rule: createRule: with strings: should create for Regexp
ok 170 Rule: createRule: with strings: should create for object
ok 171 Rule: createRule: with strings: should create for Object
ok 172 Rule: createRule: with strings: should create for hash
ok 173 Rule: createRule: with strings: should create for Hash
ok 174 Rule: createRule: with functions: should create for String function
ok 175 Rule: createRule: with functions: should create for Number function
ok 176 Rule: createRule: with functions: should create for Date function
ok 177 Rule: createRule: with functions: should create for []
ok 178 Rule: createRule: with functions: should create for Array function
ok 179 Rule: createRule: with functions: should create for Boolean function
ok 180 Rule: createRule: with functions: should create for RegExp function
ok 181 Rule: createRule: with functions: should create for Object function
ok 182 Rule: createRule: with functions: should create for custom functions
ok 183 Rule: createRule: should create a composite rule
ok 184 Rule: createRule: should create a not pattern
ok 185 Rule: createRule: should create a or pattern
ok 186 Rule: createRule: should include reference store in constraints
ok 187 Rule: createRule: should should include from constraints
ok 188 Rule: createRule: should should include from constraints
ok 189 Rule: createRule: should should include exists constraints
# tests 189
# pass 189
# fail 0
1..189
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check strict equality
ok 3 constraint matcher: match: should check inequality
ok 4 constraint matcher: match: should check strict inequality
ok 5 constraint matcher: match: should check gt operator
ok 6 constraint matcher: match: should check lt operator
ok 7 constraint matcher: match: should check gte operator
ok 8 constraint matcher: match: should check lte operator
ok 9 constraint matcher: match: should check like operator
ok 10 constraint matcher: match: should check notLike operator
ok 11 constraint matcher: match: should check and operator
ok 12 constraint matcher: match: should check or operator
ok 13 constraint matcher: match: should check with member operator
ok 14 constraint matcher: match: should check with in operator
ok 15 constraint matcher: match: should check with notIn operator
ok 16 constraint matcher: match: should allow properties with in
ok 17 constraint matcher: match: should check with boolean associativity
ok 18 constraint matcher: match: should check with nested properties
ok 19 constraint matcher: match: should check with function
ok 20 constraint matcher: match: should check with functions and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 22 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
ok 23 constraint matcher: match: should have date helpers
ok 24 constraint matcher: match: should create have type helpers
ok 25 constraint matcher: match: should check truthy statements
ok 26 constraint matcher: toConstraints: should create for expressions
ok 27 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 28 constraint matcher: toJs: should create js equvalent expression
ok 29 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 30 constraint matcher: equals: should return true when equal
ok 31 constraint matcher: equals: should return false when not equal
ok 32 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 33 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 34 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 35 flowgetFacts: should get all facts in the session
ok 36 flowgetFacts: should get all facts in the session by Type
ok 37 agenda-groups: should only fire events in focused group
ok 38 agenda-groups: should should treat focus like a stack
ok 39 auto-focus: should activate agenda groups in proper order
ok 40 async actions: should fire all rules
ok 41 events: should emit when facts are asserted
ok 42 events: should emit when facts are retracted
ok 43 events: should emit when facts are modified
ok 44 events: should emit when rules are fired
ok 45 exists rule: fact assertion: should only activate once
ok 46 exists rule: fact assertion: should not activate once if the fact does not exists
ok 47 exists rule: fact retraction: should should handle fact retractions properly
ok 48 exists rule: fact modification: should should handle fact modification properly
ok 49 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 50 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 51 exists rule: with from modifier: modify: should should handle fact modification properly
ok 52 from condition: with non array properties: should create the proper match contexts
ok 53 from condition: with non array properties: should propagate modified facts properly
ok 54 from condition: with non array properties: should retract facts properly
ok 55 from condition: with js source: should create the proper match contexts
ok 56 from condition: with js source: should propagate modified facts properly
ok 57 from condition: with array properties: should create all cross product matches
ok 58 from condition: with array properties: should retract all cross product matches
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 from condition: with not node: should only fullfill if all facts evaluate to false
ok 61 matchUntilHalt: should match until halt is called
ok 62 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 64 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 65 not rule: with multiple facts: should fire rules in order
ok 66 not rule: modifying facts: should handle modifications
ok 67 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 68 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 69 or rule: or rule with three conditions: should should match if one constraints matches
ok 70 or rule: or rule with three conditions: should not call when none constraints match
ok 71 or rule: or rule with different types: should should match if one constraints matches
ok 72 or rule: or rule with different types: should not call when none constraints match
ok 73 or rule: or with not conditions: should activate for each fact that does not exist
ok 74 flowrule: should create a rule
ok 75 flowrule: should create a rule with joins properly
ok 76 flowrule: should create a rules that are dependent on eachother properly
ok 77 salience: should activate in the proper order
ok 78 scope option: should call when a string equals 'hello'
ok 79 scope option: should call when a string equals 'world'
ok 80 scope option: should not call when a string that does equal 'hello' or 'world
ok 81 simple rule: should call hello world rule
ok 82 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 84 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 85 Flow compiled: or rule: should call when a string equals 'hello'
ok 86 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 87 Flow compiled: exists rule: should call when a string equals 'hello'
ok 88 Flow compiled: exists rule: should not call when a string that does not equal 'hello'
ok 89 Flow compiled: exists rule: should call when a string that does not equal 'hello' and one that does exist
ok 90 Flow compiled: scoped functions: should call the scoped function
ok 91 Flow compiled: events: should emit when facts are asserted
ok 92 Flow compiled: events: should emit when facts are retracted
ok 93 Flow compiled: events: should emit when facts are modified
ok 94 Flow compiled: events: should emit when rules are fired
ok 95 Flow compiled: agenda-groups: should only fire events in focused group
ok 96 Flow compiled: agenda-groups: should should treat focus like a stack
ok 97 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 98 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 99 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 100 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 101 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 102 Flow compiled: diagnosis using dsl: should treat properly
ok 103 Flow compiled: getFacts from action: should get all facts
ok 104 Flow compiled: getFacts from action: should get facts by type
ok 105 nools dsl parser: define: should parse a define statement
ok 106 nools dsl parser: define: should throw an error when the define block is missing a name
ok 107 nools dsl parser: define: should throw an error for invalid define blocks
ok 108 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 109 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 110 nools dsl parser: global: should parse a require call statement
ok 111 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 112 nools dsl parser: global: should resolve relative require paths
ok 113 nools dsl parser: global: should parse a member look up
ok 114 nools dsl parser: global: should parse a strings
ok 115 nools dsl parser: global: should parse a boolean
ok 116 nools dsl parser: global: should parse numbers
ok 117 nools dsl parser: global: should parse a new instantiation
ok 118 nools dsl parser: function: should parse a function statement
ok 119 nools dsl parser: function: should throw an error when the function block is missing a name
ok 120 nools dsl parser: function: should throw an error for invalid define blocks
ok 121 nools dsl parser: rule: should parse rules
ok 122 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 123 nools dsl parser: rule: should throw an error for a missing name
ok 124 nools dsl parser: rule: should parse not conditions
ok 125 nools dsl parser: rule: should parse or conditions
ok 126 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 127 nools dsl parser: rule: should parse when clause with from
ok 128 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 129 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 130 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 131 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 132 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 133 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 134 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 135 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 136 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 137 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 138 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 139 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 141 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 142 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 143 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 144 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 145 nools dsl parser: rule: should throw an error for invalid when clauses
ok 146 nools dsl parser: rule: should throw an error for invalid then clauses
ok 147 nools dsl parser: rule: should parse rules with exists clause
ok 148 A Parser: should parse valid string expressions
ok 149 A Parser: should parse regexps and not be greedy
ok 150 A Parser: should parse valid string expressions with functions
ok 151 A Parser: should parse valid string expressions with property access
ok 152 A Parser: should parse valid string expressions with boolean operators
ok 153 A Parser: should handle operator associativity properly
ok 154 A Parser: should parse arrays
ok 155 A Parser: should parse the in operator
ok 156 A Parser: should parse the notIn operator
ok 157 A Parser: should parse truthy statements
ok 158 Rule: createRule: with strings: should create for string
ok 159 Rule: createRule: with strings: should create for String
ok 160 Rule: createRule: with strings: should create for number
ok 161 Rule: createRule: with strings: should create for Number
ok 162 Rule: createRule: with strings: should create for date
ok 163 Rule: createRule: with strings: should create for Date
ok 164 Rule: createRule: with strings: should create for array
ok 165 Rule: createRule: with strings: should create for Array
ok 166 Rule: createRule: with strings: should create for boolean
ok 167 Rule: createRule: with strings: should create for Boolean
ok 168 Rule: createRule: with strings: should create for regexp
ok 169 Rule: createRule: with strings: should create for Regexp
ok 170 Rule: createRule: with strings: should create for object
ok 171 Rule: createRule: with strings: should create for Object
ok 172 Rule: createRule: with strings: should create for hash
ok 173 Rule: createRule: with strings: should create for Hash
ok 174 Rule: createRule: with functions: should create for String function
ok 175 Rule: createRule: with functions: should create for Number function
ok 176 Rule: createRule: with functions: should create for Date function
ok 177 Rule: createRule: with functions: should create for []
ok 178 Rule: createRule: with functions: should create for Array function
ok 179 Rule: createRule: with functions: should create for Boolean function
ok 180 Rule: createRule: with functions: should create for RegExp function
ok 181 Rule: createRule: with functions: should create for Object function
ok 182 Rule: createRule: with functions: should create for custom functions
ok 183 Rule: createRule: should create a composite rule
ok 184 Rule: createRule: should create a not pattern
ok 185 Rule: createRule: should create a or pattern
ok 186 Rule: createRule: should include reference store in constraints
ok 187 Rule: createRule: should should include from constraints
ok 188 Rule: createRule: should should include from constraints
ok 189 Rule: createRule: should should include exists constraints
# tests 189
# pass 189
# fail 0
1..189
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check strict equality
ok 3 constraint matcher: match: should check inequality
ok 4 constraint matcher: match: should check strict inequality
ok 5 constraint matcher: match: should check gt operator
ok 6 constraint matcher: match: should check lt operator
ok 7 constraint matcher: match: should check gte operator
ok 8 constraint matcher: match: should check lte operator
ok 9 constraint matcher: match: should check like operator
ok 10 constraint matcher: match: should check notLike operator
ok 11 constraint matcher: match: should check and operator
ok 12 constraint matcher: match: should check or operator
ok 13 constraint matcher: match: should check with member operator
ok 14 constraint matcher: match: should check with in operator
ok 15 constraint matcher: match: should check with notIn operator
ok 16 constraint matcher: match: should allow properties with in
ok 17 constraint matcher: match: should check with boolean associativity
ok 18 constraint matcher: match: should check with nested properties
ok 19 constraint matcher: match: should check with function
ok 20 constraint matcher: match: should check with functions and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 22 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
ok 23 constraint matcher: match: should have date helpers
ok 24 constraint matcher: match: should create have type helpers
ok 25 constraint matcher: match: should check truthy statements
ok 26 constraint matcher: toConstraints: should create for expressions
ok 27 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 28 constraint matcher: toJs: should create js equvalent expression
ok 29 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 30 constraint matcher: equals: should return true when equal
ok 31 constraint matcher: equals: should return false when not equal
ok 32 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 33 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 34 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 35 flowgetFacts: should get all facts in the session
ok 36 flowgetFacts: should get all facts in the session by Type
ok 37 agenda-groups: should only fire events in focused group
ok 38 agenda-groups: should should treat focus like a stack
ok 39 auto-focus: should activate agenda groups in proper order
ok 40 async actions: should fire all rules
ok 41 events: should emit when facts are asserted
ok 42 events: should emit when facts are retracted
ok 43 events: should emit when facts are modified
ok 44 events: should emit when rules are fired
ok 45 exists rule: fact assertion: should only activate once
ok 46 exists rule: fact assertion: should not activate once if the fact does not exists
ok 47 exists rule: fact retraction: should should handle fact retractions properly
ok 48 exists rule: fact modification: should should handle fact modification properly
ok 49 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 50 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 51 exists rule: with from modifier: modify: should should handle fact modification properly
ok 52 from condition: with non array properties: should create the proper match contexts
ok 53 from condition: with non array properties: should propagate modified facts properly
ok 54 from condition: with non array properties: should retract facts properly
ok 55 from condition: with js source: should create the proper match contexts
ok 56 from condition: with js source: should propagate modified facts properly
ok 57 from condition: with array properties: should create all cross product matches
ok 58 from condition: with array properties: should retract all cross product matches
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 from condition: with not node: should only fullfill if all facts evaluate to false
ok 61 matchUntilHalt: should match until halt is called
ok 62 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 64 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 65 not rule: with multiple facts: should fire rules in order
ok 66 not rule: modifying facts: should handle modifications
ok 67 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 68 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 69 or rule: or rule with three conditions: should should match if one constraints matches
ok 70 or rule: or rule with three conditions: should not call when none constraints match
ok 71 or rule: or rule with different types: should should match if one constraints matches
ok 72 or rule: or rule with different types: should not call when none constraints match
ok 73 or rule: or with not conditions: should activate for each fact that does not exist
ok 74 flowrule: should create a rule
ok 75 flowrule: should create a rule with joins properly
ok 76 flowrule: should create a rules that are dependent on eachother properly
ok 77 salience: should activate in the proper order
ok 78 scope option: should call when a string equals 'hello'
ok 79 scope option: should call when a string equals 'world'
ok 80 scope option: should not call when a string that does equal 'hello' or 'world
ok 81 simple rule: should call hello world rule
ok 82 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 84 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 85 Flow compiled: or rule: should call when a string equals 'hello'
ok 86 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 87 Flow compiled: exists rule: should call when a string equals 'hello'
ok 88 Flow compiled: exists rule: should not call when a string that does not equal 'hello'
ok 89 Flow compiled: exists rule: should call when a string that does not equal 'hello' and one that does exist
ok 90 Flow compiled: scoped functions: should call the scoped function
ok 91 Flow compiled: events: should emit when facts are asserted
ok 92 Flow compiled: events: should emit when facts are retracted
ok 93 Flow compiled: events: should emit when facts are modified
ok 94 Flow compiled: events: should emit when rules are fired
ok 95 Flow compiled: agenda-groups: should only fire events in focused group
ok 96 Flow compiled: agenda-groups: should should treat focus like a stack
ok 97 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 98 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 99 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 100 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 101 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 102 Flow compiled: diagnosis using dsl: should treat properly
ok 103 Flow compiled: getFacts from action: should get all facts
ok 104 Flow compiled: getFacts from action: should get facts by type
ok 105 nools dsl parser: define: should parse a define statement
ok 106 nools dsl parser: define: should throw an error when the define block is missing a name
ok 107 nools dsl parser: define: should throw an error for invalid define blocks
ok 108 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 109 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 110 nools dsl parser: global: should parse a require call statement
ok 111 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 112 nools dsl parser: global: should resolve relative require paths
ok 113 nools dsl parser: global: should parse a member look up
ok 114 nools dsl parser: global: should parse a strings
ok 115 nools dsl parser: global: should parse a boolean
ok 116 nools dsl parser: global: should parse numbers
ok 117 nools dsl parser: global: should parse a new instantiation
ok 118 nools dsl parser: function: should parse a function statement
ok 119 nools dsl parser: function: should throw an error when the function block is missing a name
ok 120 nools dsl parser: function: should throw an error for invalid define blocks
ok 121 nools dsl parser: rule: should parse rules
ok 122 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 123 nools dsl parser: rule: should throw an error for a missing name
ok 124 nools dsl parser: rule: should parse not conditions
ok 125 nools dsl parser: rule: should parse or conditions
ok 126 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 127 nools dsl parser: rule: should parse when clause with from
ok 128 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 129 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 130 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 131 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 132 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 133 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 134 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 135 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 136 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 137 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 138 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 139 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 141 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 142 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 143 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 144 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 145 nools dsl parser: rule: should throw an error for invalid when clauses
ok 146 nools dsl parser: rule: should throw an error for invalid then clauses
ok 147 nools dsl parser: rule: should parse rules with exists clause
ok 148 A Parser: should parse valid string expressions
ok 149 A Parser: should parse regexps and not be greedy
ok 150 A Parser: should parse valid string expressions with functions
ok 151 A Parser: should parse valid string expressions with property access
ok 152 A Parser: should parse valid string expressions with boolean operators
ok 153 A Parser: should handle operator associativity properly
ok 154 A Parser: should parse arrays
ok 155 A Parser: should parse the in operator
ok 156 A Parser: should parse the notIn operator
ok 157 A Parser: should parse truthy statements
ok 158 Rule: createRule: with strings: should create for string
ok 159 Rule: createRule: with strings: should create for String
ok 160 Rule: createRule: with strings: should create for number
ok 161 Rule: createRule: with strings: should create for Number
ok 162 Rule: createRule: with strings: should create for date
ok 163 Rule: createRule: with strings: should create for Date
ok 164 Rule: createRule: with strings: should create for array
ok 165 Rule: createRule: with strings: should create for Array
ok 166 Rule: createRule: with strings: should create for boolean
ok 167 Rule: createRule: with strings: should create for Boolean
ok 168 Rule: createRule: with strings: should create for regexp
ok 169 Rule: createRule: with strings: should create for Regexp
ok 170 Rule: createRule: with strings: should create for object
ok 171 Rule: createRule: with strings: should create for Object
ok 172 Rule: createRule: with strings: should create for hash
ok 173 Rule: createRule: with strings: should create for Hash
ok 174 Rule: createRule: with functions: should create for String function
ok 175 Rule: createRule: with functions: should create for Number function
ok 176 Rule: createRule: with functions: should create for Date function
ok 177 Rule: createRule: with functions: should create for []
ok 178 Rule: createRule: with functions: should create for Array function
ok 179 Rule: createRule: with functions: should create for Boolean function
ok 180 Rule: createRule: with functions: should create for RegExp function
ok 181 Rule: createRule: with functions: should create for Object function
ok 182 Rule: createRule: with functions: should create for custom functions
ok 183 Rule: createRule: should create a composite rule
ok 184 Rule: createRule: should create a not pattern
ok 185 Rule: createRule: should create a or pattern
ok 186 Rule: createRule: should include reference store in constraints
ok 187 Rule: createRule: should should include from constraints
ok 188 Rule: createRule: should should include from constraints
ok 189 Rule: createRule: should should include exists constraints
# tests 189
# pass 189
# fail 0
1..189
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check strict equality
ok 3 constraint matcher: match: should check inequality
ok 4 constraint matcher: match: should check strict inequality
ok 5 constraint matcher: match: should check gt operator
ok 6 constraint matcher: match: should check lt operator
ok 7 constraint matcher: match: should check gte operator
ok 8 constraint matcher: match: should check lte operator
ok 9 constraint matcher: match: should check like operator
ok 10 constraint matcher: match: should check notLike operator
ok 11 constraint matcher: match: should check and operator
ok 12 constraint matcher: match: should check or operator
ok 13 constraint matcher: match: should check with member operator
ok 14 constraint matcher: match: should check with in operator
ok 15 constraint matcher: match: should check with notIn operator
ok 16 constraint matcher: match: should allow properties with in
ok 17 constraint matcher: match: should check with boolean associativity
ok 18 constraint matcher: match: should check with nested properties
ok 19 constraint matcher: match: should check with function
ok 20 constraint matcher: match: should check with functions and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 22 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
ok 23 constraint matcher: match: should have date helpers
ok 24 constraint matcher: match: should create have type helpers
ok 25 constraint matcher: match: should check truthy statements
ok 26 constraint matcher: toConstraints: should create for expressions
ok 27 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 28 constraint matcher: toJs: should create js equvalent expression
ok 29 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 30 constraint matcher: equals: should return true when equal
ok 31 constraint matcher: equals: should return false when not equal
ok 32 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 33 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 34 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 35 flowgetFacts: should get all facts in the session
ok 36 flowgetFacts: should get all facts in the session by Type
ok 37 agenda-groups: should only fire events in focused group
ok 38 agenda-groups: should should treat focus like a stack
ok 39 auto-focus: should activate agenda groups in proper order
ok 40 async actions: should fire all rules
ok 41 events: should emit when facts are asserted
ok 42 events: should emit when facts are retracted
ok 43 events: should emit when facts are modified
ok 44 events: should emit when rules are fired
ok 45 exists rule: fact assertion: should only activate once
ok 46 exists rule: fact assertion: should not activate once if the fact does not exists
ok 47 exists rule: fact retraction: should should handle fact retractions properly
ok 48 exists rule: fact modification: should should handle fact modification properly
ok 49 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 50 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 51 exists rule: with from modifier: modify: should should handle fact modification properly
ok 52 from condition: with non array properties: should create the proper match contexts
ok 53 from condition: with non array properties: should propagate modified facts properly
ok 54 from condition: with non array properties: should retract facts properly
ok 55 from condition: with js source: should create the proper match contexts
ok 56 from condition: with js source: should propagate modified facts properly
ok 57 from condition: with array properties: should create all cross product matches
ok 58 from condition: with array properties: should retract all cross product matches
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 from condition: with not node: should only fullfill if all facts evaluate to false
ok 61 matchUntilHalt: should match until halt is called
ok 62 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 64 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 65 not rule: with multiple facts: should fire rules in order
ok 66 not rule: modifying facts: should handle modifications
ok 67 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 68 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 69 or rule: or rule with three conditions: should should match if one constraints matches
ok 70 or rule: or rule with three conditions: should not call when none constraints match
ok 71 or rule: or rule with different types: should should match if one constraints matches
ok 72 or rule: or rule with different types: should not call when none constraints match
ok 73 or rule: or with not conditions: should activate for each fact that does not exist
ok 74 flowrule: should create a rule
ok 75 flowrule: should create a rule with joins properly
ok 76 flowrule: should create a rules that are dependent on eachother properly
ok 77 salience: should activate in the proper order
ok 78 scope option: should call when a string equals 'hello'
ok 79 scope option: should call when a string equals 'world'
ok 80 scope option: should not call when a string that does equal 'hello' or 'world
ok 81 simple rule: should call hello world rule
ok 82 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 84 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 85 Flow compiled: or rule: should call when a string equals 'hello'
ok 86 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 87 Flow compiled: exists rule: should call when a string equals 'hello'
ok 88 Flow compiled: exists rule: should not call when a string that does not equal 'hello'
ok 89 Flow compiled: exists rule: should call when a string that does not equal 'hello' and one that does exist
ok 90 Flow compiled: scoped functions: should call the scoped function
ok 91 Flow compiled: events: should emit when facts are asserted
ok 92 Flow compiled: events: should emit when facts are retracted
ok 93 Flow compiled: events: should emit when facts are modified
ok 94 Flow compiled: events: should emit when rules are fired
ok 95 Flow compiled: agenda-groups: should only fire events in focused group
ok 96 Flow compiled: agenda-groups: should should treat focus like a stack
ok 97 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 98 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 99 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 100 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 101 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 102 Flow compiled: diagnosis using dsl: should treat properly
ok 103 Flow compiled: getFacts from action: should get all facts
ok 104 Flow compiled: getFacts from action: should get facts by type
ok 105 nools dsl parser: define: should parse a define statement
ok 106 nools dsl parser: define: should throw an error when the define block is missing a name
ok 107 nools dsl parser: define: should throw an error for invalid define blocks
ok 108 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 109 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 110 nools dsl parser: global: should parse a require call statement
ok 111 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 112 nools dsl parser: global: should resolve relative require paths
ok 113 nools dsl parser: global: should parse a member look up
ok 114 nools dsl parser: global: should parse a strings
ok 115 nools dsl parser: global: should parse a boolean
ok 116 nools dsl parser: global: should parse numbers
ok 117 nools dsl parser: global: should parse a new instantiation
ok 118 nools dsl parser: function: should parse a function statement
ok 119 nools dsl parser: function: should throw an error when the function block is missing a name
ok 120 nools dsl parser: function: should throw an error for invalid define blocks
ok 121 nools dsl parser: rule: should parse rules
ok 122 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 123 nools dsl parser: rule: should throw an error for a missing name
ok 124 nools dsl parser: rule: should parse not conditions
ok 125 nools dsl parser: rule: should parse or conditions
ok 126 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 127 nools dsl parser: rule: should parse when clause with from
ok 128 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 129 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 130 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 131 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 132 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 133 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 134 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 135 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 136 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 137 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 138 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 139 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 141 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 142 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 143 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 144 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 145 nools dsl parser: rule: should throw an error for invalid when clauses
ok 146 nools dsl parser: rule: should throw an error for invalid then clauses
ok 147 nools dsl parser: rule: should parse rules with exists clause
ok 148 A Parser: should parse valid string expressions
ok 149 A Parser: should parse regexps and not be greedy
ok 150 A Parser: should parse valid string expressions with functions
ok 151 A Parser: should parse valid string expressions with property access
ok 152 A Parser: should parse valid string expressions with boolean operators
ok 153 A Parser: should handle operator associativity properly
ok 154 A Parser: should parse arrays
ok 155 A Parser: should parse the in operator
ok 156 A Parser: should parse the notIn operator
ok 157 A Parser: should parse truthy statements
ok 158 Rule: createRule: with strings: should create for string
ok 159 Rule: createRule: with strings: should create for String
ok 160 Rule: createRule: with strings: should create for number
ok 161 Rule: createRule: with strings: should create for Number
ok 162 Rule: createRule: with strings: should create for date
ok 163 Rule: createRule: with strings: should create for Date
ok 164 Rule: createRule: with strings: should create for array
ok 165 Rule: createRule: with strings: should create for Array
ok 166 Rule: createRule: with strings: should create for boolean
ok 167 Rule: createRule: with strings: should create for Boolean
ok 168 Rule: createRule: with strings: should create for regexp
ok 169 Rule: createRule: with strings: should create for Regexp
ok 170 Rule: createRule: with strings: should create for object
ok 171 Rule: createRule: with strings: should create for Object
ok 172 Rule: createRule: with strings: should create for hash
ok 173 Rule: createRule: with strings: should create for Hash
ok 174 Rule: createRule: with functions: should create for String function
ok 175 Rule: createRule: with functions: should create for Number function
ok 176 Rule: createRule: with functions: should create for Date function
ok 177 Rule: createRule: with functions: should create for []
ok 178 Rule: createRule: with functions: should create for Array function
ok 179 Rule: createRule: with functions: should create for Boolean function
ok 180 Rule: createRule: with functions: should create for RegExp function
ok 181 Rule: createRule: with functions: should create for Object function
ok 182 Rule: createRule: with functions: should create for custom functions
ok 183 Rule: createRule: should create a composite rule
ok 184 Rule: createRule: should create a not pattern
ok 185 Rule: createRule: should create a or pattern
ok 186 Rule: createRule: should include reference store in constraints
ok 187 Rule: createRule: should should include from constraints
ok 188 Rule: createRule: should should include from constraints
ok 189 Rule: createRule: should should include exists constraints
# tests 189
# pass 189
# fail 0
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
fail@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:7516
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13941
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17689
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12865
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12909
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15056
run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14468
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14665
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12865
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12909
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16312
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16393
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10287
[native code]
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
fail@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:7516
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13941
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17689
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12865
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12909
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15056
run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14468
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14665
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12865
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12909
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16312
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16393
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10287
[native code]
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
fail@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:7516
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13941
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17689
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12865
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12909
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15056
run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14468
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14665
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12865
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12909
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16312
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16393
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10287
[native code]
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
[62]</process.nextTick</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
assert[k]@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
setUpCb/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
.instance.run@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910
_handler@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16394
@http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at <error: illegal access>
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at <error: illegal access>
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function._.forEach.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at it.describe.it.describe.it.should.assert.isTrue.constraintMatcher.getMatcher.a (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.exports.setUpCb [as action] (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.EventEmitter.extend.instance.__runAction (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.isTrue (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:20)
at [object Object].<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:47)
at wrapper.run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:25)
at http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at fail (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:7517:3)
at Anonymous function (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:13943:13)
at Anonymous function (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:17692:13)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12875:17)
at Anonymous function (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:25)
at Anonymous function (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:15094:13)
at run (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14476:17)
at Anonymous function (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:14667:21)
at spreadArgs (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12869:17)
at Anonymous function (http://git.testling.com/work/c2fo/repos/29697cb11193e606c212e76a8c9a6e760e5a501a.1400438332445/1400438333228.e53ebba8.js:12910:25)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
fail@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:7516
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13941
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17689
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12865
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12909
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15056
run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14468
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14665
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12865
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12909
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16312
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16393
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10287
[native code]
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
fail@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:7516
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13941
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17689
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12865
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12909
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15056
run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14468
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14665
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12865
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12909
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16312
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16393
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10287
[native code]
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
fail@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:7516
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13941
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17689
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12865
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12909
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15056
run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14468
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14665
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12865
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12909
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16312
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16393
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10287
[native code]
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
[62]</process.nextTick</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
[74]</</assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
[95]</</</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
[89]</</setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
[82]</<.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
[85]</<.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
[69]</</defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
[92]</</</definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
[62]</<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
assert[k]@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
setUpCb/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
.instance.run@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
.instance.__runAction/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
defineFunction/hitch/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
definePromise/Promise<.instance.__callNextTick/<@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667
spreadArgs@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910
_handler@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16394
@http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:10293
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at <error: illegal access>
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at <error: illegal access>
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at null.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.action (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.<anonymous> (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok 40 events: should emit when facts are asserted
ok 41 events: should emit when facts are retracted
ok 42 events: should emit when facts are modified
ok 43 events: should emit when rules are fired
ok 44 exists rule: fact assertion: should only activate once
ok 45 exists rule: fact assertion: should not activate once if the fact does not exists
ok 46 exists rule: fact retraction: should should handle fact retractions properly
ok 47 exists rule: fact modification: should should handle fact modification properly
ok 48 exists rule: with from modifier: assert: should should handle fact assertion properly
ok 49 exists rule: with from modifier: retract: should should handle fact retraction properly
ok 50 exists rule: with from modifier: modify: should should handle fact modification properly
ok 51 from condition: with non array properties: should create the proper match contexts
ok 52 from condition: with non array properties: should propagate modified facts properly
ok 53 from condition: with non array properties: should retract facts properly
ok 54 from condition: with js source: should create the proper match contexts
ok 55 from condition: with js source: should propagate modified facts properly
ok 56 from condition: with array properties: should create all cross product matches
ok 57 from condition: with array properties: should retract all cross product matches
ok 58 from condition: with not node: should only fullfill if all facts evaluate to false
ok 59 from condition: with not node: should only fullfill if all facts evaluate to false
ok 60 matchUntilHalt: should match until halt is called
ok 61 not rule: with a single fact: should call when a string that does not equal 'hello'
ok 62 not rule: with a single fact: should not call when a string that does equal 'hello'
ok 63 not rule: with a single fact: should not call when a string that does equal 'hello' and one that does not
ok 64 not rule: with multiple facts: should fire rules in order
ok 65 not rule: modifying facts: should handle modifications
ok 66 or rule: or rule with two conditions of the same type: should should match if one constraints matches
ok 67 or rule: or rule with two conditions of the same type: should not call when a a constraint does not match
ok 68 or rule: or rule with three conditions: should should match if one constraints matches
ok 69 or rule: or rule with three conditions: should not call when none constraints match
ok 70 or rule: or rule with different types: should should match if one constraints matches
ok 71 or rule: or rule with different types: should not call when none constraints match
ok 72 or rule: or with not conditions: should activate for each fact that does not exist
ok 73 flowrule: should create a rule
ok 74 flowrule: should create a rule with joins properly
ok 75 flowrule: should create a rules that are dependent on eachother properly
ok 76 salience: should activate in the proper order
ok 77 scope option: should call when a string equals 'hello'
ok 78 scope option: should call when a string equals 'world'
ok 79 scope option: should not call when a string that does equal 'hello' or 'world
ok 80 simple rule: should call hello world rule
ok 81 Flow compiled: not rule: should call when a string that does not equal 'hello'
ok 82 Flow compiled: not rule: should not call when a string that does equal 'hello'
ok 83 Flow compiled: not rule: should not call when a string that does equal 'hello' and one that does not
ok 84 Flow compiled: or rule: should call when a string equals 'hello'
ok 85 Flow compiled: or rule: or rule with not conditions: should activate for each fact that does not exist
ok 86 Flow compiled: scoped functions: should call the scoped function
ok 87 Flow compiled: events: should emit when facts are asserted
ok 88 Flow compiled: events: should emit when facts are retracted
ok 89 Flow compiled: events: should emit when facts are modified
ok 90 Flow compiled: events: should emit when rules are fired
ok 91 Flow compiled: agenda-groups: should only fire events in focused group
ok 92 Flow compiled: agenda-groups: should should treat focus like a stack
ok 93 Flow compiled: auto-focus: should activate agenda groups in proper order
ok 94 Flow compiled: fibonacci nools dsl: should calculate fibonacci 3
ok 95 Flow compiled: fibonacci nools dsl: should calculate fibonacci 4
ok 96 Flow compiled: fibonacci nools dsl: should calculate fibonacci 5
ok 97 Flow compiled: fibonacci nools dsl: should calculate fibonacci 6
ok 98 Flow compiled: diagnosis using dsl: should treat properly
ok 99 Flow compiled: getFacts from action: should get all facts
ok 100 Flow compiled: getFacts from action: should get facts by type
ok 101 nools dsl parser: define: should parse a define statement
ok 102 nools dsl parser: define: should throw an error when the define block is missing a name
ok 103 nools dsl parser: define: should throw an error for invalid define blocks
ok 104 nools dsl parser: define: should throw an error when the global statement is missing a name
ok 105 nools dsl parser: define: should throw an error when the global statement is missing a ;
ok 106 nools dsl parser: global: should parse a require call statement
ok 107 nools dsl parser: global: should parse a require with a '.' character that is not a relative path
ok 108 nools dsl parser: global: should resolve relative require paths
ok 109 nools dsl parser: global: should parse a member look up
ok 110 nools dsl parser: global: should parse a strings
ok 111 nools dsl parser: global: should parse a boolean
ok 112 nools dsl parser: global: should parse numbers
ok 113 nools dsl parser: global: should parse a new instantiation
ok 114 nools dsl parser: function: should parse a function statement
ok 115 nools dsl parser: function: should throw an error when the function block is missing a name
ok 116 nools dsl parser: function: should throw an error for invalid define blocks
ok 117 nools dsl parser: rule: should parse rules
ok 118 nools dsl parser: rule: should throw an error for invalid rule blocks
ok 119 nools dsl parser: rule: should throw an error for a missing name
ok 120 nools dsl parser: rule: should parse not conditions
ok 121 nools dsl parser: rule: should parse or conditions
ok 122 nools dsl parser: rule: should parse when clause with hash and constraints in any order
ok 123 nools dsl parser: rule: should parse when clause with from
ok 124 nools dsl parser: rule: should parse rules with a string name in double quotes
ok 125 nools dsl parser: rule: should parse rules with a string name in single quotes
ok 126 nools dsl parser: rule: should parse rules with a string name with inner strings
ok 127 nools dsl parser: rule: salience/priority: should parse rules with a salience
ok 128 nools dsl parser: rule: salience/priority: should parse rules with a priority
ok 129 nools dsl parser: rule: salience/priority: should parse rules with a salience with a ;
ok 130 nools dsl parser: rule: salience/priority: should parse rules with a priority with a ;
ok 131 nools dsl parser: rule: salience/priority: should throw an error if the salience is not a number
ok 132 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group'
ok 133 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agendaGroup'
ok 134 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in '"'
ok 135 nools dsl parser: rule: agenda-group/agendaGroup: should parse rules with a 'agenda-group' with names in "'"
ok 136 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as true
ok 137 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'auto-focus' as false
ok 138 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as true
ok 139 nools dsl parser: rule: rules with auto-focus/autoFocus: should parse rules with a 'autoFocus' as false
ok 140 nools dsl parser: rule: rules with auto-focus/autoFocus: should throw errors for values other than true or false
ok 141 nools dsl parser: rule: should throw an error for invalid when clauses
ok 142 nools dsl parser: rule: should throw an error for invalid then clauses
ok 143 nools dsl parser: rule: should parse rules with exists clause
ok 144 A Parser: should parse valid string expressions
ok 145 A Parser: should parse regexps and not be greedy
ok 146 A Parser: should parse valid string expressions with functions
ok 147 A Parser: should parse valid string expressions with property access
ok 148 A Parser: should parse valid string expressions with boolean operators
ok 149 A Parser: should handle operator associativity properly
ok 150 A Parser: should parse arrays
ok 151 A Parser: should parse the in operator
ok 152 A Parser: should parse the notIn operator
ok 153 A Parser: should parse truthy statements
ok 154 Rule: createRule: with strings: should create for string
ok 155 Rule: createRule: with strings: should create for String
ok 156 Rule: createRule: with strings: should create for number
ok 157 Rule: createRule: with strings: should create for Number
ok 158 Rule: createRule: with strings: should create for date
ok 159 Rule: createRule: with strings: should create for Date
ok 160 Rule: createRule: with strings: should create for array
ok 161 Rule: createRule: with strings: should create for Array
ok 162 Rule: createRule: with strings: should create for boolean
ok 163 Rule: createRule: with strings: should create for Boolean
ok 164 Rule: createRule: with strings: should create for regexp
ok 165 Rule: createRule: with strings: should create for Regexp
ok 166 Rule: createRule: with strings: should create for object
ok 167 Rule: createRule: with strings: should create for Object
ok 168 Rule: createRule: with strings: should create for hash
ok 169 Rule: createRule: with strings: should create for Hash
ok 170 Rule: createRule: with functions: should create for String function
ok 171 Rule: createRule: with functions: should create for Number function
ok 172 Rule: createRule: with functions: should create for Date function
ok 173 Rule: createRule: with functions: should create for []
ok 174 Rule: createRule: with functions: should create for Array function
ok 175 Rule: createRule: with functions: should create for Boolean function
ok 176 Rule: createRule: with functions: should create for RegExp function
ok 177 Rule: createRule: with functions: should create for Object function
ok 178 Rule: createRule: with functions: should create for custom functions
ok 179 Rule: createRule: should create a composite rule
ok 180 Rule: createRule: should create a not pattern
ok 181 Rule: createRule: should create a or pattern
ok 182 Rule: createRule: should include reference store in constraints
ok 183 Rule: createRule: should should include from constraints
ok 184 Rule: createRule: should should include from constraints
ok 185 Rule: createRule: should should include exists constraints
# tests 185
# pass 184
# fail 1
1..185
ok 1 constraint matcher: match: should check equality
ok 2 constraint matcher: match: should check inequality
ok 3 constraint matcher: match: should check gt operator
ok 4 constraint matcher: match: should check lt operator
ok 5 constraint matcher: match: should check gte operator
ok 6 constraint matcher: match: should check lte operator
ok 7 constraint matcher: match: should check lte operator
ok 8 constraint matcher: match: should check like operator
ok 9 constraint matcher: match: should check notLike operator
ok 10 constraint matcher: match: should check and operator
ok 11 constraint matcher: match: should check or operator
ok 12 constraint matcher: match: should check with member operator
ok 13 constraint matcher: match: should check with in operator
ok 14 constraint matcher: match: should check with notIn operator
ok 15 constraint matcher: match: should allow properties with in
ok 16 constraint matcher: match: should check with boolean associativity
ok 17 constraint matcher: match: should check with nested properties
ok 18 constraint matcher: match: should check with function
ok 19 constraint matcher: match: should check with functions and identifier args
ok 20 constraint matcher: match: should check with functions in a deep property chain and identifier args
ok 21 constraint matcher: match: should check with functions in a deep property chain that returns an object and identifier args
not ok 22 constraint matcher: match: should have date helpers
AssertionError: expected false, to be true
at Function._.forEach.assert.(anonymous function) [as isTrue] (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:13943:20)
at it.describe.it.describe.it.should.assert.isTrue.constraintMatcher.getMatcher.a (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:17692:20)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12875:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at wrapper.exports.setUpCb [as action] (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:15094:47)
at wrapper.EventEmitter.extend.instance.run (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14476:28)
at wrapper.EventEmitter.extend.instance.__runAction (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:14667:28)
at spreadArgs (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12869:25)
at http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:12910:32
at _handler (http://git.testling.com/work/c2fo/repos/878658267dbd2b5844f6e362565f48e11f3adb85.1400438293200/1400438294069.bfdcad32.js:16314:29)
ok 23 constraint matcher: match: should create have type helpers
ok 24 constraint matcher: match: should check truthy statements
ok 25 constraint matcher: toConstraints: should create for expressions
ok 26 constraint matcher: toConstraints: should create correct pattern depending on scope
ok 27 constraint matcher: toJs: should create js equvalent expression
ok 28 constraint matcher: getIdentifiers: should create the correct atoms for and expressions
ok 29 constraint matcher: equals: should return true when equal
ok 30 constraint matcher: equals: should return false when not equal
ok 31 constraint matcher: .getIndexableProperties: should get properties with no functions
ok 32 constraint matcher: .getIndexableProperties: should not get non indexable constraints
ok 33 constraint matcher: .getIndexableProperties: should not get properties with functions
ok 34 flowgetFacts: should get all facts in the session
ok 35 flowgetFacts: should get all facts in the session by Type
ok 36 agenda-groups: should only fire events in focused group
ok 37 agenda-groups: should should treat focus like a stack
ok 38 auto-focus: should activate agenda groups in proper order
ok 39 async actions: should fire all rules
ok