@@ -14,32 +14,50 @@ defmodule Matplotex.Figure.Areal.ScatterTest do
1414 assert % Figure { axes: % { data: { x , _y } , element: elements } } = Scatter . materialize ( figure )
1515 assert Enum . count ( elements , fn elem -> elem . type == "plot.marker" end ) == length ( x )
1616 end
17+
1718 test "generates elements with various saizes if it passed a size attrbute" do
18- x = [ 1 , 2 , 3 , 4 , 5 ]
19+ x = [ 1 , 2 , 3 , 4 , 5 ]
1920 y = [ 10 , 20 , 30 , 40 , 50 ]
2021 sizes = [ 1 , 2 , 3 , 4 , 5 ]
21- assert % Figure { axes: % { element: elements } } = x |> Matplotex . scatter ( y , sizes: sizes ) |> Figure . materialize ( )
22- [ h | tail ] = elements |> Enum . filter ( fn x -> x . type == "plot.marker" end ) |> Enum . map ( fn x ->
23- x . r
24- end )
25- refute Enum . all? ( tail , fn x -> x == h end )
2622
23+ assert % Figure { axes: % { element: elements } } =
24+ x |> Matplotex . scatter ( y , sizes: sizes ) |> Figure . materialize ( )
25+
26+ [ h | tail ] =
27+ elements
28+ |> Enum . filter ( fn x -> x . type == "plot.marker" end )
29+ |> Enum . map ( fn x ->
30+ x . r
31+ end )
32+
33+ refute Enum . all? ( tail , fn x -> x == h end )
2734 end
2835
2936 test "generates elements with various saizes and colors if it passed a size and color attrbute" do
30- x = [ 1 , 2 , 3 , 4 , 5 ]
37+ x = [ 1 , 2 , 3 , 4 , 5 ]
3138 y = [ 10 , 20 , 30 , 40 , 50 ]
3239 sizes = [ 1 , 2 , 3 , 4 , 5 ]
33- assert % Figure { axes: % { element: elements } } = x |> Matplotex . scatter ( y , sizes: sizes , colors: sizes ) |> Figure . materialize ( )
34- [ h | tail ] = elements |> Enum . filter ( fn x -> x . type == "plot.marker" end ) |> Enum . map ( fn x ->
35- x . r
36- end )
37-
38- refute Enum . all? ( tail , fn x -> x == h end )
39- [ h | tail ] = elements |> Enum . filter ( fn x -> x . type == "plot.marker" end ) |> Enum . map ( fn x ->
40- x . fill
41- end )
42- refute Enum . all? ( tail , fn x -> x == h end )
40+
41+ assert % Figure { axes: % { element: elements } } =
42+ x |> Matplotex . scatter ( y , sizes: sizes , colors: sizes ) |> Figure . materialize ( )
43+
44+ [ h | tail ] =
45+ elements
46+ |> Enum . filter ( fn x -> x . type == "plot.marker" end )
47+ |> Enum . map ( fn x ->
48+ x . r
49+ end )
50+
51+ refute Enum . all? ( tail , fn x -> x == h end )
52+
53+ [ h | tail ] =
54+ elements
55+ |> Enum . filter ( fn x -> x . type == "plot.marker" end )
56+ |> Enum . map ( fn x ->
57+ x . fill
58+ end )
59+
60+ refute Enum . all? ( tail , fn x -> x == h end )
4361 end
4462 end
4563
@@ -53,56 +71,99 @@ defmodule Matplotex.Figure.Areal.ScatterTest do
5371 assert length ( ticks ) == 6
5472 end
5573 end
74+
5675 describe "do_transform" do
5776 test "zips transformed values with sizes if the dataset contains sizes in eaqual size" do
58- x = [ 1 , 2 , 3 , 4 , 5 ]
77+ x = [ 1 , 2 , 3 , 4 , 5 ]
5978 y = [ 10 , 20 , 30 , 40 , 50 ]
6079 sizes = [ 1 , 2 , 3 , 4 , 5 ]
6180 width = 2
6281 height = 2
63- assert % Figure { axes: % { dataset: [ dataset ] } } = x |> Matplotex . scatter ( y , figsize: { width , height } , sizes: sizes )
64- assert % Dataset { transformed: transformed } = Areal . do_transform ( dataset , Enum . min_max ( x ) , Enum . min_max ( y ) , width , height , { 0 , 0 } )
65- assert Enum . all? ( transformed , & match? ( { { _ , _ } , _ } , & 1 ) )
6682
83+ assert % Figure { axes: % { dataset: [ dataset ] } } =
84+ x |> Matplotex . scatter ( y , figsize: { width , height } , sizes: sizes )
85+
86+ assert % Dataset { transformed: transformed } =
87+ Areal . do_transform (
88+ dataset ,
89+ Enum . min_max ( x ) ,
90+ Enum . min_max ( y ) ,
91+ width ,
92+ height ,
93+ { 0 , 0 }
94+ )
95+
96+ assert Enum . all? ( transformed , & match? ( { { _ , _ } , _ } , & 1 ) )
6797 end
98+
6899 test "zips transformed values with marker size if colors exist without sizes" do
69- x = [ 1 , 2 , 3 , 4 , 5 ]
100+ x = [ 1 , 2 , 3 , 4 , 5 ]
70101 y = [ 10 , 20 , 30 , 40 , 50 ]
71102 colors = [ 1 , 2 , 3 , 4 , 5 ]
72103 width = 2
73104 height = 2
74- assert % Figure { axes: % { dataset: [ % Dataset { marker_size: _marker_size } = dataset ] } } = x |> Matplotex . scatter ( y , figsize: { width , height } , colors: colors )
75- assert % Dataset { transformed: transformed } = Areal . do_transform ( dataset , Enum . min_max ( x ) , Enum . min_max ( y ) , width , height , { 0 , 0 } )
76- assert Enum . all? ( transformed , & match? ( { { { _ , _ } , _marker_size } , _ } , & 1 ) )
105+
106+ assert % Figure { axes: % { dataset: [ % Dataset { marker_size: _marker_size } = dataset ] } } =
107+ x |> Matplotex . scatter ( y , figsize: { width , height } , colors: colors )
108+
109+ assert % Dataset { transformed: transformed } =
110+ Areal . do_transform (
111+ dataset ,
112+ Enum . min_max ( x ) ,
113+ Enum . min_max ( y ) ,
114+ width ,
115+ height ,
116+ { 0 , 0 }
117+ )
118+
119+ assert Enum . all? ( transformed , & match? ( { { { _ , _ } , _marker_size } , _ } , & 1 ) )
77120 end
121+
78122 test "zips transformed values with colors if the dataset contanis colors" do
79- x = [ 1 , 2 , 3 , 4 , 5 ]
123+ x = [ 1 , 2 , 3 , 4 , 5 ]
80124 y = [ 10 , 20 , 30 , 40 , 50 ]
81125 colors = [ 1 , 2 , 3 , 4 , 5 ]
82126 width = 2
83127 height = 2
84- assert % Figure { axes: % { dataset: [ dataset ] } } = x |> Matplotex . scatter ( y , figsize: { width , height } , colors: colors )
85- assert % Dataset { transformed: transformed } = Areal . do_transform ( dataset , Enum . min_max ( x ) , Enum . min_max ( y ) , width , height , { 0 , 0 } )
86128
87- assert Enum . all? ( transformed , & match? ( { { { _ , _ } , _ } , _ } , & 1 ) )
129+ assert % Figure { axes: % { dataset: [ dataset ] } } =
130+ x |> Matplotex . scatter ( y , figsize: { width , height } , colors: colors )
88131
132+ assert % Dataset { transformed: transformed } =
133+ Areal . do_transform (
134+ dataset ,
135+ Enum . min_max ( x ) ,
136+ Enum . min_max ( y ) ,
137+ width ,
138+ height ,
139+ { 0 , 0 }
140+ )
141+
142+ assert Enum . all? ( transformed , & match? ( { { { _ , _ } , _ } , _ } , & 1 ) )
89143 end
90144
91145 test "zips both size and colors if the dataset contains size and color" do
92- x = [ 1 , 2 , 3 , 4 , 5 ]
146+ x = [ 1 , 2 , 3 , 4 , 5 ]
93147 y = [ 10 , 20 , 30 , 40 , 50 ]
94148 sizes = [ 1 , 2 , 3 , 4 , 5 ]
95149 colors = [ 1 , 2 , 3 , 4 , 5 ]
96150 width = 2
97151 height = 2
98- assert % Figure { axes: % { dataset: [ dataset ] } } = x |> Matplotex . scatter ( y , figsize: { width , height } , sizes: sizes , colors: colors )
99- assert % Dataset { transformed: transformed } = Areal . do_transform ( dataset , Enum . min_max ( x ) , Enum . min_max ( y ) , width , height , { 0 , 0 } )
100152
101- assert Enum . all? ( transformed , & match? ( { { { _ , _ } , _ } , _ } , & 1 ) )
153+ assert % Figure { axes: % { dataset: [ dataset ] } } =
154+ x |> Matplotex . scatter ( y , figsize: { width , height } , sizes: sizes , colors: colors )
102155
103- end
156+ assert % Dataset { transformed: transformed } =
157+ Areal . do_transform (
158+ dataset ,
159+ Enum . min_max ( x ) ,
160+ Enum . min_max ( y ) ,
161+ width ,
162+ height ,
163+ { 0 , 0 }
164+ )
104165
166+ assert Enum . all? ( transformed , & match? ( { { { _ , _ } , _ } , _ } , & 1 ) )
167+ end
105168 end
106-
107-
108169end
0 commit comments