W=
{[
[0, 0, 1, -79, 342],
[1, 0, 0, -22, 219],
[0, 0, 1, -247, 1476],
[1, -1, 0, -415, 3481],
[0, 0, 0, -532, 4420],
[1, 1, 0, -2582, 48720],
[0, 0, 1, -7077, 235516],
[1, -1, 0, -2326, 43456],
[1, -1, 0, -16249, 799549],
[1, -1, 1, -63147, 6081915] ];
}
check(E)=
{
  E=ellinit(E);
  L=ellratpoints(E,1000);
  if(#L!=#Set(L),error([E,L]));
  for(i=1,#L,if(!ellisoncurve(E,L[i]),error([E,L[i]])));
  #L+1;
}
for(i=1,#W,print(check(W[i])))
check([0,0,1/7^3,-7/7^4,6/7^6])

E=ellinit([-25,1]);ellratpoints(E,10,1)
E=ellinit([-25,2]);ellratpoints(E,10,1)
E=ellinit([0,0,1,-7,6]);ellratpoints(E,[10^5,1])
E=ellinit([0,0,1,-7,6]);ellratpoints(E,[10^5,[5,10]])

checkhyp(P,Q)=
{
  L=hyperellratpoints([P,Q],10000);
  if(#L!=#Set(L),error([P,Q,L]));
  for(i=1,#L,
    if(!hyperellisoncurve([P,Q],L[i]),error([P,Q,L[i]])));
  #L;
}
P=82342800 *x^6 - 470135160 *x^5 + 52485681 *x^4 + 2396040466 *x^3 + 567207969 *x^2 - 985905640 *x + 247747600;
hyperellratpoints(P,[10,1])
checkhyp(P,0)
checkhyp(-x^6+x^3+x+1,2*x^3)
checkhyp((-x^6+x^3+x+1)/4,x^3)
checkhyp((-x^6+x^3+x+1)/16,x^3/2)
checkhyp(x^6+4*x+1/7)
hyperellratpoints(9*x^2,3)
hyperellratpoints(x^2+x+1,[5,10])
P=780778196253125*x^4+406402229450000*x^3+76766809420000*x^2+5710274976000*x+95843046656;
hyperellratpoints(P,[0,1])

\\ errors
E=ellinit([0,0,1,-7,6]);ellratpoints(E,[10^5,[5]])
