qtest = ...
@(A)all(sum([A A' (d=@spdiags)(A) d(flip(A))],1)==1)
S = [0 0 0 1 0 0 0 0;
0 0 0 0 0 0 1 0;
0 0 1 0 0 0 0 0;
0 0 0 0 0 0 0 1;
0 1 0 0 0 0 0 0;
0 0 0 0 1 0 0 0;
1 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0]
qtest(S)
S = [0 0 0 1 0;
1 0 0 0 0;
0 1 0 0 0;
0 0 0 0 1;
0 0 1 0 0]
qtest(S)
S = [1 0;
1 0]
qtest(S)
S = [0 0 1;
0 0 0;
0 1 0]
qtest(S)
S = [0 0 1 0;
1 0 0 0;
0 0 0 1;
0 1 0 0]
qtest(S)
S = [1]
qtest(S)
cXRlc3QgPSAuLi4KQChBKWFsbChzdW0oW0EgQScgKGQ9QHNwZGlhZ3MpKEEpIGQoZmxpcChBKSldLDEpPT0xKQoKUyA9IFswIDAgMCAxIDAgMCAwIDA7CiAgICAgMCAwIDAgMCAwIDAgMSAwOwogICAgIDAgMCAxIDAgMCAwIDAgMDsKICAgICAwIDAgMCAwIDAgMCAwIDE7CiAgICAgMCAxIDAgMCAwIDAgMCAwOwogICAgIDAgMCAwIDAgMSAwIDAgMDsKICAgICAxIDAgMCAwIDAgMCAwIDA7CiAgICAgMCAwIDAgMCAwIDEgMCAwXQpxdGVzdChTKQoKUyA9IFswIDAgMCAxIDA7CiAgICAgMSAwIDAgMCAwOwogICAgIDAgMSAwIDAgMDsKICAgICAwIDAgMCAwIDE7CiAgICAgMCAwIDEgMCAwXQpxdGVzdChTKQoKUyA9IFsxIDA7CiAgICAgMSAwXQpxdGVzdChTKQoKUyA9IFswIDAgMTsKICAgICAwIDAgMDsKICAgICAwIDEgMF0KcXRlc3QoUykKClMgPSBbMCAwIDEgMDsKICAgICAxIDAgMCAwOwogICAgIDAgMCAwIDE7CiAgICAgMCAxIDAgMF0KcXRlc3QoUykKClMgPSBbMV0KcXRlc3QoUykKCg==