<!DOCTYPE html>
<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#booleans">
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="helpers.js"></script>
<div id="context"></div>
<script>
test(() => {
  const context = document.querySelector('#context');
  context.innerHTML = '<span></span><span></span><span></span><br><br>';
  assert_true(evaluateBoolean('(./span)[4] or ./br[2]', context));
}, '"or" operator depending on the context node');

test(() => {
  const context = document.querySelector('#context');
  context.innerHTML = '<span></span><span></span><span></span><br><br>';
  assert_true(evaluateBoolean('count((./span)[3]) = count(./br[2])', context));
}, '"=" operator depending on the context node');

test(() => {
  const context = document.querySelector('#context');
  context.innerHTML = '<span></span><span></span><span></span><br><br>';
  assert_false(evaluateBoolean('count((./span)[3]) != count(./br[2])', context));
}, '"!=" operator depending on the context node');

test(() => {
  const context = document.querySelector('#context');
  context.innerHTML = '<span></span><span></span><span></span><br><br>';
  assert_true(evaluateBoolean('count((./span)[3]) < count(./br)', context));
}, '"<" operator depending on the context node');

test(() => {
  const context = document.querySelector('#context');
  context.innerHTML = '<span></span><span></span><span></span><br><br>';
  assert_false(evaluateBoolean('count((./span)[3]) > count(./br[2])', context));
}, '">" operator depending on the context node');

test(() => {
  const context = document.querySelector('#context');
  context.innerHTML = '<span></span><span></span><span></span><br><br>';
  assert_false(evaluateBoolean('count((./span)[3]) >= count(./br)', context));
}, '">=" operator depending on the context node');

test(() => {
  const context = document.querySelector('#context');
  context.innerHTML = '<span></span><span></span><span></span><br><br>';
  assert_true(evaluateBoolean('count((./span)[3]) <= count(./br[2])', context));
}, '"<=" operator depending on the context node');

</script>
</body>
