示例#1
0
        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);
        }
示例#2
0
 ExperimentDesign(IExperimentDesignFile designFile)
 {
     this.designFile = designFile;
     columnNames     = designFile.GetColumnNamesSettings;
     baseBlockTable  = new BaseBlockTable(designFile);
     baseTrialTable  = new BaseTrialTable(baseBlockTable, designFile);
 }
示例#3
0
        public BaseBlockTable GetOrderedBlockTable(int orderChosenIndex)
        {
            BaseBlockTable orderedBlockTable = orderConfigs.Count > 0 ?
                                               GetBlockOrderTableFromOrderConfigs(orderChosenIndex) :
                                               GetBlockOrderTableFromPermutations(orderChosenIndex);

            return(orderedBlockTable);
        }
示例#4
0
        public BaseTrialTable(BaseBlockTable baseBlockTable,
                              IExperimentDesignFile iExperimentDesignFile)
        {
            variables   = iExperimentDesignFile.GetVariables;
            columnNames = iExperimentDesignFile.GetColumnNamesSettings;

            baseTrialTable = AddVariablesToTable();

            AddMetaColumns(baseBlockTable);
        }
示例#5
0
 void AddMetaColumns(BaseBlockTable baseBlockTable)
 {
     AddBlockColumnsFrom(baseBlockTable);
     AddTotalTrialIndexColumn();
     AddTrialIndexColumn();
     AddBlockNumberColumn();
     AddSuccessColumn();
     AddAttemptsColumn();
     AddSkippedColumn();
     AddTrialTimeColumn();
 }
示例#6
0
        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);
        }