#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <vector>
typedef long long int ll;

#define BIG_NUM 2000000000

using namespace std;

int table_4[24][4],table_5[120][5],index_9,m_data[9] = {0,1,2,3,4,5,6,7,8};
int** table_9;

void calc9(){
	int select_num = 5,num,loc_left[5],loc_right[4],left_index,right_index,left_calc[5],right_calc[4];

	index_9 = 0;

	for(int i = 0; i < 512;i++){
		num = 0;
		for(int k = 0; k < 9; k++){
			if(i & (1 << k))num++;
		}
		if(num != select_num)continue;

		left_index = right_index = 0;

		for(int k = 0; k < 9; k++){
			if(i & (1 << k)){
				loc_left[left_index++] = k;
			}else{
				loc_right[right_index++] = k;
			}
		}

		left_index = right_index = 0;

		left_calc[0] = m_data[loc_left[0]],left_calc[1] = m_data[loc_left[1]],left_calc[2] = m_data[loc_left[2]],left_calc[3] = m_data[loc_left[3]],left_calc[4] = m_data[loc_left[4]];
		right_calc[0] = m_data[loc_right[0]],right_calc[1] = m_data[loc_right[1]],right_calc[2] = m_data[loc_right[2]],right_calc[3] = m_data[loc_right[3]];

		for(int k = 0; k < 120; k++){
			for(int p = 0; p < 24; p++){
				for(int a = 0; a < 5; a++){
					table_9[index_9][a] = left_calc[table_5[k][a]];
				}
				for(int a = 0; a < 4; a++){
					table_9[index_9][5+a] = right_calc[table_4[p][a]];
				}
				index_9++;
			}
		}
	}
}


int main(){

	int index_4 = 0;

	for(int a = 0; a < 4; a++){
		for(int b = 0; b < 4; b++){
			for(int c = 0; c < 4; c++){
				for(int d = 0; d < 4; d++){
					if(a != b && a != c && a != d && b != c && b != d && c != d){
						table_4[index_4][0] = a,table_4[index_4][1] = b,table_4[index_4][2] = c,table_4[index_4][3] = d;
						index_4++;
					}
				}
			}
		}
	}

	int index_5 = 0;

	for(int a = 0; a < 5; a++){
		for(int b = 0; b < 5; b++){
			for(int c = 0; c < 5; c++){
				for(int d = 0; d < 5; d++){
					for(int e = 0; e < 5; e++){
						if(a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e){
							table_5[index_5][0] = a,table_5[index_5][1] = b,table_5[index_5][2] = c,table_5[index_5][3] = d,table_5[index_5][4] = e;
							index_5++;
						}
					}
				}
			}
		}
	}



	table_9 = new int*[362880];
	for(int i = 0; i < 362880; i++){
		table_9[i] = new int[9];
	}

	calc9();

	int K,gates[9],jenny[9],count,score_G,score_J,work[9];
	double ans_J,ans_G;
	scanf("%d",&K);

	for(int loop = 0; loop < K; loop++){
		for(int i = 0; i < 9; i++)scanf("%d",&gates[i]);
		for(int i = 0; i < 9; i++)scanf("%d",&jenny[i]);

		count = 0;
		for(int i = 0; i < 362880; i++){
			score_G = 0,score_J = 0;
			for(int k = 0; k < 9; k++){
				work[k] = jenny[table_9[i][k]];

				if(work[k] > gates[k]){
					score_J += work[k] + gates[k];
				}else{
					score_G += gates[k] + work[k];
				}
			}
			if(score_J > score_G)count++;
		}

		ans_J = (double)count/(double)362880;
		ans_G = 1 - ans_J;

		printf("%.5lf %.5lf\n",ans_G,ans_J);
	}

    return 0;
}