using System.Diagnostics.Contracts;
namespace TypeDefinition.Models
{
///
/// 特性データ
///
public partial class Characteristics
{
public Characteristics(double X, double Y, double Z)
{
Contract.Ensures(this.Validate());
this._X = X;
this._Y = Y;
this._Z = Z;
}
///
/// 特性 X
///
public double X { get { return _X; } }
private readonly double _X;
///
/// 特性 Y
///
public double Y { get { return _Y; } }
private readonly double _Y;
///
/// 特性 Z
///
public double Z { get { return _Z; } }
private readonly double _Z;
///
/// 一次ノルム
///
public double Norm { get { return X + Y + Z; } }
public bool Validate()
{
return
0 <= X && X <= 1
&& 0 <= Y && Y <= 1
&& 0 <= Z && Z <= 1
&& Norm >= 1;
}
}
}