Skip to content

Commit cbdf4fd

Browse files
Curve Fit - Add spikey data sets for testing.
1 parent 6b0719f commit cbdf4fd

9 files changed

+899
-36
lines changed

lib/rust/mmscenegraph/tests/data/example_curves.py

Lines changed: 91 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,24 @@ def _write_data(name, data, output_directory):
2727
return
2828

2929

30+
def _generate_variance_data(raw_data, variance):
31+
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
32+
assert len(raw_data) == len(data)
33+
return data
34+
35+
36+
def _generate_spike_data(raw_data, variance, spike_probability):
37+
data = []
38+
temp_data = [(f, random.uniform(v - variance, v + variance)) for f, v in raw_data]
39+
for (raw_f, raw_v), (spike_f, spike_v) in zip(raw_data, temp_data):
40+
if random.random() < spike_probability:
41+
data.append((spike_f, spike_v))
42+
else:
43+
data.append((raw_f, raw_v))
44+
assert len(raw_data) == len(data)
45+
return data
46+
47+
3048
output_directory = (
3149
'${USERPROFILE}/dev/mayaMatchMoveSolver/lib/rust/mmscenegraph/tests/data'
3250
)
@@ -39,46 +57,66 @@ def _write_data(name, data, output_directory):
3957
variance_high = 1.0
4058
variance_very_high = 10.0
4159

60+
spike_probability_low = 0.01
61+
spike_probability_medium = 0.1
62+
spike_probability_high = 0.25
4263

4364
# Identity (all zero values)
4465
raw_data = _sample_attr(start_frame, end_frame, 'identity.translateY')
4566
_write_data('identity_raw', raw_data, output_directory)
4667

4768
variance = variance_low
48-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
69+
data = _generate_variance_data(raw_data, variance)
4970
_write_data('identity_variance1', data, output_directory)
5071

5172
variance = variance_medium
52-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
73+
data = _generate_variance_data(raw_data, variance)
5374
_write_data('identity_variance2', data, output_directory)
5475

5576
variance = variance_high
56-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
77+
data = _generate_variance_data(raw_data, variance)
5778
_write_data('identity_variance3', data, output_directory)
5879

5980
variance = variance_very_high
60-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
81+
data = _generate_variance_data(raw_data, variance)
6182
_write_data('identity_variance4', data, output_directory)
6283

84+
variance = variance_low
85+
spike_probability = spike_probability_medium
86+
data = _generate_spike_data(raw_data, variance, spike_probability)
87+
_write_data('identity_spike1', data, output_directory)
88+
89+
variance = variance_medium
90+
data = _generate_spike_data(raw_data, variance, spike_probability)
91+
_write_data('identity_spike2', data, output_directory)
92+
93+
variance = variance_high
94+
data = _generate_spike_data(raw_data, variance, spike_probability)
95+
_write_data('identity_spike3', data, output_directory)
96+
97+
variance = variance_very_high
98+
data = _generate_spike_data(raw_data, variance, spike_probability)
99+
_write_data('identity_spike4', data, output_directory)
100+
63101

64102
# Degrees 45 - Up
65103
raw_data = _sample_attr(start_frame, end_frame, 'degree_45_up.translateY')
66104
_write_data('degree_45_up_raw', raw_data, output_directory)
67105

68106
variance = variance_low
69-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
107+
data = _generate_variance_data(raw_data, variance)
70108
_write_data('degree_45_up_variance1', data, output_directory)
71109

72110
variance = variance_medium
73-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
111+
data = _generate_variance_data(raw_data, variance)
74112
_write_data('degree_45_up_variance2', data, output_directory)
75113

76114
variance = variance_high
77-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
115+
data = _generate_variance_data(raw_data, variance)
78116
_write_data('degree_45_up_variance3', data, output_directory)
79117

80118
variance = variance_very_high
81-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
119+
data = _generate_variance_data(raw_data, variance)
82120
_write_data('degree_45_up_variance4', data, output_directory)
83121

84122

@@ -87,19 +125,19 @@ def _write_data(name, data, output_directory):
87125
_write_data('degree_45_down_raw', raw_data, output_directory)
88126

89127
variance = variance_low
90-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
128+
data = _generate_variance_data(raw_data, variance)
91129
_write_data('degree_45_down_variance1', data, output_directory)
92130

93131
variance = variance_medium
94-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
132+
data = _generate_variance_data(raw_data, variance)
95133
_write_data('degree_45_down_variance2', data, output_directory)
96134

