#include <iostream>
using namespace std;
int x, y;
void solve()
{
int n = x+y;
if(x > y)
{
cout<<"NO\n"; return;
}
if(x == 0 && y % 2 == 0)
{
cout<<"NO\n"; return;
}
if((x+y)%2 == 1)
{
cout<<"YES\n";
int diff = x-y;
int tmp = 1;
for(int i=1; i<=x*2; i+=1)
{
cout<<tmp<<" "<<tmp+1<<'\n';
tmp++;
}
for(int i=tmp+1; i<=n; i+=1)
{
cout<<1<<" "<<i<<'\n';
}
}
else
{
cout<<"YES\n";
int diff = x-y;
int tmp = 1;
for(int i=1; i<=x*2-1; i+=1)
{
cout<<tmp<<" "<<tmp+1<<'\n';
tmp++;
}
for(int i=tmp+1; i<=n; i+=1)
{
cout<<1<<" "<<i<<'\n';
}
}
}
int main() {
int test = 1;
cin>>test;
while(test--)
{
cin>>x>>y;
solve();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IHgsIHk7Cgp2b2lkIHNvbHZlKCkKewoJaW50IG4gPSB4K3k7CglpZih4ID4geSkKCXsKCQljb3V0PDwiTk9cbiI7IHJldHVybjsKCX0KCWlmKHggPT0gMCAmJiB5ICUgMiA9PSAwKQoJewoJCWNvdXQ8PCJOT1xuIjsgcmV0dXJuOwoJfQoJaWYoKHgreSklMiA9PSAxKQoJewoJCWNvdXQ8PCJZRVNcbiI7CgkJaW50IGRpZmYgPSB4LXk7CgkJaW50IHRtcCA9IDE7CgkJZm9yKGludCBpPTE7IGk8PXgqMjsgaSs9MSkKCQl7CgkJCWNvdXQ8PHRtcDw8IiAiPDx0bXArMTw8J1xuJzsKCQkJdG1wKys7CgkJfQoJCWZvcihpbnQgaT10bXArMTsgaTw9bjsgaSs9MSkKCQl7CgkJCWNvdXQ8PDE8PCIgIjw8aTw8J1xuJzsKCQl9Cgl9CgllbHNlCgl7CgkJY291dDw8IllFU1xuIjsKCQlpbnQgZGlmZiA9IHgteTsKCQlpbnQgdG1wID0gMTsKCQlmb3IoaW50IGk9MTsgaTw9eCoyLTE7IGkrPTEpCgkJewoJCQljb3V0PDx0bXA8PCIgIjw8dG1wKzE8PCdcbic7CgkJCXRtcCsrOwoJCX0KCQlmb3IoaW50IGk9dG1wKzE7IGk8PW47IGkrPTEpCgkJewoJCQljb3V0PDwxPDwiICI8PGk8PCdcbic7CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCWludCB0ZXN0ID0gMTsKCWNpbj4+dGVzdDsKCXdoaWxlKHRlc3QtLSkKCXsKCQljaW4+Png+Pnk7CgkJc29sdmUoKTsKCX0KCXJldHVybiAwOwp9