BaseBlockTable GetBlockOrderTableFromOrderConfigs(int orderChosenIndex) { if (orderChosenIndex > orderConfigs.Count - 1) { throw new IndexOutOfRangeException($"IndexInBlock chosen is {orderChosenIndex}, but count is {orderConfigs.Count}"); } BlockOrderDefinition chosenBlockOrderDefinition = orderConfigs[orderChosenIndex]; if (chosenBlockOrderDefinition.Randomize && currentOrderedTableIndex == orderChosenIndex) { return(currentOrderedTable); } DataTable orderedTable = baseBlockTable.Clone(); foreach (int index in chosenBlockOrderDefinition.IndexOrder) { orderedTable.ImportRow(baseBlockTable.Rows[index]); } BaseBlockTable blockOrderTable = new BaseBlockTable(orderedTable); currentOrderedTable = blockOrderTable; currentOrderedTableIndex = orderChosenIndex; return(blockOrderTable); }
ExperimentDesign(IExperimentDesignFile designFile) { this.designFile = designFile; columnNames = designFile.GetColumnNamesSettings; baseBlockTable = new BaseBlockTable(designFile); baseTrialTable = new BaseTrialTable(baseBlockTable, designFile); }
public BaseBlockTable GetOrderedBlockTable(int orderChosenIndex) { BaseBlockTable orderedBlockTable = orderConfigs.Count > 0 ? GetBlockOrderTableFromOrderConfigs(orderChosenIndex) : GetBlockOrderTableFromPermutations(orderChosenIndex); return(orderedBlockTable); }
public BaseTrialTable(BaseBlockTable baseBlockTable, IExperimentDesignFile iExperimentDesignFile) { variables = iExperimentDesignFile.GetVariables; columnNames = iExperimentDesignFile.GetColumnNamesSettings; baseTrialTable = AddVariablesToTable(); AddMetaColumns(baseBlockTable); }
void AddMetaColumns(BaseBlockTable baseBlockTable) { AddBlockColumnsFrom(baseBlockTable); AddTotalTrialIndexColumn(); AddTrialIndexColumn(); AddBlockNumberColumn(); AddSuccessColumn(); AddAttemptsColumn(); AddSkippedColumn(); AddTrialTimeColumn(); }
BaseBlockTable GetBlockOrderTableFromPermutations(int index) { DataTable orderedTable = baseBlockTable.Clone(); if (!HasBlocks) { return(null); } foreach (DataRow dataRow in baseBlockTable.GetPermutations()[index]) { orderedTable.ImportRow(dataRow); } BaseBlockTable blockOrderTable = new BaseBlockTable(orderedTable); return(blockOrderTable); }