5 use List::Util qw(sum);
92 { foo => 42, bar => 1 },
93 { foo => 42, bar => 1 },
94 { foo => '42', bar => 1 },
98 # blessed object - equal
102 bless(\(local $_ = 42), 'Life::Universe::Everything'),
103 bless(\(local $_ = 42), 'Life::Universe::Everything'),
109 bless([42], 'Life::Universe::Everything'),
110 bless([42], 'Life::Universe::Everything'),
116 bless({ answer => 42 }, 'Life::Universe::Everything'),
117 bless({ answer => 42 }, 'Life::Universe::Everything'),
121 # complex data structure - equal
125 [42, { foo => 'bar', quux => [1, 2, \3, { quux => [4, 5] } ] }, 8 ],
126 [42, { foo => 'bar', quux => [1, 2, \3, { quux => [4, 5] } ] }, 8 ],
141 # scalarref - different
151 # arrayref - different
161 # hashref - different
182 # complex data structure - different
186 [42, { foo => 'bar', quux => [1, 2, \3, { quux => [4, 5] } ] }, 8 ],
187 [43, { foo => 'bar', quux => [1, 2, \3, { quux => [4, 5] } ] }, 8 ],
188 [42, { foo => 'baz', quux => [1, 2, \3, { quux => [4, 5] } ] }, 8 ],
189 [42, { bar => 'bar', quux => [1, 2, \3, { quux => [4, 5] } ] }, 8 ],
190 [42, { foo => 'bar', quuux => [1, 2, \3, { quux => [4, 5] } ] }, 8 ],
191 [42, { foo => 'bar', quux => [0, 1, 2, \3, { quux => [4, 5] } ] }, 8 ],
192 [42, { foo => 'bar', quux => [1, 2, 3, { quux => [4, 5] } ] }, 8 ],
193 [42, { foo => 'bar', quux => [1, 2, \4, { quux => [4, 5] } ] }, 8 ],
194 [42, { foo => 'bar', quux => [1, 2, \3, { quuux => [4, 5] } ] }, 8 ],
195 [42, { foo => 'bar', quux => [1, 2, \3, { quux => [4, 5, 6] } ] }, 8 ],
196 [42, { foo => 'bar', quux => [1, 2, \3, { quux => 4 } ] }, 8 ],
197 [42, { foo => 'bar', quux => [1, 2, \3, { quux => [4, 5], quuux => 1 } ] }, 8 ],
198 [42, { foo => 'bar', quux => [1, 2, \3, { quux => [4, 5] } ] }, 8, 9 ],
204 plan tests => 1 + sum
205 map { $_ * ($_ - 1) / 2 }
206 map { scalar @{$_->{bindvals}} }
209 use_ok('SQL::Abstract::Test', import => [qw(eq_sql eq_bind is_same_sql_bind)]);
211 for my $test (@bind_tests) {
212 my $bindvals = $test->{bindvals};
214 my $bind1 = shift @$bindvals;
215 foreach my $bind2 (@$bindvals) {
216 my $equal = eq_bind($bind1, $bind2);
217 if ($test->{equal}) {
218 ok($equal, "equal bind values considered equal");
220 ok(!$equal, "different bind values considered not equal");
223 if ($equal ^ $test->{equal}) {
224 diag("bind1: " . Dumper($bind1));
225 diag("bind2: " . Dumper($bind2));