You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pig.apache.org by ya...@apache.org on 2010/04/02 05:59:03 UTC

svn commit: r930158 - in /hadoop/pig/trunk/contrib/zebra: ./ src/test/org/apache/hadoop/zebra/pig/

Author: yanz
Date: Fri Apr  2 03:59:03 2010
New Revision: 930158

URL: http://svn.apache.org/viewvc?rev=930158&view=rev
Log:
PIG-1349 Hubson test failure in test case TestBasicUnion (xuefuz via yanz)

Modified:
    hadoop/pig/trunk/contrib/zebra/CHANGES.txt
    hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestBasicUnion.java
    hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestOrderPreserveMultiTable.java
    hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestUnionMixedTypes.java

Modified: hadoop/pig/trunk/contrib/zebra/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/contrib/zebra/CHANGES.txt?rev=930158&r1=930157&r2=930158&view=diff
==============================================================================
--- hadoop/pig/trunk/contrib/zebra/CHANGES.txt (original)
+++ hadoop/pig/trunk/contrib/zebra/CHANGES.txt Fri Apr  2 03:59:03 2010
@@ -70,6 +70,8 @@ Trunk (unreleased changes)
 
   BUG FIXES
 
+    PIG-1349 Hubson test failure in test case TestBasicUnion (xuefuz via yanz)
+
     PIG-1340 The zebra version number should be changed from 0.7 to 0.8 (yanz)
 
     PIG-1318 Invalid type for source_table field when using order-preserving Sorted Table Union (gauravj via yanz)

