/// <summary> /// Whether this passport is valid. /// </summary> /// <returns></returns> public bool IsValidPassport() { if (!HasRequiredProperties) { return(false); } bool byr = Byr >= 1920 && Byr <= 2002; bool iyr = Iyr >= 2010 && Iyr <= 2020; bool eyr = Eyr >= 2020 && Eyr <= 2030; string unit = Hgt.Substring(Hgt.Length - 2); bool hgt = false; if (int.TryParse(Hgt.Substring(0, Hgt.Length - 2), out int value)) { if (unit == "cm") { hgt = value >= 150 && value <= 193; } else if (unit == "in") { hgt = value >= 59 && value <= 76; } } bool ecl = EyeColours.Contains(Ecl); bool hcl = Regex.IsMatch(Hcl, "#([0-9]|[a-f]){6}$"); bool pid = Regex.IsMatch(Pid, "[0-9]{9}$"); return(byr && iyr && eyr && hgt && hcl && ecl && pid); }
public bool Validate() { return(Byr.HasValue && Iyr.HasValue && Eyr.HasValue && !Pid.IsNullOrEmpty() && !Hgt.IsNullOrEmpty() && !Hcl.IsNullOrEmpty() && !Ecl.IsNullOrEmpty()); }
private static bool IsPolarId(string id) { return (Byr.IsMatch(id) && Iyr.IsMatch(id) && Eyr.IsMatch(id) && Hgt.IsMatch(id) && Hcl.IsMatch(id) && Ecl.IsMatch(id) && Pid.IsMatch(id)); }
public override bool Read(string filename, ProgressInfo progress, out PatchData data) { data = null; using (var hgt = Hgt.Open(filename)) { if (hgt == null) { return(false); } var bounds = hgt.Bounds; GridData grid = new GridData { north = bounds.north, east = bounds.east, west = bounds.west, south = bounds.south, }; // Substract 1 to width/height to avoid overlaps grid.countX = hgt.Width - 1; grid.countY = hgt.Height - 1; grid.InitGridValues(false); // Read raster values var buffer = hgt.Buffer; int pos = 0; int index = 0; float invCountY = 1f / grid.countY; for (int y = 0; y < grid.countY; y++) { for (int x = 0; x < grid.countX; x++) { short value = (short)((buffer[pos++] << 8) | buffer[pos++]); grid.values[index++] = value; } // Advance another 2 positions to skip the last column pos += 2; progress.value += invCountY; } progress.value = 1; grid.AddMaskValue(Hgt.DataVoid); grid.units = SuggestedUnits; data = grid; } return(true); }
private bool IsHgtValid() { if (Hgt != null) { if (Hgt.EndsWith("cm")) { var length = int.Parse(Hgt.Substring(0, Hgt.Length - 2)); return(150 <= length && length <= 193); } else if (Hgt.EndsWith("in")) { var length = int.Parse(Hgt.Substring(0, Hgt.Length - 2)); return(59 <= length && length <= 76); } } return(false); }
private bool ValidHgt() { if (Hgt.Length < 4) { return(false); } string unit = Hgt.Substring(Hgt.Length - 2); int length = int.Parse(Hgt.Substring(0, Hgt.Length - 2)); if (unit == "cm") { return(length >= 150 && length <= 193); } if (unit == "in") { return(length >= 59 && length <= 76); } return(false); }
public override BasicInfo GetBasicInfo(string filename) { BasicInfo info = new BasicInfo(); try { var format = HgtFormat.Get(filename); info.bounds = Hgt.GetBounds(filename); info.isRaster = true; // Substract 1 to width/height to avoid overlaps info.width = info.height = format.RowsAndColumns - 1; info.degreesPerPixel = format.GetDegreesPerPixel(); info.suggestedLayerName = SuggestedLayerName; info.suggestedUnits = SuggestedUnits; } catch (Exception e) { Debug.LogException(e); return(null); } return(info); }
public bool IsValid() { if (!HasMadatoryFields()) { return(false); } if (!int.TryParse(Byr, out var byr)) { return(false); } if (byr < 1920 || byr > 2002) { return(false); } if (!int.TryParse(Iyr, out var iyr)) { return(false); } if (iyr < 2010 || iyr > 2020) { return(false); } if (!int.TryParse(Eyr, out var eyr)) { return(false); } if (eyr < 2020 || eyr > 2030) { return(false); } if (!Hgt.EndsWith("cm") && !Hgt.EndsWith("in")) { return(false); } if (Hgt.EndsWith("cm")) { if (!int.TryParse(Hgt.Replace("cm", ""), out var hgt)) { return(false); } if (hgt < 150 || hgt > 193) { return(false); } } if (Hgt.EndsWith("in")) { if (!int.TryParse(Hgt.Replace("in", ""), out var hgt)) { return(false); } if (hgt < 59 || hgt > 76) { return(false); } } var hairRegEx = new Regex("#[a-z0-9]{6}"); if (!hairRegEx.Match(Hcl).Success) { return(false); } string[] eyeColours = new string[] { "amb", "blu", "brn", "gry", "grn", "hzl", "oth" }; if (!eyeColours.Contains(Ecl.ToLower())) { return(false); } if (Pid.Length != 9) { return(false); } if (!int.TryParse(Pid, out var ignored)) { return(false); } return(true); }
public bool IsValidStrict() { if (string.IsNullOrWhiteSpace(Eyr) || string.IsNullOrWhiteSpace(Pid) || string.IsNullOrWhiteSpace(Hcl) || string.IsNullOrWhiteSpace(Byr) || string.IsNullOrWhiteSpace(Iyr) || string.IsNullOrWhiteSpace(Ecl) || string.IsNullOrWhiteSpace(Hgt)) { return(false); } if (!int.TryParse(Byr, out var byr)) { return(false); } if (byr < 1920 || byr > 2002) { return(false); } if (!int.TryParse(Iyr, out var iyr)) { return(false); } if (iyr < 2010 || iyr > 2020) { return(false); } if (!int.TryParse(Eyr, out var eyr)) { return(false); } if (eyr < 2020 || eyr > 2030) { return(false); } if (!Hgt.EndsWith("cm") && !Hgt.EndsWith("in")) { return(false); } if (Hgt.EndsWith("cm")) { if (!int.TryParse(Hgt.Replace("cm", ""), out var hgt)) { return(false); } if (hgt < 150 || hgt > 193) { return(false); } } if (Hgt.EndsWith("in")) { if (!int.TryParse(Hgt.Replace("in", ""), out var hgt)) { return(false); } if (hgt < 59 || hgt > 76) { return(false); } } if (Hcl.Length != 7 || !Hcl.StartsWith("#")) { return(false); } const string validHair = "0123456789abcdef"; for (var i = 1; i < Hcl.Length; i++) { if (!validHair.Contains(Hcl[i].ToString().ToLower())) { return(false); } } string[] validEyes = new string[] { "amb", "blu", "brn", "gry", "grn", "hzl", "oth" }; if (!validEyes.Contains(Ecl.ToLower())) { return(false); } if (Pid.Length != 9) { return(false); } if (!int.TryParse(Pid, out var temp1)) { return(false); } return(true); }
/*enum EyeColor * { * amb, * blu, * brn, * gry, * grn, * hzl, * oth * }*/ public bool IsValid() { return(Byr != -1 && Iyr != -1 && Eyr != -1 && !Hgt.Equals(string.Empty) && !Pid.Equals(string.Empty) && !Hcl.Equals(string.Empty) && !Ecl.Equals(string.Empty)); }