97135
variance = variance_high
98-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
136+
data = _generate_variance_data(raw_data, variance)
99137
_write_data('degree_45_down_variance3', data, output_directory)
100138

101139
variance = variance_very_high
102-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
140+
data = _generate_variance_data(raw_data, variance)
103141
_write_data('degree_45_down_variance4', data, output_directory)
104142

105143

@@ -108,19 +146,19 @@ def _write_data(name, data, output_directory):
108146
_write_data('linear_2_point_raw', raw_data, output_directory)
109147

110148
variance = variance_low
111-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
149+
data = _generate_variance_data(raw_data, variance)
112150
_write_data('linear_2_point_variance1', data, output_directory)
113151

114152
variance = variance_medium
115-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
153+
data = _generate_variance_data(raw_data, variance)
116154
_write_data('linear_2_point_variance2', data, output_directory)
117155

118156
variance = variance_high
119-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
157+
data = _generate_variance_data(raw_data, variance)
120158
_write_data('linear_2_point_variance3', data, output_directory)
121159

122160
variance = variance_very_high
123-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
161+
data = _generate_variance_data(raw_data, variance)
124162
_write_data('linear_2_point_variance4', data, output_directory)
125163

126164

@@ -129,40 +167,57 @@ def _write_data(name, data, output_directory):
129167
_write_data('linear_3_point_raw', raw_data, output_directory)
130168

131169
variance = variance_low
132-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
170+
data = _generate_variance_data(raw_data, variance)
133171
_write_data('linear_3_point_variance1', data, output_directory)
134172

135173
variance = variance_medium
136-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
174+
data = _generate_variance_data(raw_data, variance)
137175
_write_data('linear_3_point_variance2', data, output_directory)
138176

139177
variance = variance_high
140-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
178+
data = _generate_variance_data(raw_data, variance)
141179
_write_data('linear_3_point_variance3', data, output_directory)
142180

143181
variance = variance_very_high
144-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
182+
data = _generate_variance_data(raw_data, variance)
145183
_write_data('linear_3_point_variance4', data, output_directory)
146184

185+
variance = variance_low
186+
spike_probability = spike_probability_medium
187+
data = _generate_spike_data(raw_data, variance, spike_probability)
188+
_write_data('linear_3_point_spike1', data, output_directory)
189+
190+
variance = variance_medium
191+
data = _generate_spike_data(raw_data, variance, spike_probability)
192+
_write_data('linear_3_point_spike2', data, output_directory)
193+
194+
variance = variance_high
195+
data = _generate_spike_data(raw_data, variance, spike_probability)
196+
_write_data('linear_3_point_spike3', data, output_directory)
197+
198+
variance = variance_very_high
199+
_generate_spike_data(raw_data, variance, spike_probability)
200+
data = _write_data('linear_3_point_spike4', data, output_directory)
201+
147202

148203
# Linear (4-point)
149204
raw_data = _sample_attr(start_frame, end_frame, 'linear_4_point.translateY')
150205
_write_data('linear_4_point_raw', raw_data, output_directory)
151206

152207
variance = variance_low
153-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
208+
data = _generate_variance_data(raw_data, variance)
154209
_write_data('linear_4_point_variance1', data, output_directory)
155210

156211
variance = variance_medium
157-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
212+
data = _generate_variance_data(raw_data, variance)
158213
_write_data('linear_4_point_variance2', data, output_directory)
159214

160215
variance = variance_high
161-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
216+
data = _generate_variance_data(raw_data, variance)
162217
_write_data('linear_4_point_variance3', data, output_directory)
163218

164219
variance = variance_very_high
165-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
220+
data = _generate_variance_data(raw_data, variance)
166221
_write_data('linear_4_point_variance4', data, output_directory)
167222

168223

@@ -171,19 +226,19 @@ def _write_data(name, data, output_directory):
171226
_write_data('up_down_up_raw', raw_data, output_directory)
172227

173228
variance = variance_low
174-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
229+
data = _generate_variance_data(raw_data, variance)
175230
_write_data('up_down_up_variance1', data, output_directory)
176231

177232
variance = variance_medium
178-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
233+
data = _generate_variance_data(raw_data, variance)
179234
_write_data('up_down_up_variance2', data, output_directory)
180235

181236
variance = variance_high
182-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
237+
data = _generate_variance_data(raw_data, variance)
183238
_write_data('up_down_up_variance3', data, output_directory)
184239

185240
variance = variance_very_high
186-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
241+
data = _generate_variance_data(raw_data, variance)
187242
_write_data('up_down_up_variance4', data, output_directory)
188243