Modified: hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestBasicUnion.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestBasicUnion.java?rev=930158&r1=930157&r2=930158&view=diff
==============================================================================
--- hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestBasicUnion.java (original)
+++ hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestBasicUnion.java Fri Apr  2 03:59:03 2010
@@ -670,83 +670,35 @@ public class TestBasicUnion extends Base
   @Test
   // union two tables with different column numbers and column positions
   public void testReader6() throws ExecException, IOException {
-
     pigServer.registerQuery(constructQuery(path1, path5, "'b,a'"));
     Iterator<Tuple> it = pigServer.openIterator("records");
 
     int i = 0;
-    int k = -1;
+    int count = 0;
     Tuple cur = null;
-    int t = -1;
-    int j = -1;
 
+    String[] exp1 = new String[] { "0_01", "1_01", "2_01", "3_01", "4_01", "5_01", "6_01", "7_01", "8_01", "9_01", 
+    		                       "0_11", "1_11", "2_11", "3_11", "4_11", "5_11", "6_11", "7_11", "8_11", "9_11"};
+    String[] exp2 = new String[] { "0_00", "1_00", "2_00", "3_00", "4_00", "5_00", "6_00", "7_00", "8_00", "9_00", 
+                                   "0_10", "1_10", "2_10", "3_10", "4_10", "5_10", "6_10", "7_10", "8_10", "9_10"};
     while (it.hasNext()) {
+      count++;
       cur = it.next();
-
-      System.out.println("cur: " + cur);
-      // first table
-      if (i <= 9) {
-        System.out.println("first table first part: " + cur.toString());
-        Assert.assertEquals(i + "_01", cur.get(0));
-        Assert.assertEquals(i + "_00", cur.get(1));
-        try {
-          cur.get(2);
-          Assert.fail("should throw index out of bound exception");
-        } catch (Exception e) {
-
-        }
-
-      }
-      if (i >= 10) {
-        k++;
-      }
-      if (k <= 9 && k >= 0) {
-        System.out.println("first table second part:  : " + cur.toString());
-        Assert.assertEquals(k + "_11", cur.get(0));
-        Assert.assertEquals(k + "_10", cur.get(1));
-        try {
-          cur.get(2);
-          Assert.fail("should throw index out of bound exception");
-        } catch (Exception e) {
-
-        }
-
-      }
-
-      // second table
-      if (k >= 10) {
-        t++;
-      }
-      if (t <= 9 && t >= 0) {
-        System.out.println("second table first part: " + cur.toString());
-        Assert.assertEquals(t + "_00", cur.get(0));
-        Assert.assertEquals(t + "_01", cur.get(1));
-        try {
+      System.out.println("cur #" + i + ": " + cur);
+      try {
           cur.get(2);
           Assert.fail("should throw index out of bound exception");
-        } catch (Exception e) {
-
-        }
-
+      } catch (Exception e) {
       }
-      if (t >= 10) {
-        j++;
-      }
-      if (j <= 9 && j >= 0) {
-        System.out.println("second table first part: " + cur.toString());
-        Assert.assertEquals(j + "_10", cur.get(0));
-        Assert.assertEquals(j + "_11", cur.get(1));
-        try {
-          cur.get(2);
-          Assert.fail("should throw index out of bound exception");
-        } catch (Exception e) {
-
-        }
 
-      }
-      i++;
+      String b = (String)cur.get(0);
+      String a = (String)cur.get(1);
+      Assert.assertTrue( b.equals(exp1[i]) || b.equals(exp2[i]) );
+      Assert.assertTrue( a.equals(exp2[i]) || a.equals(exp1[i]) );
+      if( ++i == 20 )
+    	  i = 0;
     }// while
-    Assert.assertEquals(40, i);
+    Assert.assertEquals(40, count);
   }
 
   // both paths is hdfs:///../jars. mini cluster need to substr, real cluster

Modified: hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestOrderPreserveMultiTable.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestOrderPreserveMultiTable.java?rev=930158&r1=930157&r2=930158&view=diff
==============================================================================
--- hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestOrderPreserveMultiTable.java (original)
+++ hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestOrderPreserveMultiTable.java Fri Apr  2 03:59:03 2010
@@ -21,6 +21,7 @@ package org.apache.hadoop.zebra.pig;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.ArrayList;
 import java.util.StringTokenizer;
@@ -182,123 +183,30 @@ public class TestOrderPreserveMultiTable
 		testOrderPreserveUnion(inputTables, "int1", "int1, source_table, str1, byte1");
 		
 		// Create results table for verification
-		ArrayList<ArrayList<Object>> resultTable = new ArrayList<ArrayList<Object>>();
+		HashMap<Integer, ArrayList<ArrayList<Object>>> resultTable = 
+      new HashMap<Integer, ArrayList<ArrayList<Object>>>();
 		for (int i=0; i<NUMB_TABLE; ++i) {
+		  ArrayList<ArrayList<Object>> rows = new ArrayList<ArrayList<Object>>();
 			for (int j=0; j<NUMB_TABLE_ROWS; ++j) {
 				ArrayList<Object> resultRow = new ArrayList<Object>();
-				
 				resultRow.add(i);	// int1
 				resultRow.add(i);	// source_table
 				resultRow.add(new String("string" + j));	// str1
 				resultRow.add(new DataByteArray("byte" + (NUMB_TABLE_ROWS - j)));	// byte1
-				
-				resultTable.add(resultRow);
+				rows.add(resultRow);
 			}
+			resultTable.put(i, rows);
 		}
 		
 		// Verify union table
 		Iterator<Tuple> it = pigServer.openIterator("records1");
-		int numbRows = verifyTable(resultTable, 0, it);
+		int numbRows = verifyTable(resultTable, 0, 1, it);
 		
 		Assert.assertEquals(totalTableRows, numbRows);
 		
 		// Print Table
 		//printTable("records1");
-	}
-	
-	/**
-	 * Verify union output table with expected results
-	 * 
-	 */
-	private int verifyTable(ArrayList<ArrayList<Object>> resultTable, int keyColumn, Iterator<Tuple> it) throws IOException {
-		int numbRows = 0;
-		int index = 0;
-		Object value = resultTable.get(index).get(keyColumn);  // get value of primary key
-		
-		while (it.hasNext()) {
-			Tuple rowValues = it.next();
-			
-			// If last primary sort key does match then search for next matching key
-			if (! compareObj(value, rowValues.get(keyColumn))) {
-				int subIndex = index + 1;
-				while (subIndex < resultTable.size()) {
-					if ( ! compareObj(value, resultTable.get(subIndex).get(keyColumn)) ) {  // found new key
-						index = subIndex;
-						value = resultTable.get(index).get(keyColumn);
-						break;
-					}
-					++subIndex;
-				}
-				Assert.assertEquals("Table comparison error for row : " + numbRows + " - no key found for : "
-					+ rowValues.get(keyColumn), value, rowValues.get(keyColumn));
-			}
-			// Search for matching row with this primary key
-			int subIndex = index;
-			
-			while (subIndex < resultTable.size()) {
-				// Compare row
-				ArrayList<Object> resultRow = resultTable.get(subIndex);
-				if ( compareRow(rowValues, resultRow) )
-					break; // found matching row
-				++subIndex;
-				Assert.assertEquals("Table comparison error for row : " + numbRows + " - no matching row found for : "
-					+ rowValues.get(keyColumn), value, resultTable.get(subIndex).get(keyColumn));
-			}
-			++numbRows;
-		}
-		Assert.assertEquals(resultTable.size(), numbRows);  // verify expected row count
-		return numbRows;
-	}
-	
-	/**
-	 * Compare table rows
-	 * 
-	 */
-	private boolean compareRow(Tuple rowValues, ArrayList<Object> resultRow) throws IOException {
-		boolean result = true;
-		Assert.assertEquals(resultRow.size(), rowValues.size());
-		for (int i = 0; i < rowValues.size(); ++i) {
-			if (! compareObj(rowValues.get(i), resultRow.get(i)) ) {
-				result = false;
-				break;
-			}
-		}
-		return result;
-	}
-	
-	/**
-	 * Compare table values
-	 * 
-	 */
-	private boolean compareObj(Object object1, Object object2) {
-		if (object1 == null) {
-			if (object2 == null)
-				return true;
-			else
-				return false;
-		} else if (object1.equals(object2))
-			return true;
-		else
-			return false;
-	}
-	
-	/**
-	 * Print Pig Table (for debugging)
-	 * 
-	 */
-	private int printTable(String tablename) throws IOException {
-		Iterator<Tuple> it1 = pigServer.openIterator(tablename);
-		int numbRows = 0;
-		while (it1.hasNext()) {
-			Tuple RowValue1 = it1.next();
-			++numbRows;
-			System.out.println();
-			for (int i = 0; i < RowValue1.size(); ++i)
-				System.out.println("DEBUG: " + tablename + " RowValue.get(" + i + ") = " + RowValue1.get(i));
-		}
-		System.out.println("\nRow count : " + numbRows);
-		return numbRows;
-	}
+	}	
 	
 	/**
 	 * Return the name of the routine that called getCurrentMethodName

Modified: hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestUnionMixedTypes.java
URL: http://svn.apache.org/viewvc/hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestUnionMixedTypes.java?rev=930158&r1=930157&r2=930158&view=diff
==============================================================================
--- hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestUnionMixedTypes.java (original)
+++ hadoop/pig/trunk/contrib/zebra/src/test/org/apache/hadoop/zebra/pig/TestUnionMixedTypes.java Fri Apr  2 03:59:03 2010
@@ -349,60 +349,18 @@ public class TestUnionMixedTypes extends
     Iterator<Tuple> it = pigServer.openIterator("records");
 
     Tuple cur = null;
+    String[] expected1 = new String[]{"k11", "k12", "k13", "k14" };
+    String[] expected2 = new String[]{"k13", "k14", "k11", "k12" };
     int i = 0;
-    int j = 0;
     // total 4 lines
     while (it.hasNext()) {
       cur = it.next();
-
+      String key = ((Map<String, String>) cur.get(0)).get("k1");
+      Assert.assertTrue( expected1[i].equals( key ) || expected2[i].equals( key ) );
       i++;
       System.out.println(" line : " + i + " : " + cur.toString());
 
-      // first line
-
-      if (i == 1) {
-        System.out.println("i is : " + i);
-
-        Assert.assertEquals("k11", ((Map) cur.get(0)).get("k1"));
-        Assert.assertEquals(null, ((Map) cur.get(0)).get("k2"));
-      }
-
-      if (i == 2) {
-        Assert.assertEquals("k12", ((Map) cur.get(0)).get("k1"));
-        Assert.assertEquals(null, ((Map) cur.get(0)).get("k2"));
-        try {
-          cur.get(1);
-          Assert.fail("should throw index out of bound exception");
-        } catch (Exception e) {
-          e.printStackTrace();
-        }
-      }
-      if (i == 3) {
-        System.out.println("i is : " + i);
-
-        Assert.assertEquals("k13", ((Map) cur.get(0)).get("k1"));
-        Assert.assertEquals(null, ((Map) cur.get(0)).get("k2"));
-        try {
-          cur.get(1);
-          Assert.fail("should throw index out of bound exception");
-        } catch (Exception e) {
-          e.printStackTrace();
-        }
-      }
-
-      if (i == 4) {
-        System.out.println("i should see this line. ");
-        Assert.assertEquals("k14", ((Map) cur.get(0)).get("k1"));
-        Assert.assertEquals(null, ((Map) cur.get(0)).get("k2"));
-        try {
-          cur.get(1);
-          Assert.fail("should throw index out of bound exception");
-        } catch (Exception e) {
-          e.printStackTrace();
-        }
-      }
-    }// outer while
-
+    }
     Assert.assertEquals(4, i);
   }