// Path: quantity/src/main/java/systems/uom/quantity/Acidity.java
// public interface Acidity extends Quantity<Acidity> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/Concentration.java
// public interface Concentration<Q extends Quantity<Q>> extends Quantity<Concentration<Q>> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/Drag.java
// public interface Drag extends Quantity<Drag> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/Information.java
// public interface Information extends Quantity<Information> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/InformationRate.java
// public interface InformationRate extends Quantity<InformationRate> {
// }


import static javax.measure.MetricPrefix.*;
import static tech.units.indriya.AbstractUnit.ONE;
import si.uom.quantity.*;
import systems.uom.quantity.Acidity;
import systems.uom.quantity.Concentration;
import systems.uom.quantity.Drag;
import systems.uom.quantity.Information;
import systems.uom.quantity.InformationRate;
import si.uom.quantity.Level;
import si.uom.SI;
import tech.units.indriya.*;
import tech.units.indriya.format.SimpleUnitFormat;
import tech.units.indriya.function.LogConverter;
import tech.units.indriya.function.MultiplyConverter;
import tech.units.indriya.unit.AlternateUnit;
import tech.units.indriya.unit.ProductUnit;
import tech.units.indriya.unit.TransformedUnit;
import tech.units.indriya.unit.Units;
import javax.measure.Quantity;
import javax.measure.Unit;
import javax.measure.quantity.*;
    // UNDEFINED;
    // public static final Unit
    // HOMEOPATHIC_POTENCY_OF_QUINTAMILLESIMAL_HAHNEMANNIAN = UNDEFINED;
    // public static final Unit HOMEOPATHIC_POTENCY_OF_DECIMAL_KORSAKOVIAN =
    // UNDEFINED;
    // public static final Unit HOMEOPATHIC_POTENCY_OF_CENTESIMAL_KORSAKOVIAN =
    // UNDEFINED;
    // public static final Unit HOMEOPATHIC_POTENCY_OF_MILLESIMAL_KORSAKOVIAN =
    // UNDEFINED;
    // public static final Unit
    // HOMEOPATHIC_POTENCY_OF_QUINTAMILLESIMAL_KORSAKOVIAN = UNDEFINED;

    //////////////////////////////////////////////////
    // CHEMICAL AND BIOCHEMICAL UNITS: UCUM 4.5 §45 //
    //////////////////////////////////////////////////
    /**
     * amount of substance
     * @since 2.4
     */
    public static final Unit<AmountOfSubstance> EQUIVALENTS = addUnit(new AlternateUnit<AmountOfSubstance>(MOLE, "eq"));
    /**
     * amount of substance (dissolved particles)
     * @since 2.4
     */
    public static final Unit<AmountOfSubstance> OSMOLE = addUnit(new AlternateUnit<AmountOfSubstance>(MOLE, "osm"));

    public static final Unit<Acidity> PH = addUnit(
	    MOLE.divide(LITER).transform(new LogConverter(10)).multiply(-1).asType(Acidity.class));

    @SuppressWarnings("unchecked")
// Path: quantity/src/main/java/systems/uom/quantity/Acidity.java
// public interface Acidity extends Quantity<Acidity> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/Concentration.java
// public interface Concentration<Q extends Quantity<Q>> extends Quantity<Concentration<Q>> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/Drag.java
// public interface Drag extends Quantity<Drag> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/Information.java
// public interface Information extends Quantity<Information> {
// }
// 
// Path: quantity/src/main/java/systems/uom/quantity/InformationRate.java
// public interface InformationRate extends Quantity<InformationRate> {
// }


// Path: ucum/src/main/java/systems/uom/ucum/UCUM.java
import static javax.measure.MetricPrefix.*;
import static tech.units.indriya.AbstractUnit.ONE;
import si.uom.quantity.*;
import systems.uom.quantity.Acidity;
import systems.uom.quantity.Concentration;
import systems.uom.quantity.Drag;
import systems.uom.quantity.Information;
import systems.uom.quantity.InformationRate;
import si.uom.quantity.Level;
import si.uom.SI;
import tech.units.indriya.*;
import tech.units.indriya.format.SimpleUnitFormat;
import tech.units.indriya.function.LogConverter;
import tech.units.indriya.function.MultiplyConverter;
import tech.units.indriya.unit.AlternateUnit;
import tech.units.indriya.unit.ProductUnit;
import tech.units.indriya.unit.TransformedUnit;
import tech.units.indriya.unit.Units;
import javax.measure.Quantity;
import javax.measure.Unit;
import javax.measure.quantity.*;

    // UNDEFINED;
    // public static final Unit
    // HOMEOPATHIC_POTENCY_OF_QUINTAMILLESIMAL_HAHNEMANNIAN = UNDEFINED;
    // public static final Unit HOMEOPATHIC_POTENCY_OF_DECIMAL_KORSAKOVIAN =
    // UNDEFINED;
    // public static final Unit HOMEOPATHIC_POTENCY_OF_CENTESIMAL_KORSAKOVIAN =
    // UNDEFINED;
    // public static final Unit HOMEOPATHIC_POTENCY_OF_MILLESIMAL_KORSAKOVIAN =
    // UNDEFINED;
    // public static final Unit
    // HOMEOPATHIC_POTENCY_OF_QUINTAMILLESIMAL_KORSAKOVIAN = UNDEFINED;

    //////////////////////////////////////////////////
    // CHEMICAL AND BIOCHEMICAL UNITS: UCUM 4.5 §45 //
    //////////////////////////////////////////////////
    /**
     * amount of substance
     * @since 2.4
     */
    public static final Unit<AmountOfSubstance> EQUIVALENTS = addUnit(new AlternateUnit<AmountOfSubstance>(MOLE, "eq"));
    /**
     * amount of substance (dissolved particles)
     * @since 2.4
     */
    public static final Unit<AmountOfSubstance> OSMOLE = addUnit(new AlternateUnit<AmountOfSubstance>(MOLE, "osm"));

    public static final Unit<Acidity> PH = addUnit(
	    MOLE.divide(LITER).transform(new LogConverter(10)).multiply(-1).asType(Acidity.class));

    @SuppressWarnings("unchecked")
    public static final Unit<Concentration<Mass>> GRAM_PERCENT = addUnit(