189244

@@ -192,19 +247,19 @@ def _write_data(name, data, output_directory):
192247
_write_data('down_up_down_raw', raw_data, output_directory)
193248

194249
variance = variance_low
195-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
250+
data = _generate_variance_data(raw_data, variance)
196251
_write_data('down_up_down_variance1', data, output_directory)
197252

198253
variance = variance_medium
199-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
254+
data = _generate_variance_data(raw_data, variance)
200255
_write_data('down_up_down_variance2', data, output_directory)
201256

202257
variance = variance_high
203-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
258+
data = _generate_variance_data(raw_data, variance)
204259
_write_data('down_up_down_variance3', data, output_directory)
205260

206261
variance = variance_very_high
207-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
262+
data = _generate_variance_data(raw_data, variance)
208263
_write_data('down_up_down_variance4', data, output_directory)
209264

210265

@@ -213,17 +268,17 @@ def _write_data(name, data, output_directory):
213268
_write_data('bounce_5_up_down_raw', raw_data, output_directory)
214269

215270
variance = variance_low
216-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
271+
data = _generate_variance_data(raw_data, variance)
217272
_write_data('bounce_5_up_down_variance1', data, output_directory)
218273

219274
variance = variance_medium
220-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
275+
data = _generate_variance_data(raw_data, variance)
221276
_write_data('bounce_5_up_down_variance2', data, output_directory)
222277

223278
variance = variance_high
224-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
279+
data = _generate_variance_data(raw_data, variance)
225280
_write_data('bounce_5_up_down_variance3', data, output_directory)
226281

227282
variance = variance_very_high
228-
data = [(f, (random.uniform(v - variance, v + variance))) for f, v in raw_data]
283+
data = _generate_variance_data(raw_data, variance)
229284
_write_data('bounce_5_up_down_variance4', data, output_directory)
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
1001 0.0
2+
1002 0.0
3+
1003 0.0
4+
1004 0.0
5+
1005 0.0
6+
1006 0.0
7+
1007 0.0
8+
1008 0.0
9+
1009 0.0
10+
1010 0.0
11+
1011 0.0
12+
1012 0.0
13+
1013 0.0
14+
1014 0.0
15+
1015 0.0
16+
1016 0.0
17+
1017 -0.00350741872282
18+
1018 0.0
19+
1019 -0.000707299254751
20+
1020 0.0
21+
1021 0.00786208728069
22+
1022 0.0
23+
1023 0.0
24+
1024 0.0
25+
1025 0.0
26+
1026 0.0
27+
1027 0.0
28+
1028 0.0
29+
1029 0.0
30+
1030 0.0
31+
1031 0.0
32+
1032 0.0
33+
1033 0.0
34+
1034 0.0
35+
1035 0.0
36+
1036 0.0
37+
1037 0.0
38+
1038 0.0
39+
1039 0.0
40+
1040 0.0
41+
1041 0.0
42+
1042 0.0
43+
1043 0.0
44+
1044 0.0
45+
1045 0.0
46+
1046 0.0
47+
1047 0.0
48+
1048 0.0
49+
1049 2.57698817654e-05
50+
1050 0.0
51+
1051 0.0
52+
1052 0.0
53+
1053 0.0
54+
1054 0.0
55+
1055 0.0
56+
1056 0.0
57+
1057 0.0
58+
1058 0.0
59+
1059 0.0
60+
1060 0.0
61+
1061 0.0
62+
1062 0.0
63+
1063 0.0
64+
1064 0.0
65+
1065 0.0
66+
1066 0.0023426780206
67+
1067 0.0
68+
1068 -0.0010250596413
69+
1069 0.0
70+
1070 0.0
71+
1071 0.0
72+
1072 0.00124821264131
73+
1073 0.0
74+
1074 0.0
75+
1075 0.0
76+
1076 0.0
77+
1077 0.0
78+
1078 0.0
79+
1079 0.0
80+
1080 0.0
81+
1081 0.0
82+
1082 0.0
83+
1083 0.0
84+
1084 0.0
85+
1085 0.0
86+
1086 0.0
87+
1087 0.0
88+
1088 0.0
89+
1089 0.0
90+
1090 0.0
91+
1091 0.0
92+
1092 0.0
93+
1093 0.0
94+
1094 0.0
95+
1095 0.0
96+
1096 -0.0071282343961
97+
1097 0.0
98+
1098 0.0
99+
1099 0.0
100+
1100 0.0
101+
1101 0.0

0 commit comments

Comments
 (0)