diff --git a/src/main/java/tec/units/tck/util/TestGroups.java b/src/main/java/tec/units/tck/util/TestGroups.java
index 799d96e..2725f89 100644
--- a/src/main/java/tec/units/tck/util/TestGroups.java
+++ b/src/main/java/tec/units/tck/util/TestGroups.java
@@ -15,50 +15,98 @@
*/
public final class TestGroups {
- /**
- * TestNG groups used in the JSR 363 TCK.
- *
- * The most important groups (used by {@link TCKRunner}) are:
- *
- * - {@link #core} - used to include tests for the core elements of the
- * API. These tests are mandatory in every profile.
- * - {@link #format} - formatting tests used to include tests for elements
- * in {@linkplain javax.measure.format}.
- *
- *
- * @author Werner Keil
- */
- public enum Group {
- core, format, quantity, spi
- }
+ /**
+ * TestNG groups used in the JSR 363 TCK.
+ *
+ * The most important groups (used by {@link TCKRunner}) are:
+ *
+ * - {@link #core} - used to include tests for the core elements of the API. These tests are mandatory in every
+ * profile.
+ * - {@link #format} - formatting tests used to include tests for elements in {@linkplain javax.measure.format}.
+ *
+ *
+ * @author Werner Keil
+ */
+ public enum Group {
+ core, format, base_quantity, derived_quantity, spi
+ }
- /**
+ /**
* Full profile (default if none is given)
*/
- public static final String FULL = "full";
-
- /**
+ public static final String FULL = "full";
+
+ /**
* Minimal profile
*/
- public static final String MINIMAL = "minimal";
-
- /**
+ public static final String MINIMAL = "minimal";
+
+ /**
* Minimal groups
*/
- public static final Group[] MINIMAL_GROUPS = { core };
-
+ public static final Group[] MINIMAL_GROUPS = {core};
+
/**
* Format profile
*/
public static final String FORMAT = "format";
-
+
/**
* Format groups
*/
- public static final Group[] FORMAT_GROUPS = { core, format };
+ public static final Group[] FORMAT_GROUPS = {core, format};
+
+ /**
+ * Base Quantity groups
+ */
+ private static final Group[] BASE_QUANTITY_GROUPS = {core, base_quantity};
- /**
- * Name of the system property to give the desired profile
+ /**
+ * Quantity groups
+ */
+ private static final Group[] QUANTITY_GROUPS = {core, base_quantity, derived_quantity};
+
+ /**
+ * SPI groups
+ */
+ private static final Group[] SPI_GROUPS = {core, format, spi};
+
+ /**
+ * Profiles used in the JSR 363 TCK.
+ *
+ * The most profiles (used by {@link TCKRunner}) are:
+ *
+ * - {@link #minimal} - used to include tests for the core elements of the API. These tests are mandatory in every
+ * profile.
+ * - {@link #format} - formatting tests used to include tests for elements in {@linkplain javax.measure.format}.
+ *
+ *
+ * @author Werner Keil
+ */
+ public enum Profile {
+ minimal("Minimal", MINIMAL_GROUPS), format("Format", FORMAT_GROUPS), base_quantity("Base Quantity", BASE_QUANTITY_GROUPS),
+ quantity("Quantity", QUANTITY_GROUPS), spi("SPI", SPI_GROUPS), full("Full", Group.values());
+
+ private final String description;
+
+ private final Group[] groups;
+
+ private Profile(String description, Group[] groups) {
+ this.description = description;
+ this.groups = groups;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Group[] getGroups() {
+ return groups;
+ }
+ }
+
+ /**
+ * Name of the system property to give the desired profile
*/
public static final String SYS_PROPERTY_PROFILE = "tec.units.tck.profile";
-}
\ No newline at end of file
+}