{"action":"closed","number":163,"pull_request":{"url":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/163","id":201428448,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAxNDI4NDQ4","html_url":"https://github.com/ljvmiranda921/pyswarms/pull/163","diff_url":"https://github.com/ljvmiranda921/pyswarms/pull/163.diff","patch_url":"https://github.com/ljvmiranda921/pyswarms/pull/163.patch","issue_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/issues/163","number":163,"state":"closed","locked":false,"title":"Add more benchmark functions #158 ","user":{"login":"jayspeidell","id":26357788,"node_id":"MDQ6VXNlcjI2MzU3Nzg4","avatar_url":"https://avatars3.githubusercontent.com/u/26357788?v=4","gravatar_id":"","url":"https://api.github.com/users/jayspeidell","html_url":"https://github.com/jayspeidell","followers_url":"https://api.github.com/users/jayspeidell/followers","following_url":"https://api.github.com/users/jayspeidell/following{/other_user}","gists_url":"https://api.github.com/users/jayspeidell/gists{/gist_id}","starred_url":"https://api.github.com/users/jayspeidell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jayspeidell/subscriptions","organizations_url":"https://api.github.com/users/jayspeidell/orgs","repos_url":"https://api.github.com/users/jayspeidell/repos","events_url":"https://api.github.com/users/jayspeidell/events{/privacy}","received_events_url":"https://api.github.com/users/jayspeidell/received_events","type":"User","site_admin":false},"body":"<!--- Provide a general summary of your changes in the Title above -->\r\n\r\n## Description\r\nObjective Function Updates: Verified Goldstein and Booth functions working and removed TODO tags. Fixed Bulkin No 6 and removed TODO tag. Implemented Cross-in-Tray, Easom, Eggholder, Himmelblau's, Holder Table, and Three Hump Camel functions. File is getting long so I sorted the functions and added a list of functions and their corresponding function name to the docstring.\r\n\r\nBig fix: Added 'z-axis' to formatters/Designer attribute 'labels' to prevent index out of range error when plotting in 3D.\r\n\r\nNew feature: It's hard to visualize some functions with a continuous colormap, so I added a colormaps property to the Designer class in formatters.py to allow the user to choose whichever one they want. It uses the same style as other properties of the class, and the module imports matplotlib.cm to validate both types of colormaps in matplotlib. I edited plotters/plot_countour to initialize a Designer object with a default colormap if none is provided. I've tested with every category of colormap as well as custom colormaps and verified that it is working as intended. I made the edit because I personally find it easier to understand the contrours when they use a discreet colormap. \r\n\r\nDefault parameter change: Mesher.delta from 0.001 to 0.01. This makes it safe to run many of the functions on an average computer. With 0.001, a computer with 8GB of RAM will crash above a domain size of [8, 8] due to the size of the mesh created. Increasing by one order of magnitude allows most provided functions to run without crashing due to memory errors. \r\n\r\n## Related Issue\r\nAdd more benchmark functions #158\r\n\r\nFixing a bug: Designer only had two axis labels by default, so I added \"z-axis\". \r\n\r\nAdded a feature: Designer accepts a colormap from the user. \r\n\r\nChanging a default parameter: The Mesher.delta parameter of 0.001 has a high chance of causing crashes to memory errors. 0.01 is safer for most of the functions in single_obj.py, but some will still crash. \r\n\r\n## Motivation and Context\r\n\r\nAdding a colormap attribute to Designer made easier to verify the functions I implemented because it enabled me to use discreet colormaps. \r\n\r\nI fixed the range out of error bug because it caused a crash. \r\n\r\nI changed the default parameter of Mesher.delta because it uses a massive amount of memory. \r\n\r\n## How Has This Been Tested?\r\n\r\nI created a notebook with all the added functions and tested each function as I implemented it, and then I used flask8 and black. I restricted flask8 and black testing to the files that I edited in each commit. \r\n\r\n\r\n## Screenshots (if appropriate):\r\n\r\n## Types of changes\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [X] Bug fix (non-breaking change which fixes an issue)\r\n- [X] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n\r\n## Checklist:\r\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n- [X] My code follows the code style of this project.\r\n- [ ] My change requires a change to the documentation.\r\n(My change doesn't need additional, but a warning for the Mesher delta attribute would help people using Pyswarms for the first time avoid memory errors.) \r\n- [ ] I have updated the documentation accordingly.\r\n- [X] I have read the **CONTRIBUTING** document.\r\n- [ ] I have added tests to cover my changes.\r\n- [X] All new and existing tests passed.\r\n\r\n","created_at":"2018-07-14T01:12:42Z","updated_at":"2018-07-14T02:51:07Z","closed_at":"2018-07-14T02:51:07Z","merged_at":null,"merge_commit_sha":"c283e2ec594bbb67bd8323fdb167bb12959a6a32","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/163/commits","review_comments_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/163/comments","review_comment_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/issues/163/comments","statuses_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/statuses/1a2db60c11ce9112f93d3ffd0e2ff02661bae991","head":{"label":"jayspeidell:_Add_more_benchmark_functions_#158_","ref":"_Add_more_benchmark_functions_#158_","sha":"1a2db60c11ce9112f93d3ffd0e2ff02661bae991","user":{"login":"jayspeidell","id":26357788,"node_id":"MDQ6VXNlcjI2MzU3Nzg4","avatar_url":"https://avatars3.githubusercontent.com/u/26357788?v=4","gravatar_id":"","url":"https://api.github.com/users/jayspeidell","html_url":"https://github.com/jayspeidell","followers_url":"https://api.github.com/users/jayspeidell/followers","following_url":"https://api.github.com/users/jayspeidell/following{/other_user}","gists_url":"https://api.github.com/users/jayspeidell/gists{/gist_id}","starred_url":"https://api.github.com/users/jayspeidell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jayspeidell/subscriptions","organizations_url":"https://api.github.com/users/jayspeidell/orgs","repos_url":"https://api.github.com/users/jayspeidell/repos","events_url":"https://api.github.com/users/jayspeidell/events{/privacy}","received_events_url":"https://api.github.com/users/jayspeidell/received_events","type":"User","site_admin":false},"repo":{"id":140656376,"node_id":"MDEwOlJlcG9zaXRvcnkxNDA2NTYzNzY=","name":"pyswarms","full_name":"jayspeidell/pyswarms","owner":{"login":"jayspeidell","id":26357788,"node_id":"MDQ6VXNlcjI2MzU3Nzg4","avatar_url":"https://avatars3.githubusercontent.com/u/26357788?v=4","gravatar_id":"","url":"https://api.github.com/users/jayspeidell","html_url":"https://github.com/jayspeidell","followers_url":"https://api.github.com/users/jayspeidell/followers","following_url":"https://api.github.com/users/jayspeidell/following{/other_user}","gists_url":"https://api.github.com/users/jayspeidell/gists{/gist_id}","starred_url":"https://api.github.com/users/jayspeidell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jayspeidell/subscriptions","organizations_url":"https://api.github.com/users/jayspeidell/orgs","repos_url":"https://api.github.com/users/jayspeidell/repos","events_url":"https://api.github.com/users/jayspeidell/events{/privacy}","received_events_url":"https://api.github.com/users/jayspeidell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jayspeidell/pyswarms","description":"A research toolkit for particle swarm optimization in Python ","fork":true,"url":"https://api.github.com/repos/jayspeidell/pyswarms","forks_url":"https://api.github.com/repos/jayspeidell/pyswarms/forks","keys_url":"https://api.github.com/repos/jayspeidell/pyswarms/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jayspeidell/pyswarms/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jayspeidell/pyswarms/teams","hooks_url":"https://api.github.com/repos/jayspeidell/pyswarms/hooks","issue_events_url":"https://api.github.com/repos/jayspeidell/pyswarms/issues/events{/number}","events_url":"https://api.github.com/repos/jayspeidell/pyswarms/events","assignees_url":"https://api.github.com/repos/jayspeidell/pyswarms/assignees{/user}","branches_url":"https://api.github.com/repos/jayspeidell/pyswarms/branches{/branch}","tags_url":"https://api.github.com/repos/jayspeidell/pyswarms/tags","blobs_url":"https://api.github.com/repos/jayspeidell/pyswarms/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jayspeidell/pyswarms/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jayspeidell/pyswarms/git/refs{/sha}","trees_url":"https://api.github.com/repos/jayspeidell/pyswarms/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jayspeidell/pyswarms/statuses/{sha}","languages_url":"https://api.github.com/repos/jayspeidell/pyswarms/languages","stargazers_url":"https://api.github.com/repos/jayspeidell/pyswarms/stargazers","contributors_url":"https://api.github.com/repos/jayspeidell/pyswarms/contributors","subscribers_url":"https://api.github.com/repos/jayspeidell/pyswarms/subscribers","subscription_url":"https://api.github.com/repos/jayspeidell/pyswarms/subscription","commits_url":"https://api.github.com/repos/jayspeidell/pyswarms/commits{/sha}","git_commits_url":"https://api.github.com/repos/jayspeidell/pyswarms/git/commits{/sha}","comments_url":"https://api.github.com/repos/jayspeidell/pyswarms/comments{/number}","issue_comment_url":"https://api.github.com/repos/jayspeidell/pyswarms/issues/comments{/number}","contents_url":"https://api.github.com/repos/jayspeidell/pyswarms/contents/{+path}","compare_url":"https://api.github.com/repos/jayspeidell/pyswarms/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jayspeidell/pyswarms/merges","archive_url":"https://api.github.com/repos/jayspeidell/pyswarms/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jayspeidell/pyswarms/downloads","issues_url":"https://api.github.com/repos/jayspeidell/pyswarms/issues{/number}","pulls_url":"https://api.github.com/repos/jayspeidell/pyswarms/pulls{/number}","milestones_url":"https://api.github.com/repos/jayspeidell/pyswarms/milestones{/number}","notifications_url":"https://api.github.com/repos/jayspeidell/pyswarms/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jayspeidell/pyswarms/labels{/name}","releases_url":"https://api.github.com/repos/jayspeidell/pyswarms/releases{/id}","deployments_url":"https://api.github.com/repos/jayspeidell/pyswarms/deployments","created_at":"2018-07-12T03:30:23Z","updated_at":"2018-07-12T03:30:25Z","pushed_at":"2018-07-14T01:04:08Z","git_url":"git://github.com/jayspeidell/pyswarms.git","ssh_url":"git@github.com:jayspeidell/pyswarms.git","clone_url":"https://github.com/jayspeidell/pyswarms.git","svn_url":"https://github.com/jayspeidell/pyswarms","homepage":"https://pyswarms.readthedocs.io/en/latest/","size":6237,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ljvmiranda921:development","ref":"development","sha":"3d5e346f5ba95e30801a27f7fe47918949e1bbb2","user":{"login":"ljvmiranda921","id":12949683,"node_id":"MDQ6VXNlcjEyOTQ5Njgz","avatar_url":"https://avatars0.githubusercontent.com/u/12949683?v=4","gravatar_id":"","url":"https://api.github.com/users/ljvmiranda921","html_url":"https://github.com/ljvmiranda921","followers_url":"https://api.github.com/users/ljvmiranda921/followers","following_url":"https://api.github.com/users/ljvmiranda921/following{/other_user}","gists_url":"https://api.github.com/users/ljvmiranda921/gists{/gist_id}","starred_url":"https://api.github.com/users/ljvmiranda921/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljvmiranda921/subscriptions","organizations_url":"https://api.github.com/users/ljvmiranda921/orgs","repos_url":"https://api.github.com/users/ljvmiranda921/repos","events_url":"https://api.github.com/users/ljvmiranda921/events{/privacy}","received_events_url":"https://api.github.com/users/ljvmiranda921/received_events","type":"User","site_admin":false},"repo":{"id":97002861,"node_id":"MDEwOlJlcG9zaXRvcnk5NzAwMjg2MQ==","name":"pyswarms","full_name":"ljvmiranda921/pyswarms","owner":{"login":"ljvmiranda921","id":12949683,"node_id":"MDQ6VXNlcjEyOTQ5Njgz","avatar_url":"https://avatars0.githubusercontent.com/u/12949683?v=4","gravatar_id":"","url":"https://api.github.com/users/ljvmiranda921","html_url":"https://github.com/ljvmiranda921","followers_url":"https://api.github.com/users/ljvmiranda921/followers","following_url":"https://api.github.com/users/ljvmiranda921/following{/other_user}","gists_url":"https://api.github.com/users/ljvmiranda921/gists{/gist_id}","starred_url":"https://api.github.com/users/ljvmiranda921/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ljvmiranda921/subscriptions","organizations_url":"https://api.github.com/users/ljvmiranda921/orgs","repos_url":"https://api.github.com/users/ljvmiranda921/repos","events_url":"https://api.github.com/users/ljvmiranda921/events{/privacy}","received_events_url":"https://api.github.com/users/ljvmiranda921/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ljvmiranda921/pyswarms","description":"A research toolkit for particle swarm optimization in Python ","fork":false,"url":"https://api.github.com/repos/ljvmiranda921/pyswarms","forks_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/forks","keys_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/teams","hooks_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/hooks","issue_events_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/issues/events{/number}","events_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/events","assignees_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/assignees{/user}","branches_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/branches{/branch}","tags_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/tags","blobs_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/git/refs{/sha}","trees_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/statuses/{sha}","languages_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/languages","stargazers_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/stargazers","contributors_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/contributors","subscribers_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/subscribers","subscription_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/subscription","commits_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/commits{/sha}","git_commits_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/git/commits{/sha}","comments_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/comments{/number}","issue_comment_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/issues/comments{/number}","contents_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/contents/{+path}","compare_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/merges","archive_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/downloads","issues_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/issues{/number}","pulls_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls{/number}","milestones_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/milestones{/number}","notifications_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/labels{/name}","releases_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/releases{/id}","deployments_url":"https://api.github.com/repos/ljvmiranda921/pyswarms/deployments","created_at":"2017-07-12T12:04:45Z","updated_at":"2018-07-13T08:48:49Z","pushed_at":"2018-07-14T01:12:43Z","git_url":"git://github.com/ljvmiranda921/pyswarms.git","ssh_url":"git@github.com:ljvmiranda921/pyswarms.git","clone_url":"https://github.com/ljvmiranda921/pyswarms.git","svn_url":"https://github.com/ljvmiranda921/pyswarms","homepage":"https://pyswarms.readthedocs.io/en/latest/","size":6225,"stargazers_count":172,"watchers_count":172,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":61,"mirror_url":null,"archived":false,"open_issues_count":12,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":61,"open_issues":12,"watchers":172,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/163"},"html":{"href":"https://github.com/ljvmiranda921/pyswarms/pull/163"},"issue":{"href":"https://api.github.com/repos/ljvmiranda921/pyswarms/issues/163"},"comments":{"href":"https://api.github.com/repos/ljvmiranda921/pyswarms/issues/163/comments"},"review_comments":{"href":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/163/comments"},"review_comment":{"href":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ljvmiranda921/pyswarms/pulls/163/commits"},"statuses":{"href":"https://api.github.com/repos/ljvmiranda921/pyswarms/statuses/1a2db60c11ce9112f93d3ffd0e2ff02661bae991"}},"author_association":"NONE","merged":false,"mergeable":true,"rebaseable":true,"mergeable_state":"unstable","merged_by":null,"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":4,"additions":416,"deletions":99,"changed_files":3}}
{"actor":{"display_login":"jayspeidell"}}