/// <summary> /// Constructor /// Note: no validation of input is performed in the constructor. Call Validate after /// the constructor and when changing values. /// </summary> /// <param name="name">field name</param> /// <param name="type">data type</param> /// <param name="num">Userdef number</param> /// <param name="enums">enumeration values</param> public Userdef(string name, string type, string[] enums, AdifEnumerations adifEnums) { aEnums = adifEnums; uName = name; DataType = new EnumerationValue(type, "DataType", aEnums); EnumField = new EnumerationField(enums); }
/// <summary> /// Constructor /// </summary> /// <param name="field">Adif field string</param> public AdifFieldParts(string adifField) { char[] trimChars = {' '}; adifField = adifField.Trim(trimChars); Regex regex = new Regex("^<([A-Za-z0-9_]+):([1-9][0-9]*)(:([A-Z])){0,1}>" + "([A-Za-z0-9_]*)(,{(([A-Za-z0-9_,]+)|([0-9]+(\\.[0-9]*)*:[0-9]+(\\.[0-9]*)*))}){0,1}$"); Match m = regex.Match(adifField); if(m.Success) { field = m.Groups[1].Value; dataType = m.Groups[4].Value; value = m.Groups[5].Value; int len = Int32.Parse(m.Groups[2].Value); if(len < value.Length) { value = value.Substring(0, len); } string enumers = m.Groups[8].Value; if(!enumers.Equals(string.Empty)) { enumField = new EnumerationField(enumers.Split(',')); } string rangeString = m.Groups[9].Value; if(!rangeString.Equals(string.Empty)) { string[] range = rangeString.Split(':'); lowerValue = range[0]; upperValue = range[1]; float lower = float.Parse(lowerValue); float upper = float.Parse(upperValue); if(lower > upper) { field = null; // show bad ADIF field } } } }
public void TestValidateFalse1() { string err = string.Empty; EnumerationField ef = new EnumerationField("Arrl_Section", aEnums); Assert.IsFalse(ef.Validate("ABCD", out err)); }
public void TestValidateFalse() { string err = string.Empty; string[] enums = {"e1", "e2", "e3", "e4"}; EnumerationField ef = new EnumerationField(enums); Assert.IsFalse(ef.Validate("e5", out err)); }
public void TestToString() { string[] values = {"A","B","C"}; EnumerationField ef = new EnumerationField(values); Assert.AreEqual("A,B,C", ef.ToString()); }
public void TestEnumerationSet2() { EnumerationField ef = new EnumerationField("Arrl_Sect", aEnums); Assert.AreEqual("Arrl_Sect", ef.EnumName); }
public void TestEnumerationSet() { string[] enums = {"e1", "e2", "e3", "e4"}; EnumerationField ef = new EnumerationField(enums); Assert.AreEqual(enums, ef.Enumeration); }
public void TestValueNotInEnumeration1() { string err = string.Empty; EnumerationField ef = new EnumerationField("Arrl_Section", aEnums); Assert.IsFalse(ef.IsInEnumeration("ABCD", out err)); Assert.AreEqual("\tThis QSO Field is of type enumeration. The value 'ABCD' was not found in enumeration.", err); }
public void TestValueNotInEnumeration() { string err = string.Empty; string[] enums = {"e1", "e2", "e3", "e4"}; EnumerationField ef = new EnumerationField(enums); Assert.IsFalse(ef.IsInEnumeration("e5", out err)); Assert.AreEqual("\tThis QSO Field is of type enumeration. The value 'e5' was not found in enumeration.", err); }
public void TestValueInEnumeration3() { string err = string.Empty; EnumerationField ef = new EnumerationField("Arrl_Section", aEnums); Assert.IsTrue(ef.IsInEnumeration("EB", out err)); Assert.AreEqual(null, err); }
public void TestValueInEnumeration1() { string err = string.Empty; string[] enums = {"e1", "e2", "e3", "e4"}; EnumerationField ef = new EnumerationField(enums); Assert.IsTrue(ef.IsInEnumeration("e4", out err)); Assert.AreEqual(null, err); }
public void TestValidateTrue3() { string err = string.Empty; EnumerationField ef = new EnumerationField("Arrl_Section", aEnums); Assert.IsTrue(ef.Validate("EB", out err)); }