<commit_before>import Foundation

class MLinearEquationsSolutionStrategy
{
    weak var step:MLinearEquationsSolutionStep!
    private weak var delegate:MLinearEquationsSolutionStrategyDelegate?
    
    class func strategyFor(
        step:MLinearEquationsSolutionStep,
        indeterminates:MLinearEquationsSolutionIndeterminates?) -> MLinearEquationsSolutionStrategy?
    {
        if let reduction:MLinearEquationsSolutionStrategyReduction = MLinearEquationsSolutionStrategyReduction.reducible(
            step:step)
        {
            return reduction
        }
        else if let indeterminatesLeft:MLinearEquationsSolutionStrategyIndeterminatesLeft = MLinearEquationsSolutionStrategyIndeterminatesLeft.indeterminatesRight(
            step:step)
        {
            return indeterminatesLeft
        }
        else if let removeZero:MLinearEquationsSolutionStrategyRemoveZero = MLinearEquationsSolutionStrategyRemoveZero.onlyZeros(
            step:step)
        {
            return removeZero
        }
        else if let fractionReduction:MLinearEquationsSolutionStrategyFractionReduction = MLinearEquationsSolutionStrategyFractionReduction.reducible(
            step:step)
        {
            return fractionReduction
        }
        else if let zeroFill:MLinearEquationsSolutionStrategyZeroFill = MLinearEquationsSolutionStrategyZeroFill.missingIndeterminate(
            step:step,
            indeterminates:indeterminates)
        {
            return zeroFill
        }
        else if let orderIndeterminates:MLinearEquationsSolutionStrategyOrderIndeterminates = MLinearEquationsSolutionStrategyOrderIndeterminates.indeterminateUnordered(
            step:step,
            indeterminates:indeterminates)
        {
            return orderIndeterminates
        }
        else if let pivotOrdering:MLinearEquationsSolutionStrategyPivotOrdering = MLinearEquationsSolutionStrategyPivotOrdering.rowUnordered(
            step:step)
        {
            return pivotOrdering
        }
        else if let rowAddition:MLinearEquationsSolutionStrategyRowAddition = MLinearEquationsSolutionStrategyRowAddition.samePivot(
            step:step)
        {
            return rowAddition
        }
        else if let onlyPivots:MLinearEquationsSolutionStrategyOnlyPivots = MLinearEquationsSolutionStrategyOnlyPivots.pivotRepeated(
            step:step)
        {
            return onlyPivots
        }
        else if let removeCoefficient:MLinearEquationsSolutionStrategyRemoveCoefficients = MLinearEquationsSolutionStrategyRemoveCoefficients.coefficientPivot(
            step:step)
        {
            return removeCoefficient
        }
        
        return nil
    }
    
    init(step:MLinearEquationsSolutionStep?)
    {
        self.step = step
    }
    
    //MARK: public
    
    func process(delegate:MLinearEquationsSolutionStrategyDelegate)
    {
        self.delegate = delegate
    }
    
    func completed(step:MLinearEquationsSolutionStep)
    {
        delegate?.solutionStrategyCompleted(step:step)
    }
    
    func foundIndeterminates(indeterminates:MLinearEquationsSolutionIndeterminates)
    {
        delegate?.solutionStrategyIndeterminates(
            indeterminates:indeterminates)
    }
}<commit_msg>added results only to factory<commit_after>import Foundation

class MLinearEquationsSolutionStrategy
{
    weak var step:MLinearEquationsSolutionStep!
    private weak var delegate:MLinearEquationsSolutionStrategyDelegate?
    
    class func strategyFor(
        step:MLinearEquationsSolutionStep,
        indeterminates:MLinearEquationsSolutionIndeterminates?) -> MLinearEquationsSolutionStrategy?
    {
        if let reduction:MLinearEquationsSolutionStrategyReduction = MLinearEquationsSolutionStrategyReduction.reducible(
            step:step)
        {
            return reduction
        }
        else if let indeterminatesLeft:MLinearEquationsSolutionStrategyIndeterminatesLeft = MLinearEquationsSolutionStrategyIndeterminatesLeft.indeterminatesRight(
            step:step)
        {
            return indeterminatesLeft
        }
        else if let removeZero:MLinearEquationsSolutionStrategyRemoveZero = MLinearEquationsSolutionStrategyRemoveZero.onlyZeros(
            step:step)
        {
            return removeZero
        }
        else if let fractionReduction:MLinearEquationsSolutionStrategyFractionReduction = MLinearEquationsSolutionStrategyFractionReduction.reducible(
            step:step)
        {
            return fractionReduction
        }
        else if let zeroFill:MLinearEquationsSolutionStrategyZeroFill = MLinearEquationsSolutionStrategyZeroFill.missingIndeterminate(
            step:step,
            indeterminates:indeterminates)
        {
            return zeroFill
        }
        else if let orderIndeterminates:MLinearEquationsSolutionStrategyOrderIndeterminates = MLinearEquationsSolutionStrategyOrderIndeterminates.indeterminateUnordered(
            step:step,
            indeterminates:indeterminates)
        {
            return orderIndeterminates
        }
        else if let pivotOrdering:MLinearEquationsSolutionStrategyPivotOrdering = MLinearEquationsSolutionStrategyPivotOrdering.rowUnordered(
            step:step)
        {
            return pivotOrdering
        }
        else if let rowAddition:MLinearEquationsSolutionStrategyRowAddition = MLinearEquationsSolutionStrategyRowAddition.samePivot(
            step:step)
        {
            return rowAddition
        }
        else if let onlyPivots:MLinearEquationsSolutionStrategyOnlyPivots = MLinearEquationsSolutionStrategyOnlyPivots.pivotRepeated(
            step:step)
        {
            return onlyPivots
        }
        else if let removeCoefficient:MLinearEquationsSolutionStrategyRemoveCoefficients = MLinearEquationsSolutionStrategyRemoveCoefficients.coefficientPivot(
            step:step)
        {
            return removeCoefficient
        }
        else if let resultsOnly:MLinearEquationsSolutionStrategyResultsOnly = MLinearEquationsSolutionStrategyResultsOnly.finished(
            step:step)
        {
            return resultsOnly
        }
        
        return nil
    }
    
    init(step:MLinearEquationsSolutionStep?)
    {
        self.step = step
    }
    
    //MARK: public
    
    func process(delegate:MLinearEquationsSolutionStrategyDelegate)
    {
        self.delegate = delegate
    }
    
    func completed(step:MLinearEquationsSolutionStep)
    {
        delegate?.solutionStrategyCompleted(step:step)
    }
    
    func foundIndeterminates(indeterminates:MLinearEquationsSolutionIndeterminates)
    {
        delegate?.solutionStrategyIndeterminates(
            indeterminates:indeterminates)
    }
}
{'fraction_non_alphanumeric': 0.043272080616478956, 'fraction_numerical': 0.0, 'mean_word_length': 2.7767207610520424, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2897532', 'n_tokens_mistral': 1803, 'n_tokens_neox': 1620, 'n_words': 244}