protected UnitName <S, T> GetUnitName(string data) { UnitPrefix <S, T> prefix = null; UnitBaseName <S, T> baseName = null; for (int index = 0; index < data.Length; index++) { var stringPrefix = data.Substring(0, index); var stringSuffix = data.Substring(index, data.Length - index); try { prefix = ConstantProvider.GetPrefixBySymbol(stringPrefix); baseName = ConstantProvider.GetUnitBySymbol(stringSuffix); if (prefix != null && baseName != null) { break; } } catch (UnitNotFoundException) { } } if (prefix == null || baseName == null) { throw new UnitParserException(string.Format("Can't find any prefix+unit called [{0}].", data)); } return(new UnitName <S, T>(prefix, baseName: baseName)); }
public void AsStringTest() { var unitBaseName = new UnitBaseName <ScalarFloat, float> { Name = "metre", AsciiSymbol = "m", Factor = new ScalarFloat(1), Symbol = "m" }; var unitPrefix = new UnitPrefix <ScalarFloat, float> { Name = "kilo", Symbol = "k", AsciiSymbol = "k", Factor = new ScalarFloat(1000), Invert = false }; var unitName = new UnitName <ScalarFloat, float>(unitPrefix, unitBaseName); Assert.AreEqual("km", unitName.AsString); }
public UnitNamePower(UnitPrefix <S, T> prefix, UnitBaseName <S, T> baseName) : this(prefix, baseName, 1) { }
public UnitNamePower(UnitPrefix <S, T> prefix, UnitBaseName <S, T> baseName, long power) : this(new UnitName <S, T>(prefix, baseName), power) { }
protected void AddReference(UnitPrefix <S, T> unitPrefix, UnitBaseName <S, T> unitBaseName) { AddReference(new UnitNamePower <S, T>(unitPrefix, unitBaseName)); }
public UnitBaseName <S, T> Add(UnitBaseName <S, T> unitBaseName) { UnitByName[unitBaseName.Name] = unitBaseName; UnitBySymbol[unitBaseName.Symbol] = unitBaseName; return(unitBaseName); }