@@ -735,11 +735,11 @@ defmodule EnumTest do
735735
736736 assert Enum . split_with ( % { } , fn x -> rem ( x , 2 ) == 0 end ) == { [ ] , [ ] }
737737
738- assert Enum . split_with ( % { a: 1 , b: 2 , c: 3 } , fn { _k , v } -> rem ( v , 2 ) == 0 end ) ==
739- { [ b: 2 ] , [ a: 1 , c: 3 ] }
738+ assert Enum . split_with ( % { a: 1 , b: 2 } , fn { _k , v } -> rem ( v , 2 ) == 0 end ) ==
739+ { [ b: 2 ] , [ a: 1 ] }
740740
741741 assert Enum . split_with ( % { b: 2 , d: 4 , f: 6 } , fn { _k , v } -> rem ( v , 2 ) == 0 end ) ==
742- { [ b: 2 , d: 4 , f: 6 ] , [ ] }
742+ { Map . to_list ( % { b: 2 , d: 4 , f: 6 } ) , [ ] }
743743 end
744744
745745 test "random/1" do
@@ -1503,23 +1503,22 @@ defmodule EnumTest do
15031503 assert result == [ 2 , 4 , 6 , 8 , 10 ]
15041504
15051505 # Maps
1506- result = Enum . zip_with ( % { a: 7 , c: 9 } , 3 .. 4 , fn { key , value } , b -> { key , value + b } end )
1507- assert result == [ a: 10 , c: 13 ]
1506+ result = Enum . zip_with ( % { a: 7 } , 3 .. 4 , fn { key , value } , b -> { key , value + b } end )
1507+ assert result == [ a: 10 ]
15081508
1509- colour_1 = % { r: 176 , g: 175 , b: 255 }
1510- colour_2 = % { r: 12 , g: 176 , b: 176 }
1511-
1512- result = Enum . zip_with ( colour_1 , colour_2 , fn { k , left } , { k , right } -> { k , left + right } end )
1513- assert result == [ b: 431 , g: 351 , r: 188 ]
1509+ result = Enum . zip_with ( 3 .. 4 , % { a: 7 } , fn a , { key , value } -> { key , value + a } end )
1510+ assert result == [ a: 10 ]
15141511 end
15151512
15161513 test "zip_with/2" do
15171514 zip_fun = fn items -> List . to_tuple ( items ) end
15181515 result = Enum . zip_with ( [ [ :a , :b ] , [ 1 , 2 ] , [ "foo" , "bar" ] ] , zip_fun )
15191516 assert result == [ { :a , 1 , "foo" } , { :b , 2 , "bar" } ]
15201517
1521- lots = Enum . zip_with ( [ [ :a , :b ] , [ 1 , 2 ] , [ "foo" , "bar" ] , % { a: :b , c: :d } ] , zip_fun )
1522- assert lots == [ { :a , 1 , "foo" , { :a , :b } } , { :b , 2 , "bar" , { :c , :d } } ]
1518+ map = % { a: :b , c: :d }
1519+ [ x1 , x2 ] = Map . to_list ( map )
1520+ lots = Enum . zip_with ( [ [ :a , :b ] , [ 1 , 2 ] , [ "foo" , "bar" ] , map ] , zip_fun )
1521+ assert lots == [ { :a , 1 , "foo" , x1 } , { :b , 2 , "bar" , x2 } ]
15231522
15241523 assert Enum . zip_with ( [ [ :a , :b ] , [ 1 , 2 , 3 , 4 ] , [ "foo" , "bar" , "baz" , "qux" ] ] , zip_fun ) ==
15251524 [ { :a , 1 , "foo" } , { :b , 2 , "bar" } ]
@@ -1556,21 +1555,11 @@ defmodule EnumTest do
15561555 assert result == [ 2 , 4 , 6 , 8 , 10 ]
15571556
15581557 # Maps
1559- result = Enum . zip_with ( [ % { a: 7 , c: 9 } , 3 .. 4 ] , fn [ { key , value } , b ] -> { key , value + b } end )
1560- assert result == [ a: 10 , c: 13 ]
1561-
1562- colour_1 = % { r: 176 , g: 175 , b: 255 }
1563- colour_2 = % { r: 12 , g: 176 , b: 176 }
1564-
1565- result =
1566- Enum . zip_with ( [ colour_1 , colour_2 ] , fn [ { k , left } , { k , right } ] -> { k , left + right } end )
1567-
1568- assert result == [ b: 431 , g: 351 , r: 188 ]
1558+ result = Enum . zip_with ( [ % { a: 7 } , 3 .. 4 ] , fn [ { key , value } , b ] -> { key , value + b } end )
1559+ assert result == [ a: 10 ]
15691560
1570- assert Enum . zip_with ( [ % { a: :b , c: :d } , % { e: :f , g: :h } ] , & & 1 ) == [
1571- [ a: :b , e: :f ] ,
1572- [ c: :d , g: :h ]
1573- ]
1561+ result = Enum . zip_with ( [ % { a: 7 } , 3 .. 4 ] , fn [ { key , value } , b ] -> { key , value + b } end )
1562+ assert result == [ a: 10 ]
15741563 end
15751564end
15761565
@@ -2396,16 +2385,17 @@ defmodule EnumTest.Map do
23962385
23972386 test "random/1" do
23982387 map = % { a: 1 , b: 2 , c: 3 }
2388+ [ x1 , x2 , x3 ] = Map . to_list ( map )
23992389 seed1 = { 1406 , 407_414 , 139_258 }
24002390 seed2 = { 1406 , 421_106 , 567_597 }
24012391 :rand . seed ( :exsss , seed1 )
2402- assert Enum . random ( map ) == { :c , 3 }
2403- assert Enum . random ( map ) == { :a , 1 }
2404- assert Enum . random ( map ) == { :b , 2 }
2392+ assert Enum . random ( map ) == x3
2393+ assert Enum . random ( map ) == x1
2394+ assert Enum . random ( map ) == x2
24052395
24062396 :rand . seed ( :exsss , seed2 )
2407- assert Enum . random ( map ) == { :c , 3 }
2408- assert Enum . random ( map ) == { :b , 2 }
2397+ assert Enum . random ( map ) == x3
2398+ assert Enum . random ( map ) == x2
24092399 end
24102400
24112401 test "take_random/2" do
@@ -2418,35 +2408,37 @@ defmodule EnumTest.Map do
24182408 # set a fixed seed so the test can be deterministic
24192409 # please note the order of following assertions is important
24202410 map = % { a: 1 , b: 2 , c: 3 }
2411+ [ x1 , x2 , x3 ] = Map . to_list ( map )
24212412 seed1 = { 1406 , 407_414 , 139_258 }
24222413 seed2 = { 1406 , 421_106 , 567_597 }
24232414 :rand . seed ( :exsss , seed1 )
2424- assert Enum . take_random ( map , 1 ) == [ c: 3 ]
2415+ assert Enum . take_random ( map , 1 ) == [ x3 ]
24252416 :rand . seed ( :exsss , seed1 )
2426- assert Enum . take_random ( map , 2 ) == [ c: 3 , a: 1 ]
2417+ assert Enum . take_random ( map , 2 ) == [ x3 , x1 ]
24272418 :rand . seed ( :exsss , seed1 )
2428- assert Enum . take_random ( map , 3 ) == [ c: 3 , a: 1 , b: 2 ]
2419+ assert Enum . take_random ( map , 3 ) == [ x3 , x1 , x2 ]
24292420 :rand . seed ( :exsss , seed1 )
2430- assert Enum . take_random ( map , 4 ) == [ c: 3 , a: 1 , b: 2 ]
2421+ assert Enum . take_random ( map , 4 ) == [ x3 , x1 , x2 ]
24312422 :rand . seed ( :exsss , seed2 )
2432- assert Enum . take_random ( map , 1 ) == [ a: 1 ]
2423+ assert Enum . take_random ( map , 1 ) == [ x1 ]
24332424 :rand . seed ( :exsss , seed2 )
2434- assert Enum . take_random ( map , 2 ) == [ a: 1 , c: 3 ]
2425+ assert Enum . take_random ( map , 2 ) == [ x1 , x3 ]
24352426 :rand . seed ( :exsss , seed2 )
2436- assert Enum . take_random ( map , 3 ) == [ a: 1 , c: 3 , b: 2 ]
2427+ assert Enum . take_random ( map , 3 ) == [ x1 , x3 , x2 ]
24372428 :rand . seed ( :exsss , seed2 )
2438- assert Enum . take_random ( map , 4 ) == [ a: 1 , c: 3 , b: 2 ]
2429+ assert Enum . take_random ( map , 4 ) == [ x1 , x3 , x2 ]
24392430 end
24402431
24412432 test "reverse/1" do
24422433 assert Enum . reverse ( % { } ) == [ ]
24432434 assert Enum . reverse ( MapSet . new ( ) ) == [ ]
2444- assert Enum . reverse ( % { a: 1 , b: 2 , c: 3 } ) == [ c: 3 , b: 2 , a: 1 ]
2435+
2436+ map = % { a: 1 , b: 2 , c: 3 }
2437+ assert Enum . reverse ( map ) == Map . to_list ( map ) |> Enum . reverse ( )
24452438 end
24462439
24472440 test "reverse/2" do
2448- assert Enum . reverse ( [ a: 1 , b: 2 , c: 3 , a: 1 ] , % { x: 1 , y: 2 , z: 3 } ) ==
2449- [ a: 1 , c: 3 , b: 2 , a: 1 , x: 1 , y: 2 , z: 3 ]
2441+ assert Enum . reverse ( [ a: 1 , b: 2 , c: 3 , a: 1 ] , % { x: 1 } ) == [ a: 1 , c: 3 , b: 2 , a: 1 , x: 1 ]
24502442
24512443 assert Enum . reverse ( [ ] , % { a: 1 } ) == [ a: 1 ]
24522444 assert Enum . reverse ( [ ] , % { } ) == [ ]
@@ -2456,44 +2448,49 @@ defmodule EnumTest.Map do
24562448
24572449 test "fetch/2" do
24582450 map = % { a: 1 , b: 2 , c: 3 , d: 4 , e: 5 }
2459- assert Enum . fetch ( map , 0 ) == { :ok , { :a , 1 } }
2460- assert Enum . fetch ( map , - 2 ) == { :ok , { :d , 4 } }
2451+ [ x1 , _x2 , _x3 , x4 , x5 ] = Map . to_list ( map )
2452+ assert Enum . fetch ( map , 0 ) == { :ok , x1 }
2453+ assert Enum . fetch ( map , - 2 ) == { :ok , x4 }
24612454 assert Enum . fetch ( map , - 6 ) == :error
24622455 assert Enum . fetch ( map , 5 ) == :error
24632456 assert Enum . fetch ( % { } , 0 ) == :error
24642457
24652458 assert Stream . take ( map , 3 ) |> Enum . fetch ( 3 ) == :error
2466- assert Stream . take ( map , 5 ) |> Enum . fetch ( 4 ) == { :ok , { :e , 5 } }
2459+ assert Stream . take ( map , 5 ) |> Enum . fetch ( 4 ) == { :ok , x5 }
24672460 end
24682461
24692462 test "map_intersperse/3" do
24702463 assert Enum . map_intersperse ( % { } , :a , & & 1 ) == [ ]
24712464 assert Enum . map_intersperse ( % { foo: :bar } , :a , & & 1 ) == [ { :foo , :bar } ]
24722465
2473- assert Enum . map_intersperse ( % { foo: :bar , baz: :bat } , :a , & & 1 ) ==
2474- [ { :baz , :bat } , :a , { :foo , :bar } ]
2466+ map = % { foo: :bar , baz: :bat }
2467+ [ x1 , x2 ] = Map . to_list ( map )
2468+
2469+ assert Enum . map_intersperse ( map , :a , & & 1 ) == [ x1 , :a , x2 ]
24752470 end
24762471
24772472 test "slice/2" do
24782473 map = % { a: 1 , b: 2 , c: 3 , d: 4 , e: 5 }
2479- assert Enum . slice ( map , 0 .. 0 ) == [ a: 1 ]
2480- assert Enum . slice ( map , 0 .. 1 ) == [ a: 1 , b: 2 ]
2481- assert Enum . slice ( map , 0 .. 2 ) == [ a: 1 , b: 2 , c: 3 ]
2474+ [ x1 , x2 , x3 | _ ] = Map . to_list ( map )
2475+ assert Enum . slice ( map , 0 .. 0 ) == [ x1 ]
2476+ assert Enum . slice ( map , 0 .. 1 ) == [ x1 , x2 ]
2477+ assert Enum . slice ( map , 0 .. 2 ) == [ x1 , x2 , x3 ]
24822478 end
24832479
24842480 test "slice/3" do
24852481 map = % { a: 1 , b: 2 , c: 3 , d: 4 , e: 5 }
2486- assert Enum . slice ( map , 1 , 2 ) == [ b: 2 , c: 3 ]
2482+ [ x1 , x2 , x3 , x4 , x5 ] = Map . to_list ( map )
2483+ assert Enum . slice ( map , 1 , 2 ) == [ x2 , x3 ]
24872484 assert Enum . slice ( map , 1 , 0 ) == [ ]
2488- assert Enum . slice ( map , 2 , 5 ) == [ c: 3 , d: 4 , e: 5 ]
2489- assert Enum . slice ( map , 2 , 6 ) == [ c: 3 , d: 4 , e: 5 ]
2485+ assert Enum . slice ( map , 2 , 5 ) == [ x3 , x4 , x5 ]
2486+ assert Enum . slice ( map , 2 , 6 ) == [ x3 , x4 , x5 ]
24902487 assert Enum . slice ( map , 5 , 5 ) == [ ]
24912488 assert Enum . slice ( map , 6 , 5 ) == [ ]
24922489 assert Enum . slice ( map , 6 , 0 ) == [ ]
24932490 assert Enum . slice ( map , - 6 , 0 ) == [ ]
2494- assert Enum . slice ( map , - 6 , 5 ) == [ a: 1 , b: 2 , c: 3 , d: 4 , e: 5 ]
2495- assert Enum . slice ( map , - 2 , 5 ) == [ d: 4 , e: 5 ]
2496- assert Enum . slice ( map , - 3 , 1 ) == [ c: 3 ]
2491+ assert Enum . slice ( map , - 6 , 5 ) == [ x1 , x2 , x3 , x4 , x5 ]
2492+ assert Enum . slice ( map , - 2 , 5 ) == [ x4 , x5 ]
2493+ assert Enum . slice ( map , - 3 , 1 ) == [ x3 ]
24972494
24982495 assert_raise FunctionClauseError , fn ->
24992496 Enum . slice ( map , 0 , - 1 )
@@ -2508,19 +2505,19 @@ defmodule EnumTest.Map do
25082505 end
25092506
25102507 assert Enum . slice ( map , 0 , 0 ) == [ ]
2511- assert Enum . slice ( map , 0 , 1 ) == [ a: 1 ]
2512- assert Enum . slice ( map , 0 , 2 ) == [ a: 1 , b: 2 ]
2513- assert Enum . slice ( map , 1 , 2 ) == [ b: 2 , c: 3 ]
2508+ assert Enum . slice ( map , 0 , 1 ) == [ x1 ]
2509+ assert Enum . slice ( map , 0 , 2 ) == [ x1 , x2 ]
2510+ assert Enum . slice ( map , 1 , 2 ) == [ x2 , x3 ]
25142511 assert Enum . slice ( map , 1 , 0 ) == [ ]
2515- assert Enum . slice ( map , 2 , 5 ) == [ c: 3 , d: 4 , e: 5 ]
2516- assert Enum . slice ( map , 2 , 6 ) == [ c: 3 , d: 4 , e: 5 ]
2512+ assert Enum . slice ( map , 2 , 5 ) == [ x3 , x4 , x5 ]
2513+ assert Enum . slice ( map , 2 , 6 ) == [ x3 , x4 , x5 ]
25172514 assert Enum . slice ( map , 5 , 5 ) == [ ]
25182515 assert Enum . slice ( map , 6 , 5 ) == [ ]
25192516 assert Enum . slice ( map , 6 , 0 ) == [ ]
25202517 assert Enum . slice ( map , - 6 , 0 ) == [ ]
2521- assert Enum . slice ( map , - 6 , 5 ) == [ a: 1 , b: 2 , c: 3 , d: 4 , e: 5 ]
2522- assert Enum . slice ( map , - 2 , 5 ) == [ d: 4 , e: 5 ]
2523- assert Enum . slice ( map , - 3 , 1 ) == [ c: 3 ]
2518+ assert Enum . slice ( map , - 6 , 5 ) == [ x1 , x2 , x3 , x4 , x5 ]
2519+ assert Enum . slice ( map , - 2 , 5 ) == [ x4 , x5 ]
2520+ assert Enum . slice ( map , - 3 , 1 ) == [ x3 ]
25242521
25252522 assert_raise FunctionClauseError , fn ->
25262523 Enum . slice ( map , 0 , - 1 )
0 commit comments