#include<iostream>
using namespace std;#include<math.h>intgcm(int a,int b)//最大公约数{
int t;if(b > a){
t = b;
b = a;
a = t;}if(a % b ==0)return b;elsegcm(b, a % b);}
class Fraction {
//定义的分数类
public:int up =0;int down =0;};voidreduction(int a,int b,bool flag){
//输出与化简if(flag){
if((b /gcm(a, b)==1)) cout<<(a /gcm(a, b))<<endl;else cout <<(a /gcm(a, b))<<'/'<<(b /gcm(a, b))<< endl;}else{
if((b /gcm(a, b)==1)) cout <<'-'<<(a /gcm(a, b))<<endl;else cout <<'-'<<(a /gcm(a, b))<<'/'<<(b /gcm(a, b))<< endl;}}intmain()//主函数运算的实现{
int T;int a, b, c, d;char op;
Fraction f;
cin >> T;while(T !=0){
bool flag =1;
cin >> a >> b >> c >> d >> op;if(op =='+'){
cout << a <<'/'<< b << op << c <<'/'<< d <<'=';
f.up = a * d + b * c;
f.down = b * d;if(f.up <0|| f.down <0) flag = false;
f.up =abs(f.up);
f.down =abs(f.down);reduction(f.up, f.down,flag);}elseif(op =='-'){
cout << a <<'/'<< b << op << c <<'/'<< d <<'=';
f.up = a * d - b * c;
f.down = b * d;if(f.up <0|| f.down <0) flag = false;
f.up =abs(f.up);
f.down =abs(f.down);reduction(f.up, f.down,flag);}elseif(op =='*'){
cout << a <<'/'<< b << op << c <<'/'<< d <<'=';
f.up = a * c;
f.down = b * d;if(f.up <0|| f.down <0) flag = false;
f.up =abs(f.up);
f.down =abs(f.down);reduction(f.up, f.down, flag);}elseif(op =='/'){
cout << a <<'/'<< b << op << c <<'/'<< d <<'=';if(f.up <0|| f.down <0) flag = false;
f.up = a * d;
f.down = b * c;
f.up =abs(f.up);
f.down =abs(f.down);reduction(f.up, f.down, flag);}
T--;}}