public void Analyze_IndicatesCancellativityCorrectly_ForClassicWeaklyButNotStronglyCancellativeQP() { var qp = UsefulQPs.GetClassicWeaklyButNotStronglyCancellativeQP(); var analyzer = CreateAnalyzer(); var settings = CreateSettings(CancellativityTypes.Cancellativity); var results = analyzer.Analyze(qp, settings); Assert.That( results.MainResults.HasFlag(QPAnalysisMainResults.NotCancellative), $"The main result was {results.MainResults}, which does not indicate that the QP fails to be cancellative."); settings = CreateSettings(CancellativityTypes.WeakCancellativity); results = analyzer.Analyze(qp, settings); Assert.That( !results.MainResults.HasFlag(QPAnalysisMainResults.NotWeaklyCancellative), $"The main result was {results.MainResults}, which indicates that the QP fails to be weakly cancellative."); settings = CreateSettings(CancellativityTypes.Cancellativity | CancellativityTypes.WeakCancellativity); results = analyzer.Analyze(qp, settings); Assert.That( results.MainResults.HasFlag(QPAnalysisMainResults.NotCancellative), $"The main result was {results.MainResults}, which does not indicate that the QP fails to be cancellative."); Assert.That( !results.MainResults.HasFlag(QPAnalysisMainResults.NotWeaklyCancellative), $"The main result was {results.MainResults}, which indicates that the QP fails to be weakly cancellative."); }