using System;
using System.Collections.Generic;
using System.Diagnostics;
namespace BotSharp.Algorithm.Bayesian
{
///
/// Struct CombinedConditionalProbability
///
[DebuggerDisplay("P({Class}|{TokenProbabilities.Count} tokens)={Probability}")]
public struct CombinedConditionalProbability
{
///
/// The class
///
public readonly IClass Class;
///
/// The token probabilities
///
public ICollection TokenProbabilities;
///
/// The probability
///
public double Probability;
///
/// Initializes a new instance of the struct.
///
/// The class.
/// The probability.
/// The tokenProbabilities.
public CombinedConditionalProbability(IClass @class, double probability, ICollection tokenProbabilities)
{
if (ReferenceEquals(@class, null)) throw new ArgumentNullException("class");
if (ReferenceEquals(tokenProbabilities, null)) throw new ArgumentNullException("tokenProbabilities");
if (probability < 0) throw new ArgumentOutOfRangeException("probability", probability, "Probability must greater than or equal to zero");
if (probability > 1) throw new ArgumentOutOfRangeException("probability", probability, "Probability must less than or equal to one");
Class = @class;
TokenProbabilities = tokenProbabilities;
Probability = probability;
}
}
}