using System.Collections; namespace Numbers.NumberFactory; /// /// Base class for implementations /// /// public abstract class AbstractNumbers : INumbers { // TODO // private readonly List _list; /// /// Creates a new instance of with the given bounds. /// Will generate the appropriate numbers based on the implementation of . /// /// Lower bound of the number range /// Upper bound of the number range protected AbstractNumbers(long lowerBound, long upperBound) { // TODO } public long this[int index] { get { // TODO return -1L; } } public long LowerBound { get; } public long UpperBound { get; } public int Length => -1; // TODO public IEnumerator GetEnumerator() => null!; // TODO IEnumerator IEnumerable.GetEnumerator() => null!; // TODO private void GenerateNumbers() { // TODO } /// /// Determines whether the given number should be picked based on the task of a /// specific implementation /// /// Number to check /// True if the number should be picked; false otherwise protected abstract bool PickNumber(long number); }