Changeset 11670 for branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/SampleSizeInfluenceView.cs
- Timestamp:
- 12/08/14 23:31:39 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/StatisticalTesting/HeuristicLab.Analysis.Statistics/3.3/SampleSizeInfluenceView.cs
r11378 r11670 208 208 } 209 209 210 private void UpdateSampleSizes( ) {210 private void UpdateSampleSizes(bool forceUpdate = false) { 211 211 string selectedYAxis = (string)this.yAxisComboBox.SelectedItem; 212 212 213 if (selectedYAxis != null && xAxisComboBox.Text.Trim() == string.Empty) { 213 if (selectedYAxis != null && (xAxisTextBox.Text.Trim() == string.Empty || forceUpdate)) { 214 xAxisTextBox.Clear(); 214 215 List<double> values = new List<double>(); 215 216 foreach (IRun run in Content.Where(x => x.Visible)) { … … 221 222 222 223 if (values.Count() > 0) { 223 xAxisComboBox.Text = "1; "; 224 xAxisComboBox.Text += ((int)(values.Count() / 4)).ToString() + "; "; 225 xAxisComboBox.Text += ((int)(values.Count() / 2)).ToString() + "; "; 226 xAxisComboBox.Text += ((int)(values.Count() / 4 * 3)).ToString() + "; "; 227 xAxisComboBox.Text += ((int)(values.Count())).ToString(); 224 if (hypergeometricCheckBox.Checked) { 225 xAxisTextBox.Text += ((int)(values.Count() / 16)).ToString() + "; "; 226 xAxisTextBox.Text += ((int)(values.Count() / 8)).ToString() + "; "; 227 xAxisTextBox.Text += ((int)(values.Count() / 4)).ToString(); 228 } else { 229 xAxisTextBox.Text += ((int)(values.Count() / 4)).ToString() + "; "; 230 xAxisTextBox.Text += ((int)(values.Count() / 2)).ToString() + "; "; 231 xAxisTextBox.Text += ((int)(values.Count() / 4 * 3)).ToString() + "; "; 232 xAxisTextBox.Text += ((int)(values.Count())).ToString(); 233 } 228 234 } 229 235 } … … 232 238 private void UpdateComboBoxes() { 233 239 string selectedYAxis = (string)this.yAxisComboBox.SelectedItem; 234 this.xAxis ComboBox.Text = string.Empty;240 this.xAxisTextBox.Text = string.Empty; 235 241 this.yAxisComboBox.Items.Clear(); 236 242 if (Content != null) { … … 252 258 if (Content != null) { 253 259 var usableRuns = Content.Where(r => r.Visible).ToList(); 254 Random rand = new Random(); 255 256 List<int> groupSizes = ParseGroupSizesFromText(xAxisComboBox.Text); 257 foreach (int gs in groupSizes) { 258 int idx = gs; 259 List<IRun> runGroup = new List<IRun>(); 260 if (idx > usableRuns.Count()) { 261 idx = usableRuns.Count(); 262 } 263 264 for (int i = 0; i < idx; i++) { 265 int r = rand.Next(usableRuns.Count()); 266 runGroup.Add(usableRuns[r]); 267 } 268 runGroup.ForEach(x => AddDataPoint(x, idx)); 260 List<int> groupSizes = ParseGroupSizesFromText(xAxisTextBox.Text); 261 262 if (hypergeometricCheckBox.Checked) { 263 CalculateGroupsHypergeometric(usableRuns, groupSizes); 264 } else { 265 CalculateGroups(usableRuns, groupSizes); 269 266 } 270 267 … … 285 282 } 286 283 UpdateNoRunsVisibleLabel(); 284 } 285 286 private void CalculateGroups(List<IRun> usableRuns, List<int> groupSizes) { 287 Random rand = new Random(); 288 289 foreach (int gs in groupSizes) { 290 int idx = gs; 291 List<IRun> runGroup = new List<IRun>(); 292 if (idx > usableRuns.Count()) { 293 idx = usableRuns.Count(); 294 } 295 296 for (int i = 0; i < idx; i++) { 297 int r = rand.Next(usableRuns.Count()); 298 runGroup.Add(usableRuns[r]); 299 } 300 runGroup.ForEach(x => AddDataPoint(x, idx)); 301 } 302 } 303 304 private void CalculateGroupsHypergeometric(List<IRun> usableRuns, List<int> groupSizes) { 305 Random rand = new Random(); 306 var runs = new List<IRun>(usableRuns); 307 308 foreach (int gs in groupSizes) { 309 int idx = gs; 310 List<IRun> runGroup = new List<IRun>(); 311 if (idx > runs.Count()) { 312 idx = runs.Count(); 313 } 314 315 for (int i = 0; i < idx; i++) { 316 int r = rand.Next(runs.Count()); 317 runGroup.Add(runs[r]); 318 runs.Remove(runs[r]); 319 } 320 runGroup.ForEach(x => AddDataPoint(x, idx)); 321 } 287 322 } 288 323 … … 333 368 if (datapoint != null) { 334 369 IRun run = (IRun)datapoint.Tag; 335 string selectedAxis = xAxis ComboBox.Text;370 string selectedAxis = xAxisTextBox.Text; 336 371 IItem value = null; 337 372 … … 482 517 splitContainer.Panel2Collapsed = true; 483 518 } 519 } 520 521 private void RecalculateButton_Click(object sender, EventArgs e) { 522 UpdateDataPoints(); 523 } 524 525 private void hypergeometricCheckBox_CheckedChanged(object sender, EventArgs e) { 526 UpdateSampleSizes(true); 527 UpdateDataPoints(); 484 528 } 485 529 … … 569 613 private void defineSampleSizeButton_Click(object sender, EventArgs e) { 570 614 int min = 0, max = 0, step = 1; 571 var groupSizes = ParseGroupSizesFromText(xAxis ComboBox.Text);615 var groupSizes = ParseGroupSizesFromText(xAxisTextBox.Text); 572 616 if (groupSizes.Count() > 0) { 573 617 min = groupSizes.Min(); … … 582 626 newVals += v + "; "; 583 627 } 584 xAxis ComboBox.Text = newVals;585 } 586 } 587 } 588 589 private void xAxis ComboBox_TextChanged(object sender, EventArgs e) {590 var result = ParseGroupSizesFromText(xAxis ComboBox.Text, false);628 xAxisTextBox.Text = newVals; 629 } 630 } 631 } 632 633 private void xAxisTextBox_TextChanged(object sender, EventArgs e) { 634 var result = ParseGroupSizesFromText(xAxisTextBox.Text, false); 591 635 592 636 if (seriesCache.Count() == result.Count()) {
Note: See TracChangeset
for help on using the changeset viewer.