 
      (fact
       "values returns the values (V) of a hashmap of (K, V) pairs from a JavaPairRDD"
-      (-> (f/parallelize c [["key1" 11]
-                            ["key1" 11]
-                            ["key2" 12]
-                            ["key2" 12]
-                            ["key3" 13]])
-          (f/map-to-pair identity)
+      (-> (f/parallelize-pairs c [(ft/tuple "key1" 11)
+                                  (ft/tuple "key1" 11)
+                                  (ft/tuple "key2" 12)
+                                  (ft/tuple "key2" 12)
+                                  (ft/tuple "key3" 13)])
           (f/values)
           (f/collect)
           vec) => [11 11 12 12 13])

      "flat-map-to-pair"
      (-> (f/parallelize c [["Four score and seven"]
                            ["years ago"]])
          (f/flat-map-to-pair (f/fn [x] (map (fn [y] [y 1])
                                             (clojure.string/split (first x) #" "))))
          (f/map f/untuple)
          f/collect

      "map-to-pair returns an RDD of (K, V) pairs formed by passing each element of the source
        RDD through a pair function"
      (-> (f/parallelize c ["a" "b" "c" "d"])
          (f/map-to-pair (f/fn [x] (ft/tuple x 1)))
          (f/map f/untuple)
          f/collect
          vec) => [["a" 1] ["b" 1] ["c" 1] ["d" 1]])

     (fact
      "reduce-by-key returns an RDD of (K, V) when called on an RDD of (K, V) pairs"
      (-> (f/parallelize-pairs c [(ft/tuple "key1" 1)
                                  (ft/tuple "key1" 2)
                                  (ft/tuple "key2" 3)
                                  (ft/tuple "key2" 4)
                                  (ft/tuple "key3" 5)])
          (f/reduce-by-key (f/fn [x y] (+ x y)))
          (f/map f/untuple)
          f/collect
