private IEnumerable <DataStreamValue> EnumerateDataStreamValues(int length, int adt)
        {
            var rnd   = new Random();
            var types = new[] { "METAL_LOSS", "CRACKING", "UNKNOWN" };

            var innerValues = new List <object>(adt + 5);

            for (var i = 0; i < length; i++)
            {
                var x    = rnd.NextDouble() * 250000.0;
                var y    = rnd.NextDouble() * 2 * Math.PI;
                var w    = rnd.NextDouble() * 3.0;
                var h    = rnd.NextDouble() * Math.PI / 10;
                var type = types[rnd.Next(types.Length)];

                innerValues.Clear();
                innerValues.Add((TReal)x);
                innerValues.Add((TReal)y);
                innerValues.Add((TReal)w);
                innerValues.Add((TReal)h);
                innerValues.Add(type);
                for (int j = 0; j < adt; j++)
                {
                    innerValues.Add(rnd.NextDouble() * 10);
                }
                var value = new DataStreamValue(innerValues.ToArray());
                yield return(value);
            }
        }
        private IEnumerable<DataStreamValue> EnumerateDataStreamValues(int length, int adt)
        {
            var rnd = new Random();
            var types = new[] {"METAL_LOSS", "CRACKING", "UNKNOWN"};

            var innerValues = new List<object>(adt+5);
            for (var i = 0; i < length; i++)
            {
                var x = rnd.NextDouble()*250000.0;
                var y = rnd.NextDouble()*2*Math.PI;
                var w = rnd.NextDouble()*3.0;
                var h = rnd.NextDouble()*Math.PI/10;
                var type = types[rnd.Next(types.Length)];

                innerValues.Clear();
                innerValues.Add((TReal)x);
                innerValues.Add((TReal)y);
                innerValues.Add((TReal)w);
                innerValues.Add((TReal)h);
                innerValues.Add(type);
                for (int j = 0; j < adt; j++)
                {
                    innerValues.Add(rnd.NextDouble() * 10);
                }
                var value = new DataStreamValue(innerValues.ToArray());
                yield return value;
            }
        }