{
  "appeals": 1,
  "budgets": {
    "baseline_limit_s": 600,
    "verification_timeout_s": 600,
    "worker": {
      "max_completion_tokens": 96000,
      "max_turns": 60,
      "max_wall_seconds": 1500.0,
      "prompt_token_budget": 160000
    }
  },
  "issue": "DelineateIt should use flow accumulation to break ties in snapping points to streams\nDuring point snapping, if we have two pixels with the same snapping distance, we should use the Flow Accumulation raster to break the tie.  The stream pixel with the highest flow accumulation should be picked over those that are the same distance but with lower flow accumulation values.",
  "source": {
    "image": "docker.io/swerebenchv2/natcap-invest:787-0604628",
    "platform": "linux/amd64",
    "python": "python",
    "setup": [
      "python -c 'import base64; from pathlib import Path; Path('\"'\"'/tmp/receipts-natcap__invest-787-test.patch'\"'\"').write_bytes(base64.b64decode('\"'\"'ZGlmZiAtLWdpdCBhL3Rlc3RzL3Rlc3RfZGVsaW5lYXRlaXQucHkgYi90ZXN0cy90ZXN0X2RlbGluZWF0ZWl0LnB5CmluZGV4IDcxZDllNWNlZC4uYTU2MWNjZGI4IDEwMDY0NAotLS0gYS90ZXN0cy90ZXN0X2RlbGluZWF0ZWl0LnB5CisrKyBiL3Rlc3RzL3Rlc3RfZGVsaW5lYXRlaXQucHkKQEAgLTE4Myw5ICsxODMsMjAgQEAgY2xhc3MgRGVsaW5lYXRlSXRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgWzAsIDEsIDAsIDAsIDAsIDBdLA0KICAgICAgICAgICAgICBbMCwgMSwgMCwgMCwgMCwgMF1dLCBkdHlwZT1udW1weS5pbnQ4KQ0KICAgICAgICAgc3RyZWFtX3Jhc3Rlcl9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYud29ya3NwYWNlX2RpciwgJ3N0cmVhbXMudGlmJykNCisgICAgICAgIGZsb3dfYWNjdW1fYXJyYXkgPSBudW1weS5hcnJheSgNCisgICAgICAgICAgICBbWzEsIDUsIDEsIDEsIDEsIDFdLA0KKyAgICAgICAgICAgICBbMSwgNSwgMSwgMSwgMSwgMV0sDQorICAgICAgICAgICAgIFsxLCA1LCAxLCAxLCAxLCAxXSwNCisgICAgICAgICAgICAgWzEsIDUsIDEsIDEsIDEsIDFdLA0KKyAgICAgICAgICAgICBbMSwgNSwgNSwgNSwgNSwgNV0sDQorICAgICAgICAgICAgIFsxLCA1LCAxLCAxLCAxLCAxXSwNCisgICAgICAgICAgICAgWzEsIDUsIDEsIDEsIDEsIDFdXSwgZHR5cGU9bnVtcHkuaW50OCkNCisgICAgICAgIGZsb3dfYWNjdW1fcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLndvcmtzcGFjZV9kaXIsICdmbG93X2FjY3VtLnRpZicpDQogICAgICAgICAjIGJ5dGUgZGF0YXR5cGUNCiAgICAgICAgIHB5Z2VvcHJvY2Vzc2luZy5udW1weV9hcnJheV90b19yYXN0ZXIoDQogICAgICAgICAgICAgc3RyZWFtX21hdHJpeCwgMjU1LCAoMiwgLTIpLCAoMiwgLTIpLCB3a3QsIHN0cmVhbV9yYXN0ZXJfcGF0aCkNCisgICAgICAgIHB5Z2VvcHJvY2Vzc2luZy5udW1weV9hcnJheV90b19yYXN0ZXIoDQorICAgICAgICAgICAgZmxvd19hY2N1bV9hcnJheSwgMjU1LCAoMiwgLTIpLCAoMiwgLTIpLCB3a3QsIGZsb3dfYWNjdW1fcGF0aCkNCiANCiAgICAgICAgIHNvdXJjZV9wb2ludHNfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLndvcmtzcGFjZV9kaXIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvdXJjZV9mZWF0dXJlcy5nZW9qc29uJykNCkBAIC0yMTYsMTMgKzIyNywxMyBAQCBjbGFzcyBEZWxpbmVhdGVJdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc25hcF9kaXN0YW5jZSA9IC0xDQogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGNtOg0KICAgICAgICAgICAgIGRlbGluZWF0ZWl0LnNuYXBfcG9pbnRzX3RvX25lYXJlc3Rfc3RyZWFtKA0KLSAgICAgICAgICAgICAgICBzb3VyY2VfcG9pbnRzX3BhdGgsIChzdHJlYW1fcmFzdGVyX3BhdGgsIDEpLA0KKyAgICAgICAgICAgICAgICBzb3VyY2VfcG9pbnRzX3BhdGgsIHN0cmVhbV9yYXN0ZXJfcGF0aCwgZmxvd19hY2N1bV9wYXRoLA0KICAgICAgICAgICAgICAgICBzbmFwX2Rpc3RhbmNlLCBzbmFwcGVkX3BvaW50c19wYXRoKQ0KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdtdXN0IGJlID49IDAnIGluIHN0cihjbS5leGNlcHRpb24pKQ0KIA0KICAgICAgICAgc25hcF9kaXN0YW5jZSA9IDEwICAjIGxhcmdlIGVub3VnaCB0byBnZXQgbXVsdGlwbGUgc3RyZWFtcyBwZXIgcG9pbnQuDQogICAgICAgICBkZWxpbmVhdGVpdC5zbmFwX3BvaW50c190b19uZWFyZXN0X3N0cmVhbSgNCi0gICAgICAgICAgICBzb3VyY2VfcG9pbnRzX3BhdGgsIChzdHJlYW1fcmFzdGVyX3BhdGgsIDEpLA0KKyAgICAgICAgICAgIHNvdXJjZV9wb2ludHNfcGF0aCwgc3RyZWFtX3Jhc3Rlcl9wYXRoLCBmbG93X2FjY3VtX3BhdGgsDQogICAgICAgICAgICAgc25hcF9kaXN0YW5jZSwgc25hcHBlZF9wb2ludHNfcGF0aCkNCiANCiAgICAgICAgIHNuYXBwZWRfcG9pbnRzX3ZlY3RvciA9IGdkYWwuT3BlbkV4KHNuYXBwZWRfcG9pbnRzX3BhdGgsDQpAQCAtMjY1LDkgKzI3NiwyMCBAQCBjbGFzcyBEZWxpbmVhdGVJdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICBbMCwgMSwgMCwgMCwgMCwgMF0sDQogICAgICAgICAgICAgIFswLCAxLCAwLCAwLCAwLCAwXV0sIGR0eXBlPW51bXB5LmludDgpDQogICAgICAgICBzdHJlYW1fcmFzdGVyX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi53b3Jrc3BhY2VfZGlyLCAnc3RyZWFtcy50aWYnKQ0KKyAgICAgICAgZmxvd19hY2N1bV9hcnJheSA9IG51bXB5LmFycmF5KA0KKyAgICAgICAgICAgIFtbMSwgNSwgMSwgMSwgMSwgMV0sDQorICAgICAgICAgICAgIFsxLCA1LCAxLCAxLCAxLCAxXSwNCisgICAgICAgICAgICAgWzEsIDUsIDEsIDEsIDEsIDFdLA0KKyAgICAgICAgICAgICBbMSwgNSwgMSwgMSwgMSwgMV0sDQorICAgICAgICAgICAgIFsxLCA1LCA1LCA1LCA1LCA1XSwNCisgICAgICAgICAgICAgWzEsIDUsIDEsIDEsIDEsIDFdLA0KKyAgICAgICAgICAgICBbMSwgNSwgMSwgMSwgMSwgMV1dLCBkdHlwZT1udW1weS5pbnQ4KQ0KKyAgICAgICAgZmxvd19hY2N1bV9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYud29ya3NwYWNlX2RpciwgJ2Zsb3dfYWNjdW0udGlmJykNCiAgICAgICAgICMgYnl0ZSBkYXRhdHlwZQ0KICAgICAgICAgcHlnZW9wcm9jZXNzaW5nLm51bXB5X2FycmF5X3RvX3Jhc3RlcigNCiAgICAgICAgICAgICBzdHJlYW1fbWF0cml4LCAyNTUsICgyLCAtMiksICgyLCAtMiksIHdrdCwgc3RyZWFtX3Jhc3Rlcl9wYXRoKQ0KKyAgICAgICAgcHlnZW9wcm9jZXNzaW5nLm51bXB5X2FycmF5X3RvX3Jhc3RlcigNCisgICAgICAgICAgICBmbG93X2FjY3VtX2FycmF5LCAyNTUsICgyLCAtMiksICgyLCAtMiksIHdrdCwgZmxvd19hY2N1bV9wYXRoKQ0KIA0KICAgICAgICAgc291cmNlX3BvaW50c19wYXRoID0gb3MucGF0aC5qb2luKHNlbGYud29ya3NwYWNlX2RpciwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc291cmNlX2ZlYXR1cmVzLmdwa2cnKQ0KQEAgLTMwNCw3ICszMjYsNyBAQCBjbGFzcyBEZWxpbmVhdGVJdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc25hcHBlZF9wb2ludHMuZ3BrZycpDQogICAgICAgICBzbmFwX2Rpc3RhbmNlID0gMTAgICMgbGFyZ2UgZW5vdWdoIHRvIGdldCBtdWx0aXBsZSBzdHJlYW1zIHBlciBwb2ludC4NCiAgICAgICAgIGRlbGluZWF0ZWl0LnNuYXBfcG9pbnRzX3RvX25lYXJlc3Rfc3RyZWFtKA0KLSAgICAgICAgICAgIHNvdXJjZV9wb2ludHNfcGF0aCwgKHN0cmVhbV9yYXN0ZXJfcGF0aCwgMSksDQorICAgICAgICAgICAgc291cmNlX3BvaW50c19wYXRoLCBzdHJlYW1fcmFzdGVyX3BhdGgsIGZsb3dfYWNjdW1fcGF0aCwNCiAgICAgICAgICAgICBzbmFwX2Rpc3RhbmNlLCBzbmFwcGVkX3BvaW50c19wYXRoKQ0KIA0KICAgICAgICAgdHJ5Og0KQEAgLTMyNCw2ICszNDYsNjYgQEAgY2xhc3MgRGVsaW5lYXRlSXRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBzbmFwcGVkX3BvaW50c19sYXllciA9IE5vbmUNCiAgICAgICAgICAgICBzbmFwcGVkX3BvaW50c192ZWN0b3IgPSBOb25lDQogDQorICAgIGRlZiB0ZXN0X3BvaW50X3NuYXBwaW5nX2JyZWFrX3RpZXMoc2VsZik6DQorICAgICAgICAiIiJEZWxpbmVhdGVJdDogZGlzdGFuY2UgdGllcyBhcmUgYnJva2VuIHVzaW5nIGZsb3cgYWNjdW11bGF0aW9uLiIiIg0KKyAgICAgICAgZnJvbSBuYXRjYXAuaW52ZXN0LmRlbGluZWF0ZWl0IGltcG9ydCBkZWxpbmVhdGVpdA0KKw0KKyAgICAgICAgc3JzID0gb3NyLlNwYXRpYWxSZWZlcmVuY2UoKQ0KKyAgICAgICAgc3JzLkltcG9ydEZyb21FUFNHKDMyNzMxKSAgIyBXR1M4NC9VVE0gem9uZSAzMXMNCisgICAgICAgIHdrdCA9IHNycy5FeHBvcnRUb1drdCgpDQorDQorICAgICAgICAjIG5lZWQgc3RyZWFtIGxheWVyLCBwb2ludHMNCisgICAgICAgIHN0cmVhbV9tYXRyaXggPSBudW1weS5hcnJheSgNCisgICAgICAgICAgICBbWzAsIDEsIDAsIDAsIDAsIDBdLA0KKyAgICAgICAgICAgICBbMCwgMSwgMCwgMCwgMCwgMF0sDQorICAgICAgICAgICAgIFswLCAxLCAwLCAwLCAwLCAwXSwNCisgICAgICAgICAgICAgWzAsIDEsIDAsIDAsIDAsIDBdLA0KKyAgICAgICAgICAgICBbMCwgMSwgMSwgMSwgMSwgMV0sDQorICAgICAgICAgICAgIFswLCAxLCAwLCAwLCAwLCAwXSwNCisgICAgICAgICAgICAgWzAsIDEsIDAsIDAsIDAsIDBdXSwgZHR5cGU9bnVtcHkuaW50OCkNCisgICAgICAgIHN0cmVhbV9yYXN0ZXJfcGF0aCA9IG9zLnBhdGguam9pbihzZWxmLndvcmtzcGFjZV9kaXIsICdzdHJlYW1zLnRpZicpDQorICAgICAgICBmbG93X2FjY3VtX2FycmF5ID0gbnVtcHkuYXJyYXkoDQorICAgICAgICAgICAgW1sxLCA1LCAxLCAxLCAxLCAxXSwNCisgICAgICAgICAgICAgWzEsIDUsIDEsIDEsIDEsIDFdLA0KKyAgICAgICAgICAgICBbMSwgNSwgMSwgMSwgMSwgMV0sDQorICAgICAgICAgICAgIFsxLCA1LCAxLCAxLCAxLCAxXSwNCisgICAgICAgICAgICAgWzEsIDUsIDksIDksIDksIDldLA0KKyAgICAgICAgICAgICBbMSwgNCwgMSwgMSwgMSwgMV0sDQorICAgICAgICAgICAgIFsxLCA0LCAxLCAxLCAxLCAxXV0sIGR0eXBlPW51bXB5LmludDgpDQorICAgICAgICBmbG93X2FjY3VtX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi53b3Jrc3BhY2VfZGlyLCAnZmxvd19hY2N1bS50aWYnKQ0KKyAgICAgICAgcHlnZW9wcm9jZXNzaW5nLm51bXB5X2FycmF5X3RvX3Jhc3RlcigNCisgICAgICAgICAgICBzdHJlYW1fbWF0cml4LCAyNTUsICgyLCAtMiksICgyLCAtMiksIHdrdCwgc3RyZWFtX3Jhc3Rlcl9wYXRoKQ0KKyAgICAgICAgcHlnZW9wcm9jZXNzaW5nLm51bXB5X2FycmF5X3RvX3Jhc3RlcigNCisgICAgICAgICAgICBmbG93X2FjY3VtX2FycmF5LCAtMSwgKDIsIC0yKSwgKDIsIC0yKSwgd2t0LCBmbG93X2FjY3VtX3BhdGgpDQorDQorICAgICAgICBzb3VyY2VfcG9pbnRzX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi53b3Jrc3BhY2VfZGlyLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2VfZmVhdHVyZXMuZ2VvanNvbicpDQorICAgICAgICBzb3VyY2VfZmVhdHVyZXMgPSBbUG9pbnQoOSwgLTcpXSAgIyBlcXVpZGlzdGFudCBmcm9tIHR3byBzdHJlYW1zDQorICAgICAgICBweWdlb3Byb2Nlc3Npbmcuc2hhcGVseV9nZW9tZXRyeV90b192ZWN0b3IoDQorICAgICAgICAgICAgc291cmNlX2ZlYXR1cmVzLCBzb3VyY2VfcG9pbnRzX3BhdGgsIHdrdCwgJ0dlb0pTT04nLA0KKyAgICAgICAgICAgIG9ncl9nZW9tX3R5cGU9b2dyLndrYlVua25vd24pDQorDQorICAgICAgICBzbmFwcGVkX3BvaW50c19wYXRoID0gb3MucGF0aC5qb2luKHNlbGYud29ya3NwYWNlX2RpciwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NuYXBwZWRfcG9pbnRzLmdwa2cnKQ0KKw0KKyAgICAgICAgc25hcF9kaXN0YW5jZSA9IDEwICAjIGxhcmdlIGVub3VnaCB0byBnZXQgbXVsdGlwbGUgc3RyZWFtcyBwZXIgcG9pbnQuDQorICAgICAgICBkZWxpbmVhdGVpdC5zbmFwX3BvaW50c190b19uZWFyZXN0X3N0cmVhbSgNCisgICAgICAgICAgICBzb3VyY2VfcG9pbnRzX3BhdGgsIHN0cmVhbV9yYXN0ZXJfcGF0aCwgZmxvd19hY2N1bV9wYXRoLA0KKyAgICAgICAgICAgIHNuYXBfZGlzdGFuY2UsIHNuYXBwZWRfcG9pbnRzX3BhdGgpDQorDQorICAgICAgICBzbmFwcGVkX3BvaW50c192ZWN0b3IgPSBnZGFsLk9wZW5FeChzbmFwcGVkX3BvaW50c19wYXRoLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2RhbC5PRl9WRUNUT1IpDQorICAgICAgICBzbmFwcGVkX3BvaW50c19sYXllciA9IHNuYXBwZWRfcG9pbnRzX3ZlY3Rvci5HZXRMYXllcigpDQorDQorICAgICAgICAjIHNob3VsZCBzbmFwIHRvIHN0cmVhbSBwb2ludCBbNCwgM10gaW4gdGhlIGFycmF5IGFib3ZlDQorICAgICAgICAjIGlmIG5vdCBjb25zaWRlcmluZyBmbG93IGFjY3VtdWxhdGlvbiwgaXQgd291bGQgc25hcCB0byB0aGUNCisgICAgICAgICMgbmVhcmVzdCBzdHJlYW0gcG9pbnQgZm91bmQgZmlyc3QgaW4gdGhlIGFycmF5LCBhdCBbMiwgMV0NCisgICAgICAgIHBvaW50cyA9IFsNCisgICAgICAgICAgICBzaGFwZWx5LndrYi5sb2FkcyhieXRlcyhmZWF0dXJlLkdldEdlb21ldHJ5UmVmKCkuRXhwb3J0VG9Xa2IoKSkpDQorICAgICAgICAgICAgZm9yIGZlYXR1cmUgaW4gc25hcHBlZF9wb2ludHNfbGF5ZXJdDQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwb2ludHMpLCAxKQ0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgocG9pbnRzWzBdLngsIHBvaW50c1swXS55KSwgKDksIC0xMSkpDQorDQogICAgIGRlZiB0ZXN0X2NoZWNrX2dlb21ldHJpZXMoc2VsZik6DQogICAgICAgICAiIiJEZWxpbmVhdGVJdDogQ2hlY2sgdGhhdCB3ZSBjYW4gcmVhc29uYWJseSByZXBhaXIgZ2VvbWV0cmllcy4iIiINCiAgICAgICAgIGZyb20gbmF0Y2FwLmludmVzdC5kZWxpbmVhdGVpdCBpbXBvcnQgZGVsaW5lYXRlaXQNCg=='\"'\"'))'",
      "git apply /tmp/receipts-natcap__invest-787-test.patch"
    ],
    "workdir": "/invest"
  },
  "spec_paths": [
    "tests/test_delineateit.py"
  ],
  "spec_tests": [
    "tests/test_delineateit.py::DelineateItTests::test_point_snapping",
    "tests/test_delineateit.py::DelineateItTests::test_point_snapping_break_ties",
    "tests/test_delineateit.py::DelineateItTests::test_point_snapping_multipoint"
  ],
  "suite_scope": "--no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning tests/test_delineateit.py"
}
