{
  "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": "Optionally copy logpdfs before running mcmc\nCurrently, the MCMC controller calls `__call__` or `evaluateS1` on the same `log_pdf` object for all mcmc chains.\r\n\r\nThis causes problems for more complex LogPDF objects which have attributes which may be updated based on the parameters sent to the call method (in my case, the LogPDF object holds a grid of ODE solver time points which is updated adaptively as the chain moves through parameter space).\r\n\r\nIt's easy enough to fix by making one copy.deepcopy of the log_pdf for each chain, and adding an appropriate pints.Evaluator so each chain is just calling its own log_pdf object. @MichaelClerx let me know if this makes any sense as an optional argument to the MCMC controller !",
  "source": {
    "image": "docker.io/swerebenchv2/pints-team-pints:1444-7380440",
    "platform": "linux/amd64",
    "python": "python",
    "setup": [
      "python -c 'import base64; from pathlib import Path; Path('\"'\"'/tmp/receipts-pints-team__pints-1444-test.patch'\"'\"').write_bytes(base64.b64decode('\"'\"'ZGlmZiAtLWdpdCBhL3BpbnRzL3Rlc3RzL3Rlc3RfZXZhbHVhdG9ycy5weSBiL3BpbnRzL3Rlc3RzL3Rlc3RfZXZhbHVhdG9ycy5weQppbmRleCA2NzA4MjNjOS4uYjNmYzc4OTUgMTAwNzU1Ci0tLSBhL3BpbnRzL3Rlc3RzL3Rlc3RfZXZhbHVhdG9ycy5weQorKysgYi9waW50cy90ZXN0cy90ZXN0X2V2YWx1YXRvcnMucHkKQEAgLTUzLDYgKzUzLDQzIEBAIGNsYXNzIFRlc3RFdmFsdWF0b3JzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBBcmdzIG11c3QgYmUgYSBzZXF1ZW5jZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwaW50cy5TZXF1ZW50aWFsRXZhbHVhdG9yLCBmX2FyZ3MsIDEpCiAKKyAgICBkZWYgdGVzdF9tdWx0aV9zZXF1ZW50aWFsKHNlbGYpOgorCisgICAgICAgICMgQ3JlYXRlIHRlc3QgZGF0YQorICAgICAgICB4cyA9IG5wLnJhbmRvbS5ub3JtYWwoMCwgMTAsIDEwMCkKKyAgICAgICAgeXMgPSBbZih4KSBmb3IgeCBpbiB4c10KKworICAgICAgICAjIFRlc3Qgc2VxdWVudGlhbCBldmFsdWF0b3Igd2l0aCBtdWx0aXBsZSBmdW5jdGlvbnMKKyAgICAgICAgZSA9IHBpbnRzLk11bHRpU2VxdWVudGlhbEV2YWx1YXRvcihbZiBmb3IgXyBpbiByYW5nZSgxMDApXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5wLmFsbCh5cyA9PSBlLmV2YWx1YXRlKHhzKSkpCisKKyAgICAgICAgIyBjaGVjayBlcnJvcnMKKworICAgICAgICAjIG5vdCBpdGVyYWJsZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBlID0gcGludHMuTXVsdGlTZXF1ZW50aWFsRXZhbHVhdG9yKDMpCisKKyAgICAgICAgIyBub3QgY2FsbGFibGUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGUgPSBwaW50cy5NdWx0aVNlcXVlbnRpYWxFdmFsdWF0b3IoW2YsIDRdKQorCisgICAgICAgIGUgPSBwaW50cy5NdWx0aVNlcXVlbnRpYWxFdmFsdWF0b3IoW2YgZm9yIF8gaW4gcmFuZ2UoMTAwKV0pCisgICAgICAgICMgQXJndW1lbnQgbXVzdCBiZSBzZXF1ZW5jZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgZS5ldmFsdWF0ZSgxKQorCisgICAgICAgICMgd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgZS5ldmFsdWF0ZShbMSBmb3IgXyBpbiByYW5nZSg5OSldKQorCisgICAgICAgICMgVGVzdCBhcmdzCisgICAgICAgIGUgPSBwaW50cy5NdWx0aVNlcXVlbnRpYWxFdmFsdWF0b3IoW2ZfYXJncywgZl9hcmdzX3BsdXMxXSwgWzEwLCAyMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5ldmFsdWF0ZShbMSwgMV0pLCBbMzEsIDMyXSkKKworICAgICAgICAjIEFyZ3MgbXVzdCBiZSBhIHNlcXVlbmNlCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgVmFsdWVFcnJvciwgcGludHMuTXVsdGlTZXF1ZW50aWFsRXZhbHVhdG9yLCBbZl9hcmdzXSwgMSkKKwogICAgIGRlZiB0ZXN0X3BhcmFsbGVsKHNlbGYpOgogCiAgICAgICAgICMgQ3JlYXRlIHRlc3QgZGF0YQpAQCAtMjEyLDYgKzI0OSwxMCBAQCBkZWYgZl9hcmdzKHgsIHksIHopOgogICAgIHJldHVybiB4ICsgeSArIHoKIAogCitkZWYgZl9hcmdzX3BsdXMxKHgsIHksIHopOgorICAgIHJldHVybiB4ICsgeSArIHogKyAxCisKKwogZGVmIGlvZXJyb3Jfb25fZml2ZSh4KToKICAgICBpZiB4ID09IDU6CiAgICAgICAgIHJhaXNlIElPRXJyb3IKZGlmZiAtLWdpdCBhL3BpbnRzL3Rlc3RzL3Rlc3RfbWNtY19jb250cm9sbGVyLnB5IGIvcGludHMvdGVzdHMvdGVzdF9tY21jX2NvbnRyb2xsZXIucHkKaW5kZXggY2ViYTlmMDQuLmZiMDNkZTYyIDEwMDc1NQotLS0gYS9waW50cy90ZXN0cy90ZXN0X21jbWNfY29udHJvbGxlci5weQorKysgYi9waW50cy90ZXN0cy90ZXN0X21jbWNfY29udHJvbGxlci5weQpAQCAtMTEsNyArMTEsOSBAQCBpbXBvcnQgcGludHMKIGltcG9ydCBwaW50cy5pbwogaW1wb3J0IHBpbnRzLnRveQogaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdW5pdHRlc3QubW9jawogaW1wb3J0IG51bXB5IGFzIG5wCitpbXBvcnQgbnVtcHkudGVzdGluZyBhcyBucHQKIAogZnJvbSBzaGFyZWQgaW1wb3J0IFN0cmVhbUNhcHR1cmUsIFRlbXBvcmFyeURpcmVjdG9yeQogCkBAIC04MCw2ICs4MiwxNyBAQCBjbGFzcyBUZXN0TUNNQ0NvbnRyb2xsZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBjbHMubG9nX3Bvc3RlcmlvciA9IHBpbnRzLkxvZ1Bvc3RlcmlvcigKICAgICAgICAgICAgIGNscy5sb2dfbGlrZWxpaG9vZCwgY2xzLmxvZ19wcmlvcikKIAorICAgICAgICAjIENyZWF0ZSBhbm90aGVyIGxvZy1saWtlbGlob29kIHdpdGggdHdvIG5vaXNlIHBhcmFtZXRlcnMKKyAgICAgICAgY2xzLmxvZ19saWtlbGlob29kXzIgPSBwaW50cy5BUjFMb2dMaWtlbGlob29kKHByb2JsZW0pCisgICAgICAgIGNscy5sb2dfcHJpb3JfMiA9IHBpbnRzLlVuaWZvcm1Mb2dQcmlvcigKKyAgICAgICAgICAgIFswLjAxLCA0MDAsIDAuMCwgMC4wXSwKKyAgICAgICAgICAgIFswLjAyLCA2MDAsIDEwMCwgMV0KKyAgICAgICAgKQorCisgICAgICAgICMgQ3JlYXRlIGFuIHVuLW5vcm1hbGlzZWQgbG9nLXBvc3RlcmlvciAobG9nLWxpa2VsaWhvb2QgKyBsb2ctcHJpb3IpCisgICAgICAgIGNscy5sb2dfcG9zdGVyaW9yXzIgPSBwaW50cy5Mb2dQb3N0ZXJpb3IoCisgICAgICAgICAgICBjbHMubG9nX2xpa2VsaWhvb2RfMiwgY2xzLmxvZ19wcmlvcl8yKQorCiAgICAgZGVmIHRlc3Rfc2luZ2xlKHNlbGYpOgogICAgICAgICAjIFRlc3Qgd2l0aCBhIFNpbmdsZUNoYWluTUNNQyBtZXRob2QuCiAKQEAgLTExNCw3ICsxMjcsNyBAQCBjbGFzcyBUZXN0TUNNQ0NvbnRyb2xsZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBkZWYgZih4KToKICAgICAgICAgICAgIHJldHVybiB4CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoCi0gICAgICAgICAgICBWYWx1ZUVycm9yLCAnZXh0ZW5kIHBpbnRzLkxvZ1BERicsIHBpbnRzLk1DTUNDb250cm9sbGVyLAorICAgICAgICAgICAgVHlwZUVycm9yLCAnZXh0ZW5kIHBpbnRzLkxvZ1BERicsIHBpbnRzLk1DTUNDb250cm9sbGVyLAogICAgICAgICAgICAgZiwgbl9jaGFpbnMsIHhzKQogCiAgICAgICAgICMgVGVzdCB4MCBhbmQgY2hhaW4gYXJndW1lbnQKQEAgLTM2MSw2ICszNzQsMTAwIEBAIGNsYXNzIFRlc3RNQ01DQ29udHJvbGxlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICBwaW50cy5NQ01DQ29udHJvbGxlciwgc2VsZi5sb2dfcG9zdGVyaW9yLCBuX2NoYWlucywgeHMsIHNpZ21hMCwKICAgICAgICAgICAgIG1ldGhvZD1tZXRoLCB0cmFuc2Zvcm1hdGlvbj1sb2d0KQogCisgICAgZGVmIHRlc3RfbXVsdGlfbG9ncGRmKHNlbGYpOgorICAgICAgICAjIFRlc3Qgd2l0aCBtdWx0aXBsZSBsb2dwZGZzCisKKyAgICAgICAgIyAyIGNoYWlucworICAgICAgICB4MCA9IG5wLmFycmF5KHNlbGYucmVhbF9wYXJhbWV0ZXJzKSAqIDEuMQorICAgICAgICB4MSA9IG5wLmFycmF5KHNlbGYucmVhbF9wYXJhbWV0ZXJzKSAqIDEuMTUKKyAgICAgICAgeHMgPSBbeDAsIHgxXQorCisgICAgICAgICMgTm90IGl0ZXJhYmxlCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIG1jbWMgPSBwaW50cy5NQ01DQ29udHJvbGxlcigxLCAzLCB4cykKKworICAgICAgICAjIFdyb25nIG51bWJlciBvZiBsb2dwZGZzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBtY21jID0gcGludHMuTUNNQ0NvbnRyb2xsZXIoCisgICAgICAgICAgICAgICAgW3NlbGYubG9nX3Bvc3Rlcmlvciwgc2VsZi5sb2dfcG9zdGVyaW9yXSwgMywgeHMpCisKKyAgICAgICAgIyBMaXN0IGRvZXMgbm90IGNvbnRhaW4gbG9ncGRmcworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbWNtYyA9IHBpbnRzLk1DTUNDb250cm9sbGVyKAorICAgICAgICAgICAgICAgIFtzZWxmLmxvZ19wb3N0ZXJpb3IsICdhYmMnXSwgMiwgeHMpCisKKyAgICAgICAgIyBQZGZzIGhhdmUgZGlmZmVyZW50IG51bWJlcnMgb2Ygbl9wYXJhbWV0ZXJzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBtY21jID0gcGludHMuTUNNQ0NvbnRyb2xsZXIoCisgICAgICAgICAgICAgICAgW3NlbGYubG9nX3Bvc3Rlcmlvciwgc2VsZi5sb2dfcG9zdGVyaW9yXzJdLCAyLCB4cykKKworICAgICAgICAjIENvcnJlY3RseSBjb25maWd1cmVkIGlucHV0cworICAgICAgICBuX2NoYWlucyA9IGxlbih4cykKKyAgICAgICAgbl9wYXJhbWV0ZXJzID0gbGVuKHgwKQorICAgICAgICBuX2l0ZXJhdGlvbnMgPSAxMAorICAgICAgICBtY21jID0gcGludHMuTUNNQ0NvbnRyb2xsZXIoCisgICAgICAgICAgICBbc2VsZi5sb2dfcG9zdGVyaW9yLCBzZWxmLmxvZ19wb3N0ZXJpb3JdLAorICAgICAgICAgICAgbl9jaGFpbnMsCisgICAgICAgICAgICB4cywKKyAgICAgICAgICAgIHRyYW5zZm9ybWF0aW9uPXBpbnRzLkxvZ1RyYW5zZm9ybWF0aW9uKG5fcGFyYW1ldGVycyksCisgICAgICAgICAgICBzaWdtYTA9WzEsIDAuMSwgMC4wMV0pCisgICAgICAgIG1jbWMuc2V0X21heF9pdGVyYXRpb25zKG5faXRlcmF0aW9ucykKKyAgICAgICAgbWNtYy5zZXRfbG9nX3RvX3NjcmVlbihGYWxzZSkKKyAgICAgICAgY2hhaW5zID0gbWNtYy5ydW4oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoYWlucy5zaGFwZVswXSwgbl9jaGFpbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hhaW5zLnNoYXBlWzFdLCBuX2l0ZXJhdGlvbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hhaW5zLnNoYXBlWzJdLCBuX3BhcmFtZXRlcnMpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoY2hhaW5zLCBtY21jLmNoYWlucygpKQorCisgICAgICAgICMgV2l0aCBzZW5zaXRpdml0aWVzIG5lZWRlZAorICAgICAgICBtY21jID0gcGludHMuTUNNQ0NvbnRyb2xsZXIoCisgICAgICAgICAgICBbc2VsZi5sb2dfcG9zdGVyaW9yLCBzZWxmLmxvZ19wb3N0ZXJpb3JdLAorICAgICAgICAgICAgbl9jaGFpbnMsCisgICAgICAgICAgICB4cywKKyAgICAgICAgICAgIHRyYW5zZm9ybWF0aW9uPXBpbnRzLkxvZ1RyYW5zZm9ybWF0aW9uKG5fcGFyYW1ldGVycyksCisgICAgICAgICAgICBzaWdtYTA9WzEsIDAuMSwgMC4wMV0sCisgICAgICAgICAgICBtZXRob2Q9cGludHMuSGFtaWx0b25pYW5NQ01DKQorICAgICAgICBtY21jLnNldF9tYXhfaXRlcmF0aW9ucyhuX2l0ZXJhdGlvbnMpCisgICAgICAgIG1jbWMuc2V0X2xvZ190b19zY3JlZW4oRmFsc2UpCisgICAgICAgIGNoYWlucyA9IG1jbWMucnVuKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGFpbnMuc2hhcGVbMF0sIG5fY2hhaW5zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoYWlucy5zaGFwZVsxXSwgbl9pdGVyYXRpb25zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNoYWlucy5zaGFwZVsyXSwgbl9wYXJhbWV0ZXJzKQorICAgICAgICBzZWxmLmFzc2VydElzKGNoYWlucywgbWNtYy5jaGFpbnMoKSkKKworICAgICAgICAjIFBhcmFsbGVsIChjdXJyZW50bHkgcmFpc2VzIGVycm9yKQorICAgICAgICBtY21jID0gcGludHMuTUNNQ0NvbnRyb2xsZXIoCisgICAgICAgICAgICBbc2VsZi5sb2dfcG9zdGVyaW9yLCBzZWxmLmxvZ19wb3N0ZXJpb3JdLAorICAgICAgICAgICAgbl9jaGFpbnMsCisgICAgICAgICAgICB4cywKKyAgICAgICAgICAgIHRyYW5zZm9ybWF0aW9uPXBpbnRzLkxvZ1RyYW5zZm9ybWF0aW9uKG5fcGFyYW1ldGVycyksCisgICAgICAgICAgICBzaWdtYTA9WzEsIDAuMSwgMC4wMV0pCisgICAgICAgIG1jbWMuc2V0X3BhcmFsbGVsKFRydWUpCisgICAgICAgIG1jbWMuc2V0X21heF9pdGVyYXRpb25zKG5faXRlcmF0aW9ucykKKyAgICAgICAgbWNtYy5zZXRfbG9nX3RvX3NjcmVlbihGYWxzZSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGNoYWlucyA9IG1jbWMucnVuKCkKKworICAgICAgICAjIFRlc3QgdGhhdCBib3RoIGxvZ3BkZnMgYXJlIGNhbGxlZAorICAgICAgICBsb2dwZGYxID0gdW5pdHRlc3QubW9jay5NYWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5fdmFsdWU9LTEuMCwgc3BlYz1zZWxmLmxvZ19wb3N0ZXJpb3IpCisgICAgICAgIGxvZ3BkZjIgPSB1bml0dGVzdC5tb2NrLk1hZ2ljTW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT0tMi4wLCBzcGVjPXNlbGYubG9nX3Bvc3RlcmlvcikKKyAgICAgICAgYXR0cnMgPSB7J25fcGFyYW1ldGVycy5yZXR1cm5fdmFsdWUnOiAzfQorICAgICAgICBsb2dwZGYxLmNvbmZpZ3VyZV9tb2NrKCoqYXR0cnMpCisgICAgICAgIGxvZ3BkZjIuY29uZmlndXJlX21vY2soKiphdHRycykKKyAgICAgICAgbWNtYyA9IHBpbnRzLk1DTUNDb250cm9sbGVyKFtsb2dwZGYxLCBsb2dwZGYyXSwgbl9jaGFpbnMsIHhzKQorICAgICAgICBtY21jLnNldF9tYXhfaXRlcmF0aW9ucyhuX2l0ZXJhdGlvbnMpCisgICAgICAgIG1jbWMuc2V0X2xvZ190b19zY3JlZW4oRmFsc2UpCisgICAgICAgIGNoYWlucyA9IG1jbWMucnVuKCkKKworICAgICAgICBsb2dwZGYxLmFzc2VydF9jYWxsZWQoKQorICAgICAgICBsb2dwZGYyLmFzc2VydF9jYWxsZWQoKQorCisgICAgICAgICMgQ2hlY2sgdGhhdCB0aGV5IGdvdCBjYWxsZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB4MCBhdCB0aGUgc3RhcnQKKyAgICAgICAgbnB0LmFzc2VydF9hbGxjbG9zZShsb2dwZGYxLmNhbGxfYXJnc19saXN0WzBdWzBdWzBdLCB4c1swXSkKKyAgICAgICAgbnB0LmFzc2VydF9hbGxjbG9zZShsb2dwZGYyLmNhbGxfYXJnc19saXN0WzBdWzBdWzBdLCB4c1sxXSkKKwogICAgIGRlZiB0ZXN0X3N0b3BwaW5nKHNlbGYpOgogICAgICAgICAjIFRlc3QgZGlmZmVyZW50IHN0b3BwaW5nIGNyaXRlcmlhLgogCg=='\"'\"'))'",
      "git apply /tmp/receipts-pints-team__pints-1444-test.patch"
    ],
    "workdir": "/pints"
  },
  "spec_paths": [
    "pints/tests/test_evaluators.py",
    "pints/tests/test_mcmc_controller.py"
  ],
  "spec_tests": [
    "pints/tests/test_evaluators.py::TestEvaluators::test_multi_sequential"
  ],
  "suite_scope": "--no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning pints/tests/test_evaluators.py pints/tests/test_mcmc_controller.py"
}
