description: Monocarp wrote down two numbers on a whiteboard. Both numbers follow a specific format: a positive integer x with p zeros appended to its end.
  
  Now Monocarp asks you to compare these two numbers. Can you help him?
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^4) — the number of testcases.
  
  The first line of each testcase contains two integers x_1 and p_1 (1 ≤ x_1 ≤ 10^6; 0 ≤ p_1 ≤ 10^6) — the description of the first number.
  
  The second line of each testcase contains two integers x_2 and p_2 (1 ≤ x_2 ≤ 10^6; 0 ≤ p_2 ≤ 10^6) — the description of the second number.
  
  Output
  
  For each testcase print the result of the comparison of the given two numbers. If the first number is smaller than the second one, print '<'. If the first number is greater than the second one, print '>'. If they are equal, print '='.
  
  Example
  
  Input
  
  
  5
  2 1
  19 0
  10 2
  100 1
  1999 0
  2 3
  1 0
  1 0
  99 0
  1 2
  
  
  Output
  
  
  &gt;
  =
  &lt;
  =
  &lt;
  
  Note
  
  The comparisons in the example are: 20 > 19, 1000 = 1000, 1999 < 2000, 1 = 1, 99 < 100.
solution: import java.util.*; import java.io.*; import java.math.*;
  public class Main{
  	//見なくていいよ　ここから------------------------------------------
  	static class InputIterator{
  		ArrayList<String> inputLine = new ArrayList<>(buf);
  		int index = 0; int max; String read;
  		InputIterator(){
  			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  			try{
  				while((read = br.readLine()) != null){
  					inputLine.addAll(Arrays.asList(read.split(" ")));
  				}
  			}catch(IOException e){}
  			max = inputLine.size();
  		}
  		boolean hasNext(){return (index < max);}
  		String next(){
  			if(hasNext()){
  				return inputLine.get(index++);
  			}else{
  				throw new IndexOutOfBoundsException("There is no more input");
  			}
  		}
  	}
  	//入力バッファサイズのつもり。入力点数（スペース区切りでの要素数）が100万を超える場合はバッファサイズを100万にすること
  	static int buf = 1024;
  	static HashMap<Integer, String> CONVSTR = new HashMap<>();
  	static InputIterator ii = new InputIterator();//This class cannot be used in reactive problem.
  	static PrintWriter out = new PrintWriter(System.out);
  	static void flush(){out.flush();}
  	static void myout(Object t){out.println(t);}
  	static void myerr(Object t){System.err.print("debug:");System.err.println(t);}
  	static String next(){return ii.next();}
  	static boolean hasNext(){return ii.hasNext();}
  	static int nextInt(){return Integer.parseInt(next());}
  	static long nextLong(){return Long.parseLong(next());}
  	static double nextDouble(){return Double.parseDouble(next());}
  	static ArrayList<String> nextCharArray(){return myconv(next(), 0);}
  	static ArrayList<String> nextStrArray(int size){
  		ArrayList<String> ret = new ArrayList<>(size);
  		for(int i = 0; i < size; i++){
  			ret.add(next());
  		}
  		return ret;
  	}
  	static ArrayList<Integer> nextIntArray(int size){
  		ArrayList<Integer> ret = new ArrayList<>(size);
  		for(int i = 0; i < size; i++){
  			ret.add(Integer.parseInt(next()));
  		}
  		return ret;
  	}
  	static ArrayList<Long> nextLongArray(int size){
  		ArrayList<Long> ret = new ArrayList<>(size);
  		for(int i = 0; i < size; i++){
  			ret.add(Long.parseLong(next()));
  		}
  		return ret;
  	}
  	@SuppressWarnings("unchecked")
  	static String myconv(Object list, int no){//only join
  		StringBuilder sb = new StringBuilder("");
  		String joinString = CONVSTR.get(no);
  		if(list instanceof String[]){
  			return String.join(joinString, (String[])list);
  		}else if(list instanceof long[]){
  			long[] tmp = (long[])list;
  			if(tmp.length == 0){
  				return "";
  			}
  			sb.append(String.valueOf(tmp[0]));
  			for(int i = 1; i < tmp.length; i++){
  				sb.append(joinString).append(String.valueOf(tmp[i]));
  			}
  			return sb.toString();
  		}else if(list instanceof int[]){
  			int[] tmp = (int[])list;
  			if(tmp.length == 0){
  				return "";
  			}
  			sb.append(String.valueOf(tmp[0]));
  			for(int i = 1; i < tmp.length; i++){
  				sb.append(joinString).append(String.valueOf(tmp[i]));
  			}
  			return sb.toString();
  		}else if(list instanceof ArrayList){
  			ArrayList tmp = (ArrayList)list;
  			if(tmp.size() == 0){
  				return "";
  			}
  			sb.append(tmp.get(0));
  			for(int i = 1; i < tmp.size(); i++){
  				sb.append(joinString).append(tmp.get(i));
  			}
  			return sb.toString();
  		}else{
  			throw new ClassCastException("Don't join");
  		}
  	}
  	static ArrayList<String> myconv(String str, int no){//only split
  		String splitString = CONVSTR.get(no);
  		return new ArrayList<String>(Arrays.asList(str.split(splitString)));
  	}
  	static ArrayList<String> myconv(String str, String no){
  		return new ArrayList<String>(Arrays.asList(str.split(no)));
  	}
  	public static void main(String[] args){
  		CONVSTR.put(8, " "); CONVSTR.put(9, "\n"); CONVSTR.put(0, "");
  		solve();flush();
  	}
  	//見なくていいよ　ここまで------------------------------------------
  	//このコードをコンパイルするときは、「-encoding UTF-8」を指定すること
  	static void solve(){//ここがメイン関数
  		int t = nextInt();
  		while(hasNext()){
  			double x1 = nextDouble();
  			int l1 = String.valueOf(x1).length();
  			int p1 = nextInt();
  			double x2 = nextDouble();
  			int l2 = String.valueOf(x2).length();
  			int p2 = nextInt();
  			if(l1 + p1 < l2 + p2){
  				myout("<");
  			}else if(l1 + p1 > l2 + p2){
  				myout(">");
  			}else{
  				if(l1 < l2){
  					while(l1 < l2 && p1 > 0){
  						l1++;
  						p1--;
  						x1 *= 10;
  					}
  				}else if(l1 > l2){
  					while(l1 > l2 && p2 > 0){
  						l2++;
  						p2--;
  						x2 *= 10;
  					}
  				}
  				if(x1 < x2){
  					myout("<");
  				}else if(x1 > x2){
  					myout(">");
  				}else{
  					myout("=");
  				}
  			}
  		}
  	}
  	//メソッド追加エリア　ここから
  
  
  
  	//メソッド追加エリア　ここまで
  }