Count the Unique Rectangles!
JavaScript (ES6), 99

(X,Y,Z=new Set)=&gt;X.map(v=&gt;X.map(t=&gt;t&gt;v&amp;&amp;Y.map(w=&gt;Y.map(u=&gt;u&gt;w&amp;&amp;Z.add([u-w,t-v].sort()+0)))))|Z.size

Note: sort is not numeric but lexicographic, but in this specific case I don't care
Less golfed
(X, Y, Z = new Set) =&gt;
  X.map(
    v =&gt; X.map(
      t =&gt; t&gt;v &amp;&amp; Y.map(
        w =&gt; Y.map(
          u =&gt; u&gt;w &amp;&amp; Z.add([u-w, t-v].sort() + 0)
        )
      )
    )
  ) | Z.size

Test


F=(X,Y,Z=new Set)=&gt;X.map(v=&gt;X.map(t=&gt;t&gt;v&amp;&amp;Y.map(w=&gt;Y.map(u=&gt;u&gt;w&amp;&amp;Z.add([u-w,t-v].sort()+0)))))|Z.size
  
;[
 [[],[], 0]
,[[-250,-50,50,250],[-250,-70,70,250], 16]
,[[-250,-50,50,250],[-250,-70,70], 12]
,[[-40, 40],[-80, 50], 1]
,[[10],[10], 0]
,[[60, -210, -60, 180, 400, -400], [250, -150], 12]
,[[0,300,500],[0,300,500], 6]
].forEach(t=&gt;{
  var a=t[0],b=t[1],k=t[2],r=F(a,b)
  
  console.log(r==k?'OK':'KO','['+a+']','['+b+']',r)
})