Also to add -
assertArrayEqauls might not be necessary since the output VarCharHolder
and expected argument are both compared as strings. This works for my other
test cases (substr/reverse etc).
I doubt its something related to how encoded strings are being read.

Peace,
Yash


On Sun, May 18, 2014 at 1:54 AM, Yash Sharma <[email protected]> wrote:

> I am re-using the runtest method of the TestStringFunctions.java for my
> test case.
> It compares each output argument with the expected arg - all treated as
> strings.
>
> Peace,
> Yash
>
> Assert logic: public void runTest
>
> while(exec.next()){
>       Object [] res = getRunResult(exec);
>       assertEquals("return count does not match", expectedResults.length,
> res.length);
>
>
>       for (int i = 0; i<res.length; i++) {
>       System.out.println(res[i]+"\t\t"+expectedResults[i]);
>         assertEquals(String.format("column %s does not match", i),
> expectedResults[i],  res[i]);
>       }
>     }
>
>
>
>
> On Sun, May 18, 2014 at 12:34 AM, Timothy Chen <[email protected]> wrote:
>
>> I can''t tell how you're comparing the strings as the I don't see
>> where the assertion happens.
>>
>> But if you're just doing a assertEquals with two byte arrays it won't
>> work, you'll have to do assertArrayEqauls instead.
>>
>> Tim
>>
>> On Sat, May 17, 2014 at 10:53 AM, Yash Sharma <[email protected]> wrote:
>> > Hi All,
>> > While implementing the toascii(inputStr, encodingType) I am receiving
>> this
>> > assertion error. I have tried using different styles for passing the
>> > assertion string in test case but this always fails with below error.
>> Have
>> > tried StackOverflow but not able to get it working.
>> >
>> > Any tips would be appreciated. This is blocking me from putting my
>> patch on
>> > review board -
>> >
>> > Peace,
>> > Yash
>> >
>> >
>> >
>> -------------------------------------------------------------------------------------------
>> > maven failure
>> >
>> -------------------------------------------------------------------------------------------
>> > âpple âpple
>> > Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 12.001
>> sec
>> > <<< FAILURE! - in
>> org.apache.drill.exec.physical.impl.TestStringFunctions
>> >
>> testNewStringFuncs(org.apache.drill.exec.physical.impl.TestStringFunctions)
>> >  Time elapsed: 4.04 sec  <<< FAILURE!
>> > org.junit.ComparisonFailure: column 8 does not match expected:<âpple[]>
>> > but was:<âpple[]>
>> >
>> >
>> >
>> >
>> -------------------------------------------------------------------------------------------
>> > string function implementation
>> >
>> -------------------------------------------------------------------------------------------
>> > @FunctionTemplate(name = "toascii", scope = FunctionScope.SIMPLE, nulls
>> =
>> > NullHandling.NULL_IF_NULL)
>> > public static class AsciiEndode implements DrillSimpleFunc {
>> >
>> >   @Param  VarCharHolder in;
>> >   @Param  VarCharHolder enc;
>> >   @Output VarCharHolder out;
>> >
>> >   public void setup(RecordBatch incoming) {
>> >   }
>> >
>> >   public void eval() {
>> >
>> >    byte[] bytea = new byte[in.end - in.start +1];
>> >    int index =0;
>> >    for(int i = in.start; i<in.end; i++, index++){
>> >    bytea[index]=in.buffer.getByte(i);
>> >    }
>> >     byte[] bytes = new String(bytea,
>> >
>> java.nio.charset.Charset.forName(enc.toString())).getBytes(java.nio.charset.Charset.forName("UTF-8"));
>> >
>> >  out.buffer = io.netty.buffer.Unpooled.wrappedBuffer(new byte [8000]);
>> >  out.start = 0;
>> >  out.buffer.setBytes(out.start, bytes);
>> >  out.end = bytes.length;
>> >   }
>> > }
>> >
>> >
>> >
>> -------------------------------------------------------------------------------------------
>> > test case
>> >
>> -------------------------------------------------------------------------------------------
>> >
>> > @Test
>> >   public void testNewStringFuncs(@Injectable final DrillbitContext
>> > bitContext,
>> >                            @Injectable UserServer.UserClientConnection
>> > connection) throws Throwable{
>> >     Object [] expected = new Object[] {97, 65, -32, "A", "trim", "Peace
>> > Peace Peace ", "हकुना मताता हकुना मताता ", "katcit",
>> "\u00C3\u00A2pple"};
>> >
>> >     runTest(bitContext, connection, expected,
>> > "functions/string/testStringFuncs.json");
>> >   }
>> >
>> >
>> -------------------------------------------------------------------------------------------
>> > call in physical plan
>> >
>> -------------------------------------------------------------------------------------------
>> >  { ref : "ref9", expr : " toascii('âpple','ISO-8859-1') "}
>>
>
>

Reply via email to