yes, even in this case, both outputs look correct.
-Thejas
On 8/18/11 6:05 AM, lulynn_2008 wrote:
Thejas Nair,
Thank you
Actually there are other unit tests failed because of different order
output. During parse the pig command, a HashMap variable "aliases" will
be used in
src-gen/org/apache/pig/impl/logicalLayer/parser/QueryParser.java. I
think this unit test failure is also caused by HashMap problem. What is
your opinion?
Here are two failure unit test examples:
TestLogToPhyCompiler: Query: split (load 'a') into x if $0 < '7', y if
$0 > '7';
Testcase: testSplit took 0.198 sec
FAILED
IBM JDK:
x: Filter[tuple] - Test-Plan-Builder-240
| |
| Less Than[boolean] - Test-Plan-Builder-243
| |
| |---Project[bytearray][0] - Test-Plan-Builder-241
| |
| |---Constant(7) - Test-Plan-Builder-242
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
y: Filter[tuple] - Test-Plan-Builder-244
| |
| Greater Than[boolean] - Test-Plan-Builder-247
| |
| |---Project[bytearray][0] - Test-Plan-Builder-245
| |
| |---Constant(7) - Test-Plan-Builder-246
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
SUN JDK:
y: Filter[tuple] - Test-Plan-Builder-240
| |
| Greater Than[boolean] - Test-Plan-Builder-243
| |
| |---Project[bytearray][0] - Test-Plan-Builder-241
| |
| |---Constant(7) - Test-Plan-Builder-242
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
x: Filter[tuple] - Test-Plan-Builder-244
| |
| Less Than[boolean] - Test-Plan-Builder-247
| |
| |---Project[bytearray][0] - Test-Plan-Builder-245
| |
| |---Constant(7) - Test-Plan-Builder-246
|
|---Split - Test-Plan-Builder-239
|
|---229: Load()
TestMRCompiler(IBM JDK):
Testcase: testSortUDF1 took 0.02 sec
FAILED
null
expected:<...---MapReduce(20,SUM,[COUNT,TestMRCompiler$WeirdComparator])
- -18:
| ...> but
was:<...---MapReduce(20,SUM,[TestMRCompiler$WeirdComparator,COUNT]) - -18:
| ...>
junit.framework.ComparisonFailure: null
expected:<...---MapReduce(20,SUM,[COUNT,TestMRCompiler$WeirdComparator])
- -18:
| ...> but
was:<...---MapReduce(20,SUM,[TestMRCompiler$WeirdComparator,COUNT]) - -18:
| ...>
at org.apache.pig.test.TestMRCompiler.run(TestMRCompiler.java:1056)
at org.apache.pig.test.TestMRCompiler.testSortUDF1(TestMRCompiler.java:790)
At 2011-08-18 01:17:02,"Thejas Nair" <[email protected]> wrote:
Since HashMap does not guarantee ordering, this test is not guaranteed
to pass, ie the test is faulty and it needs to be fixed. The
result from
IBM JDK is also correct.
An easy fix for the test case would be to test for both sequences
of
hash-map.
Can you please open a jira ?
-Thejas
On 8/16/11 7:56 PM, lulynn_2008 wrote:
Hello,
I runTestDataModel test case with IBM JDK, and got the following
error:
Testcase: testTupleToString took 0.002 sec
FAILED
toString expected:<...ad a little
lamb)},[[hello#world,goodbye#all]],42,5000000000,3.14...> but was:<...ad a
little lamb)},[[goodbye#all,hello#world]],42,5000000000,3.14...>
junit.framework.ComparisonFailure: toString expected:<...ad a little
lamb)},[[hello#world,goodbye#all]],42,5000000000,3.14...> but was:<...ad a
little lamb)},[[goodbye#all,hello#world]],42,5000000000,3.14...>
at
org.apache.pig.test.TestDataModel.testTupleToString(TestDataModel.java:269)
This is because IBM HashMap.toString() output different with SUN
HashMap.toString(). My question is:
Should the output must be the one expected?
Are the output expected based on SUN JDK?
Does the failed test case mean pig-0.8.1 can not work with IBM JDk?
Thank you.