using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WGneu
{
    // 1 °KMW = 
    // 1 °NM  = kg/100L = 10g/L
    // 1 °Oe  = 
    // 1 °Bé  =
    // 1 °Bx  = g/100g (x Gramm Zucker pro 100 Gramm Flüssigkeit)
    internal class Gradation
    {
        /// <summary>
        /// Gradation in mg/L.
        /// </summary>
        uint mgpl;

        public Gradation(uint mgpl)
        {
            this.mgpl = mgpl;
        }

        public static double relativeDensity(double todo)
        {
            return 0;
        }

        public static double KmwToOe(double kmw)
        {
            return 0;  // TODO
        }

        public static double OeToKmw(double oe)
        {
            return 0;  // TODO
        }

        public static Gradation FromKmw(double kwm)
        {
            return new Gradation(0);  // TODO
        }

        public static Gradation FromKmw(double kmw, double t)
        {
            // The temperature can be ignored, because no volumetric unit is involved.
            // 1 °KMW = 1g/100g
            return FromKmw(kmw);
        }

        public static Gradation FromOe(double oe)
        {
            return new Gradation(0);  // TODO
        }

        public static Gradation FromOe(double oe, double t)
        {
            return null;
        }
    }
}