Hexagon-In or Hexagon-Out? There is a great story to tell about regular hexagons found for example in honeycombs. But this busy bee needs your help in telling him which point is inside or outside his honeypot. So, given a regular hexagon as pictured below, centered at the origin and with edge size l, determine if a set of coordinates (x,y) are inside, exactly on the edge or outside of my regular hexagon.



Input, output and rules

The rules are:


Input and output methods follow the default rules. 
Input consists of three integers: x,y,l.
x and y are of any convenient signed integer format. l is positive (never 0).
Your program must output/return a 1 if the point (x,y) is inside the regular hexagon, -1 if it's outside or 0 if it's exactly on the edge.
This is a code-golf, so shortest code wins. In case of a tie, the earliest post wins.
For output to stdout: leading/trailing spaces or newlines in the output are permitted.
Standard loopholes apply.


Test cases

Here are some test cases:

0,0,1        --&gt; 1
0,1,1        --&gt; -1
0,-1,1       --&gt; -1
1,0,1        --&gt; 0
-1,0,1       --&gt; 0
-1,-1,1      --&gt; -1
1,1,1        --&gt; -1
-2,-3,4      --&gt; 1
32,45,58     --&gt; 1
99,97,155    --&gt; -1
123,135,201  --&gt; 1
JavaScript (ES6) 77 83

(a,b,l,h=Math.sqrt(3)*l,x=a&lt;0?-a:a,y=b&lt;0?-b:b)=&gt;y|x!=l?2*y&lt;h&amp;x/l+y/h&lt;1?1:-1:0


Test



f=(a,b,l,h=Math.sqrt(3)*l,x=a&lt;0?-a:a,y=b&lt;0?-b:b)=&gt;y|x!=l?2*y&lt;h&amp;x/l+y/h&lt;1?1:-1:0

// TEST

function go() {
  C.width=400;C.height=300;
  var l=+I.value, x,y, cols={0:'#ff0',1:'#0f0','-1':'#888'},
  ctx = C.getContext("2d")
  ctx.translate(200,150)
  ctx.strokeStyle='#000'
  ctx.lineWidth=1;
  ctx.beginPath();
  ctx.moveTo(0,-150);ctx.lineTo(0,150);ctx.moveTo(-200,0);ctx.lineTo(200,0);
  ctx.stroke();
  ctx.strokeStyle='#f00'
  ctx.beginPath();
  ctx.moveTo(l*10,0);ctx.lineTo(l*5,l*Math.sqrt(3)*5);ctx.lineTo(-l*5,l*Math.sqrt(3)*5)
  ctx.lineTo(-l*10,0);ctx.lineTo(-l*5,-l*Math.sqrt(3)*5);ctx.lineTo(l*5,-l*Math.sqrt(3)*5)
  ctx.closePath();
  ctx.stroke();

  for(y=-14;y&lt;15;y++)
    for(x=-19;x&lt;20;x++) {
      ctx.beginPath();
      ctx.moveTo(x*10,y*10-3);ctx.lineTo(x*10,y*10+3);
      ctx.moveTo(x*10-3,y*10);ctx.lineTo(x*10+3,y*10);
      ctx.strokeStyle=cols[f(x,y,l)]
      ctx.stroke()
    }
}

go()
#C {
  border: 1px solid #000
}
&lt;b&gt;L&lt;/b&gt; &lt;input id=I value=15&gt;&lt;button onclick="go()"&gt;GO&lt;/button&gt;&lt;br&gt;
&lt;canvas id=C width=400 height=300&gt;&lt;/canvas&gt;