package org.apache.xml.security.c14n.implementations;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Map;

import junit.framework.Test;
import junit.framework.TestSuite;

public class UtfHelpper {

	final static void writeByte(final String str,final OutputStream out,Map cache) throws IOException {
		   byte []result=(byte[]) cache.get(str);	 
		   if (result==null) {
			   result=getStringInUtf8(str);
			   cache.put(str,result);
		   }
		   
		   out.write(result);
		   
	   }

	final static void writeCharToUtf8(final char c,final OutputStream out) throws IOException{   	
	   	if ( (c & 0x80) ==0) {
	        out.write(c);
	        return;
	    }
	    int bias;
	    int write;
	    char ch;
	    if (c > 0x07FF) {
	        ch=(char)(c>>>12);      
	        write=0xE0;
	        if (ch>0) {
	            write |= ( ch & 0x0F);
	        } 
	        out.write(write);
	        write=0x80;
	        bias=0x3F;        
	    } else {
	    	write=0xC0;
	    	bias=0x1F;
	    }
	    ch=(char)(c>>>6);
	    if (ch>0) {
	         write|= (ch & bias);
	    } 
	    out.write(write);
	    out.write(0x80 | ((c) & 0x3F));    
	   	
	   }

	final static void writeStringToUtf8(final String str,final OutputStream out) throws IOException{	   
	   	final int length=str.length();
	   	int i=0;
	    char c;    
	   	while (i<length) {
	   		c=str.charAt(i++);        
	        if ((c & 0x80) == 0) {
	            out.write(c);
	            continue;
	        }
	        char ch;
	        int bias;
	        int write;
	        if (c > 0x07FF) {
	            ch=(char)(c>>>12);      
	            write=0xE0;
	            if (ch>0) {
	                write |= ( ch & 0x0F);
	            } 
	            out.write(write);
	            write=0x80;
	            bias=0x3F;        
	        } else {
	        	write=0xC0;
	        	bias=0x1F;
	        }
	        ch=(char)(c>>>6);
	        if (ch>0) {
	             write|= (ch & bias);
	        } 
	        out.write(write);
	        out.write(0x80 | ((c) & 0x3F));       
	           		
	   	}
	    
	   }

	public final static byte[] getStringInUtf8(final String str) {
		   final int length=str.length();
		   boolean expanded=false;
		   byte []result=new byte[length];
		   	int i=0;
		   	int out=0;
		    char c;    
		   	while (i<length) {
		   		c=str.charAt(i++);        
		        if ((c & 0x80) == 0) {
		            result[out++]=(byte)c;
		            continue;
		        }
		        if (!expanded) {
		        	byte newResult[]=new byte[3*length];
				   	System.arraycopy(result, 0, newResult, 0, out);				   	    	
				   	result=newResult;
				   	expanded=true;
		        }
		        char ch;
		        int bias;
		        byte write;
		        if (c > 0x07FF) {
		            ch=(char)(c>>>12);      
		            write=(byte)0xE0;
		            if (ch>0) {
		                write |= ( ch & 0x0F);
		            } 
		            result[out++]=write;
		            write=(byte)0x80;
		            bias=0x3F;        
		        } else {
		        	write=(byte)0xC0;
		        	bias=0x1F;
		        }
		        ch=(char)(c>>>6);
		        if (ch>0) {
		             write|= (ch & bias);
		        } 
		        result[out++]=write;
		        result[out++]=(byte)(0x80 | ((c) & 0x3F));       
		           		
		   	}
		   	if (expanded) {
		   		byte newResult[]=new byte[out];
		   		System.arraycopy(result, 0, newResult, 0, out);
		   		result=newResult;
		   	}
		   	return result;
	   }

	

}

@@ -138,75 +138,8 @@
 %0D%0A%0D%0A
-import junit.framework.Test;%0D%0Aimport junit.framework.TestSuite;%0D%0A%0D%0A
 publ

Remove junit dependencies. Silly me.