public void Check(Tube t) { if (t.Status == TubeStatus.Rejected) { return; } if (!isValid(t)) { t.Status = TubeStatus.Rejected; } }
public Tube Create(double projectLength, double projectWeight, string type) { Tube t = null; switch (type) { case "CastIron": t = new CastIronTube(); break; case "Pvc": t = new PvcTube(); break; case "Steel": t = new SteelTube(); break; default: throw new ArgumentException("Not recognized tube type!"); } t.ProjectLength = projectLength; t.ProjectWeight = projectWeight; t.RealLength = t.ProjectLength * (1 + ((_r.NextDouble() - 0.5) / 25)); t.RealWeight = t.ProjectWeight * (1 + ((_r.NextDouble() - 0.5) / 10)); return(t); }
public void Approve(Tube t) { t.Status = TubeStatus.Ready; }
protected override bool isValid(Tube t) { return(Math.Abs(t.RealWeight - t.ProjectWeight) / 100 < 0.03); }
protected override bool isValid(Tube t) { return(Math.Abs(t.RealLength - t.ProjectLength) / 100 < 0.01); }
protected abstract bool isValid(Tube t);