{"action":"created","comment":{"url":"https://api.github.com/repos/javaslang/javaslang/pulls/comments/62415212","id":62415212,"diff_hunk":"@@ -0,0 +1,398 @@\n+/*     / \\____  _    _  ____   ______  / \\ ____  __    _______\n+ *    /  /    \\/ \\  / \\/    \\ /  /\\__\\/  //    \\/  \\  //  /\\__\\   JΛVΛSLΛNG\n+ *  _/  /  /\\  \\  \\/  /  /\\  \\\\__\\\\  \\  //  /\\  \\ /\\\\/ \\ /__\\ \\   Copyright 2014-2016 Javaslang, http://javaslang.io\n+ * /___/\\_/  \\_/\\____/\\_/  \\_/\\__\\/__/\\__\\_/  \\_//  \\__/\\_____/   Licensed under the Apache License, Version 2.0\n+ */\n+package javaslang.benchmark.collection;\n+\n+import javaslang.Tuple;\n+import javaslang.Tuple2;\n+import javaslang.benchmark.BenchmarkPerformanceReporter;\n+import javaslang.collection.Array;\n+import javaslang.collection.List;\n+import javaslang.collection.SortedMap;\n+import javaslang.collection.Stack;\n+import javaslang.collection.TreeMap;\n+import org.junit.Test;\n+import org.openjdk.jmh.annotations.Benchmark;\n+import org.openjdk.jmh.annotations.BenchmarkMode;\n+import org.openjdk.jmh.annotations.Fork;\n+import org.openjdk.jmh.annotations.Group;\n+import org.openjdk.jmh.annotations.Level;\n+import org.openjdk.jmh.annotations.Measurement;\n+import org.openjdk.jmh.annotations.Mode;\n+import org.openjdk.jmh.annotations.OutputTimeUnit;\n+import org.openjdk.jmh.annotations.Param;\n+import org.openjdk.jmh.annotations.Scope;\n+import org.openjdk.jmh.annotations.Setup;\n+import org.openjdk.jmh.annotations.State;\n+import org.openjdk.jmh.annotations.TearDown;\n+import org.openjdk.jmh.annotations.Threads;\n+import org.openjdk.jmh.annotations.Warmup;\n+import org.openjdk.jmh.results.RunResult;\n+import org.openjdk.jmh.runner.Runner;\n+import org.openjdk.jmh.runner.options.Options;\n+import org.openjdk.jmh.runner.options.OptionsBuilder;\n+import scala.collection.Iterator;\n+import scala.math.Ordering;\n+import scala.math.Ordering$;\n+\n+import java.util.Collection;\n+import java.util.Collections;\n+import java.util.Map;\n+import java.util.NavigableMap;\n+import java.util.Random;\n+import java.util.concurrent.TimeUnit;\n+\n+@BenchmarkMode(Mode.Throughput)\n+@Warmup(iterations = 2, time = 1, timeUnit = TimeUnit.SECONDS)\n+@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS)\n+@OutputTimeUnit(TimeUnit.SECONDS)\n+@Fork(value = 1, jvmArgsAppend = { \"-XX:+UseG1GC\", \"-Xss500m\", \"-Xms4g\", \"-Xmx4g\", \"-ea\" })\n+@Threads(1)\n+public class TreeMapBenchmark {\n+    private static final Ordering<Integer> SCALA_ORDERING = Ordering$.MODULE$.comparatorToOrdering(Integer::compareTo);\n+\n+    @Test\n+    public void launchBenchmark() throws Exception {\n+        Options opt = new OptionsBuilder()\n+                .include(this.getClass().getSimpleName())\n+                .shouldFailOnError(true)\n+                .shouldDoGC(true)\n+                .build();\n+\n+        Collection<RunResult> results = new Runner(opt).run();\n+        BenchmarkPerformanceReporter reporter = BenchmarkPerformanceReporter.of(results);\n+        reporter.printDetailedPerformanceReport();\n+        reporter.printPerformanceRatiosReport();\n+    }\n+\n+    // The JMH samples are the best documentation for how to use it\n+    // http://hg.openjdk.java.net/code-tools/jmh/file/tip/jmh-samples/src/main/java/org/openjdk/jmh/samples/\n+    @State(Scope.Thread)\n+    public static class BenchmarkState {\n+        @Param({\"10\", \"1000\", \"100000\"})\n+        int numItems;\n+\n+        Random random = new Random();\n+\n+        int minKey;\n+        int maxKey;\n+\n+        Array<Integer> keysSorted;\n+        Array<Integer> keysRandom;\n+        Array<Tuple2<Integer, String>> entriesRandom;\n+\n+        TreeMap<Integer, String> slangTreeMap = TreeMap.empty();\n+        java.util.TreeMap<Integer, String> javaTreeMap = new java.util.TreeMap<>();\n+        scala.collection.immutable.TreeMap<Integer, String> scalaTreeMap = new scala.collection.immutable.TreeMap<>(SCALA_ORDERING);\n+\n+        @Setup(Level.Iteration)\n+        public void setUp() {\n+            minKey = 1;\n+            maxKey = numItems * 2;\n+\n+            // We exclude keys with odd numbers to test methods requiring missing keys, such as floor or ceiling\n+            keysSorted = Array.rangeBy(minKey, maxKey, 2);\n+            keysRandom = randomize(keysSorted);\n+            entriesRandom = keysRandom.map(i -> Tuple.of(i, Integer.toString(i)));\n+\n+            entriesRandom.forEach(e -> {\n+                slangTreeMap = slangTreeMap.put(e._1, e._2);\n+                javaTreeMap.put(e._1, e._2);\n+                scalaTreeMap = scalaTreeMap.$plus(new scala.Tuple2<>(e._1, e._2));\n+            });\n+        }\n+\n+        @TearDown\n+        public void tearDown() {\n+            keysRandom = null;\n+            keysRandom = null;\n+            entriesRandom = null;\n+            slangTreeMap = null;\n+            javaTreeMap = null;\n+            scalaTreeMap = null;\n+        }\n+\n+        // Valid keys are only even numbers\n+        int nextValidRandomKey() {\n+            return keysRandom.get(random.nextInt(numItems));\n+        }\n+\n+        int nextRandomKey() {\n+            return random.nextInt(maxKey);\n+        }\n+\n+        Array<Integer> randomize(Array<Integer> list) {\n+            java.util.List<Integer> integers = list.toJavaList();\n+            Collections.shuffle(integers);\n+            return Array.ofAll(integers);\n+        }\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object putRandomValues_Slang(BenchmarkState state) {\n+        TreeMap<Integer, String> treeMap = TreeMap.empty();\n+        for (Integer key : state.keysRandom) {\n+            treeMap = treeMap.put(key, Integer.toString(key));\n+        }\n+        return treeMap;\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object putRandomValues_Java(BenchmarkState state) {\n+        java.util.TreeMap<Integer, String> treeMap = new java.util.TreeMap<>();\n+        for (Integer key : state.keysRandom) {\n+            treeMap.put(key, Integer.toString(key));\n+        }\n+        return treeMap;\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object putRandomValues_Scala(BenchmarkState state) {\n+        scala.collection.immutable.TreeMap<Integer, String> treeMap = new scala.collection.immutable.TreeMap<>(SCALA_ORDERING);\n+        for (Integer key : state.keysRandom) {\n+            treeMap = treeMap.$plus(new scala.Tuple2<>(key, Integer.toString(key)));\n+        }\n+        return treeMap;\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object putSortedValues_Slang(BenchmarkState state) {\n+        TreeMap<Integer, String> treeMap = TreeMap.empty();\n+        for (Integer key : state.keysSorted) {\n+            treeMap = treeMap.put(key, Integer.toString(key));\n+        }\n+        return treeMap;\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object putSortedValues_Java(BenchmarkState state) {\n+        java.util.TreeMap<Integer, String> treeMap = new java.util.TreeMap<>();\n+        for (Integer key : state.keysSorted) {\n+            treeMap.put(key, Integer.toString(key));\n+        }\n+        return treeMap;\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object putSortedValues_Scala(BenchmarkState state) {\n+        scala.collection.immutable.TreeMap<Integer, String> treeMap = new scala.collection.immutable.TreeMap<>(SCALA_ORDERING);\n+        for (Integer key : state.keysSorted) {\n+            treeMap = treeMap.$plus(new scala.Tuple2<>(key, Integer.toString(key)));\n+        }\n+        return treeMap;\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object getValue_Slang(BenchmarkState state) {\n+        return state.slangTreeMap.get(state.nextValidRandomKey());\n+    }\n+\n+    @Benchmark\n+    @Group(\"GetAndPut\")\n+    public Object getValue_Java(BenchmarkState state) {\n+        return state.javaTreeMap.get(state.nextValidRandomKey());","path":"javaslang-benchmark/src/test/java/javaslang/benchmark/collection/TreeMapBenchmark.java","position":202,"original_position":202,"commit_id":"7ef00dfaebea21839d6fe6eaffd576fcb8a68cab","original_commit_id":"6289bf2f6c18a5a683e2c92a959bd5f03ac7b80a","user":{"login":"eduardmanas","id":10696876,"avatar_url":"https://avatars.githubusercontent.com/u/10696876?v=3","gravatar_id":"","url":"https://api.github.com/users/eduardmanas","html_url":"https://github.com/eduardmanas","followers_url":"https://api.github.com/users/eduardmanas/followers","following_url":"https://api.github.com/users/eduardmanas/following{/other_user}","gists_url":"https://api.github.com/users/eduardmanas/gists{/gist_id}","starred_url":"https://api.github.com/users/eduardmanas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eduardmanas/subscriptions","organizations_url":"https://api.github.com/users/eduardmanas/orgs","repos_url":"https://api.github.com/users/eduardmanas/repos","events_url":"https://api.github.com/users/eduardmanas/events{/privacy}","received_events_url":"https://api.github.com/users/eduardmanas/received_events","type":"User","site_admin":false},"body":"They are not! :)\r\n\r\nHowever, I am relying in Random Theory here. If we execute thousands or million of tests per iteration as it is the case here, then the sample mean will tend towards the true mean.","created_at":"2016-05-07T10:58:37Z","updated_at":"2016-05-07T10:58:37Z","html_url":"https://github.com/javaslang/javaslang/pull/1317#discussion_r62415212","pull_request_url":"https://api.github.com/repos/javaslang/javaslang/pulls/1317","_links":{"self":{"href":"https://api.github.com/repos/javaslang/javaslang/pulls/comments/62415212"},"html":{"href":"https://github.com/javaslang/javaslang/pull/1317#discussion_r62415212"},"pull_request":{"href":"https://api.github.com/repos/javaslang/javaslang/pulls/1317"}}},"pull_request":{"url":"https://api.github.com/repos/javaslang/javaslang/pulls/1317","id":69072898,"html_url":"https://github.com/javaslang/javaslang/pull/1317","diff_url":"https://github.com/javaslang/javaslang/pull/1317.diff","patch_url":"https://github.com/javaslang/javaslang/pull/1317.patch","issue_url":"https://api.github.com/repos/javaslang/javaslang/issues/1317","number":1317,"state":"open","locked":false,"title":"Added support for navigable fields in SortedMap/TreeMap","user":{"login":"eduardmanas","id":10696876,"avatar_url":"https://avatars.githubusercontent.com/u/10696876?v=3","gravatar_id":"","url":"https://api.github.com/users/eduardmanas","html_url":"https://github.com/eduardmanas","followers_url":"https://api.github.com/users/eduardmanas/followers","following_url":"https://api.github.com/users/eduardmanas/following{/other_user}","gists_url":"https://api.github.com/users/eduardmanas/gists{/gist_id}","starred_url":"https://api.github.com/users/eduardmanas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eduardmanas/subscriptions","organizations_url":"https://api.github.com/users/eduardmanas/orgs","repos_url":"https://api.github.com/users/eduardmanas/repos","events_url":"https://api.github.com/users/eduardmanas/events{/privacy}","received_events_url":"https://api.github.com/users/eduardmanas/received_events","type":"User","site_admin":false},"body":"1) Added support for navigable fields in `SortedMap`/`TreeMap`- Added `descendingIterator()`/`descendingKeySet()` methods\r\n- Added `descendingMap()` method to create a map with reversed order\r\n- Added `subMap()`/`headMap()`/`tailMap()` methods to create a subMap view of this map\r\n- Added `floor`/`ceiling`/`higher`/`lower` methods to navigate the sorted map\r\n\r\n2) Refactored `RedBlackTree` to:\r\n- support ascending/descending sub-trees\r\n- support descending iterator\r\n- Changed hierarchy structure:\r\n```\r\n    RedBlackTree  <----- Node  <--- ValueNode\r\n\t               \\            \\-- Empty\r\n\t\t            \\\r\n\t                 \\-- AbstractSubTreeView  <----  AscendingSubTreeView\r\n\t\t\t\t\t                           \\---  DescendingSubTreeView\r\n\r\n```\r\n3) Added `TreeMapBenchmark`\r\n- Measure `TreeMap` and new navigable methods performance versus Java/Scala implementation\r\n- Created `BenchmarkPerformanceReporter` to show nice looking performance comparison reports.","created_at":"2016-05-05T21:23:15Z","updated_at":"2016-05-07T10:58:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"37cda2eca3011f3eb5f00098a3cc1541026d9480","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/javaslang/javaslang/pulls/1317/commits","review_comments_url":"https://api.github.com/repos/javaslang/javaslang/pulls/1317/comments","review_comment_url":"https://api.github.com/repos/javaslang/javaslang/pulls/comments{/number}","comments_url":"https://api.github.com/repos/javaslang/javaslang/issues/1317/comments","statuses_url":"https://api.github.com/repos/javaslang/javaslang/statuses/7ef00dfaebea21839d6fe6eaffd576fcb8a68cab","head":{"label":"eduardmanas:navigablemap","ref":"navigablemap","sha":"7ef00dfaebea21839d6fe6eaffd576fcb8a68cab","user":{"login":"eduardmanas","id":10696876,"avatar_url":"https://avatars.githubusercontent.com/u/10696876?v=3","gravatar_id":"","url":"https://api.github.com/users/eduardmanas","html_url":"https://github.com/eduardmanas","followers_url":"https://api.github.com/users/eduardmanas/followers","following_url":"https://api.github.com/users/eduardmanas/following{/other_user}","gists_url":"https://api.github.com/users/eduardmanas/gists{/gist_id}","starred_url":"https://api.github.com/users/eduardmanas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eduardmanas/subscriptions","organizations_url":"https://api.github.com/users/eduardmanas/orgs","repos_url":"https://api.github.com/users/eduardmanas/repos","events_url":"https://api.github.com/users/eduardmanas/events{/privacy}","received_events_url":"https://api.github.com/users/eduardmanas/received_events","type":"User","site_admin":false},"repo":{"id":56801744,"name":"javaslang","full_name":"eduardmanas/javaslang","owner":{"login":"eduardmanas","id":10696876,"avatar_url":"https://avatars.githubusercontent.com/u/10696876?v=3","gravatar_id":"","url":"https://api.github.com/users/eduardmanas","html_url":"https://github.com/eduardmanas","followers_url":"https://api.github.com/users/eduardmanas/followers","following_url":"https://api.github.com/users/eduardmanas/following{/other_user}","gists_url":"https://api.github.com/users/eduardmanas/gists{/gist_id}","starred_url":"https://api.github.com/users/eduardmanas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eduardmanas/subscriptions","organizations_url":"https://api.github.com/users/eduardmanas/orgs","repos_url":"https://api.github.com/users/eduardmanas/repos","events_url":"https://api.github.com/users/eduardmanas/events{/privacy}","received_events_url":"https://api.github.com/users/eduardmanas/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/eduardmanas/javaslang","description":"A functional library for Java 8+ that provides persistent data types and functional control structures.","fork":true,"url":"https://api.github.com/repos/eduardmanas/javaslang","forks_url":"https://api.github.com/repos/eduardmanas/javaslang/forks","keys_url":"https://api.github.com/repos/eduardmanas/javaslang/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eduardmanas/javaslang/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eduardmanas/javaslang/teams","hooks_url":"https://api.github.com/repos/eduardmanas/javaslang/hooks","issue_events_url":"https://api.github.com/repos/eduardmanas/javaslang/issues/events{/number}","events_url":"https://api.github.com/repos/eduardmanas/javaslang/events","assignees_url":"https://api.github.com/repos/eduardmanas/javaslang/assignees{/user}","branches_url":"https://api.github.com/repos/eduardmanas/javaslang/branches{/branch}","tags_url":"https://api.github.com/repos/eduardmanas/javaslang/tags","blobs_url":"https://api.github.com/repos/eduardmanas/javaslang/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eduardmanas/javaslang/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eduardmanas/javaslang/git/refs{/sha}","trees_url":"https://api.github.com/repos/eduardmanas/javaslang/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eduardmanas/javaslang/statuses/{sha}","languages_url":"https://api.github.com/repos/eduardmanas/javaslang/languages","stargazers_url":"https://api.github.com/repos/eduardmanas/javaslang/stargazers","contributors_url":"https://api.github.com/repos/eduardmanas/javaslang/contributors","subscribers_url":"https://api.github.com/repos/eduardmanas/javaslang/subscribers","subscription_url":"https://api.github.com/repos/eduardmanas/javaslang/subscription","commits_url":"https://api.github.com/repos/eduardmanas/javaslang/commits{/sha}","git_commits_url":"https://api.github.com/repos/eduardmanas/javaslang/git/commits{/sha}","comments_url":"https://api.github.com/repos/eduardmanas/javaslang/comments{/number}","issue_comment_url":"https://api.github.com/repos/eduardmanas/javaslang/issues/comments{/number}","contents_url":"https://api.github.com/repos/eduardmanas/javaslang/contents/{+path}","compare_url":"https://api.github.com/repos/eduardmanas/javaslang/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eduardmanas/javaslang/merges","archive_url":"https://api.github.com/repos/eduardmanas/javaslang/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eduardmanas/javaslang/downloads","issues_url":"https://api.github.com/repos/eduardmanas/javaslang/issues{/number}","pulls_url":"https://api.github.com/repos/eduardmanas/javaslang/pulls{/number}","milestones_url":"https://api.github.com/repos/eduardmanas/javaslang/milestones{/number}","notifications_url":"https://api.github.com/repos/eduardmanas/javaslang/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eduardmanas/javaslang/labels{/name}","releases_url":"https://api.github.com/repos/eduardmanas/javaslang/releases{/id}","deployments_url":"https://api.github.com/repos/eduardmanas/javaslang/deployments","created_at":"2016-04-21T19:53:47Z","updated_at":"2016-04-21T19:53:48Z","pushed_at":"2016-05-05T21:20:22Z","git_url":"git://github.com/eduardmanas/javaslang.git","ssh_url":"git@github.com:eduardmanas/javaslang.git","clone_url":"https://github.com/eduardmanas/javaslang.git","svn_url":"https://github.com/eduardmanas/javaslang","homepage":"http://javaslang.io","size":11002,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"javaslang:master","ref":"master","sha":"24ca0a8f1e0067e63ec6d4668e481f0f4cbc405a","user":{"login":"javaslang","id":5786132,"avatar_url":"https://avatars.githubusercontent.com/u/5786132?v=3","gravatar_id":"","url":"https://api.github.com/users/javaslang","html_url":"https://github.com/javaslang","followers_url":"https://api.github.com/users/javaslang/followers","following_url":"https://api.github.com/users/javaslang/following{/other_user}","gists_url":"https://api.github.com/users/javaslang/gists{/gist_id}","starred_url":"https://api.github.com/users/javaslang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javaslang/subscriptions","organizations_url":"https://api.github.com/users/javaslang/orgs","repos_url":"https://api.github.com/users/javaslang/repos","events_url":"https://api.github.com/users/javaslang/events{/privacy}","received_events_url":"https://api.github.com/users/javaslang/received_events","type":"Organization","site_admin":false},"repo":{"id":16378879,"name":"javaslang","full_name":"javaslang/javaslang","owner":{"login":"javaslang","id":5786132,"avatar_url":"https://avatars.githubusercontent.com/u/5786132?v=3","gravatar_id":"","url":"https://api.github.com/users/javaslang","html_url":"https://github.com/javaslang","followers_url":"https://api.github.com/users/javaslang/followers","following_url":"https://api.github.com/users/javaslang/following{/other_user}","gists_url":"https://api.github.com/users/javaslang/gists{/gist_id}","starred_url":"https://api.github.com/users/javaslang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javaslang/subscriptions","organizations_url":"https://api.github.com/users/javaslang/orgs","repos_url":"https://api.github.com/users/javaslang/repos","events_url":"https://api.github.com/users/javaslang/events{/privacy}","received_events_url":"https://api.github.com/users/javaslang/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/javaslang/javaslang","description":"A functional library for Java 8+ that provides persistent data types and functional control structures.","fork":false,"url":"https://api.github.com/repos/javaslang/javaslang","forks_url":"https://api.github.com/repos/javaslang/javaslang/forks","keys_url":"https://api.github.com/repos/javaslang/javaslang/keys{/key_id}","collaborators_url":"https://api.github.com/repos/javaslang/javaslang/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/javaslang/javaslang/teams","hooks_url":"https://api.github.com/repos/javaslang/javaslang/hooks","issue_events_url":"https://api.github.com/repos/javaslang/javaslang/issues/events{/number}","events_url":"https://api.github.com/repos/javaslang/javaslang/events","assignees_url":"https://api.github.com/repos/javaslang/javaslang/assignees{/user}","branches_url":"https://api.github.com/repos/javaslang/javaslang/branches{/branch}","tags_url":"https://api.github.com/repos/javaslang/javaslang/tags","blobs_url":"https://api.github.com/repos/javaslang/javaslang/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/javaslang/javaslang/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/javaslang/javaslang/git/refs{/sha}","trees_url":"https://api.github.com/repos/javaslang/javaslang/git/trees{/sha}","statuses_url":"https://api.github.com/repos/javaslang/javaslang/statuses/{sha}","languages_url":"https://api.github.com/repos/javaslang/javaslang/languages","stargazers_url":"https://api.github.com/repos/javaslang/javaslang/stargazers","contributors_url":"https://api.github.com/repos/javaslang/javaslang/contributors","subscribers_url":"https://api.github.com/repos/javaslang/javaslang/subscribers","subscription_url":"https://api.github.com/repos/javaslang/javaslang/subscription","commits_url":"https://api.github.com/repos/javaslang/javaslang/commits{/sha}","git_commits_url":"https://api.github.com/repos/javaslang/javaslang/git/commits{/sha}","comments_url":"https://api.github.com/repos/javaslang/javaslang/comments{/number}","issue_comment_url":"https://api.github.com/repos/javaslang/javaslang/issues/comments{/number}","contents_url":"https://api.github.com/repos/javaslang/javaslang/contents/{+path}","compare_url":"https://api.github.com/repos/javaslang/javaslang/compare/{base}...{head}","merges_url":"https://api.github.com/repos/javaslang/javaslang/merges","archive_url":"https://api.github.com/repos/javaslang/javaslang/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/javaslang/javaslang/downloads","issues_url":"https://api.github.com/repos/javaslang/javaslang/issues{/number}","pulls_url":"https://api.github.com/repos/javaslang/javaslang/pulls{/number}","milestones_url":"https://api.github.com/repos/javaslang/javaslang/milestones{/number}","notifications_url":"https://api.github.com/repos/javaslang/javaslang/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/javaslang/javaslang/labels{/name}","releases_url":"https://api.github.com/repos/javaslang/javaslang/releases{/id}","deployments_url":"https://api.github.com/repos/javaslang/javaslang/deployments","created_at":"2014-01-30T14:07:25Z","updated_at":"2016-05-06T15:32:46Z","pushed_at":"2016-05-07T00:02:50Z","git_url":"git://github.com/javaslang/javaslang.git","ssh_url":"git@github.com:javaslang/javaslang.git","clone_url":"https://github.com/javaslang/javaslang.git","svn_url":"https://github.com/javaslang/javaslang","homepage":"http://javaslang.io","size":11170,"stargazers_count":863,"watchers_count":863,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":101,"mirror_url":null,"open_issues_count":77,"forks":101,"open_issues":77,"watchers":863,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/javaslang/javaslang/pulls/1317"},"html":{"href":"https://github.com/javaslang/javaslang/pull/1317"},"issue":{"href":"https://api.github.com/repos/javaslang/javaslang/issues/1317"},"comments":{"href":"https://api.github.com/repos/javaslang/javaslang/issues/1317/comments"},"review_comments":{"href":"https://api.github.com/repos/javaslang/javaslang/pulls/1317/comments"},"review_comment":{"href":"https://api.github.com/repos/javaslang/javaslang/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/javaslang/javaslang/pulls/1317/commits"},"statuses":{"href":"https://api.github.com/repos/javaslang/javaslang/statuses/7ef00dfaebea21839d6fe6eaffd576fcb8a68cab"}}}}