40 lines
3.5 KiB
Markdown
40 lines
3.5 KiB
Markdown
|
|
---
|
||
|
|
source_files:
|
||
|
|
- Common/DTS.CommonCore/Enums/TestSetups/RealtimeGraphsEnum.cs
|
||
|
|
generated_at: "2026-04-16T02:44:28.591642+00:00"
|
||
|
|
model: "Qwen/Qwen3-Coder-Next-FP8"
|
||
|
|
schema_version: 1
|
||
|
|
sha256: "5da219cbdf4b218e"
|
||
|
|
---
|
||
|
|
|
||
|
|
# TestSetups
|
||
|
|
|
||
|
|
## 1. Purpose
|
||
|
|
This module defines a strongly-typed enumeration `RealtimeGraphsEnum` used to represent configurable numbers of real-time graphs in the system—specifically, one, three, or six graphs. It is part of the `DTS.Common.Enums.TestSetups` namespace and is intended for use in test setup configurations where the UI or backend logic must select or validate the number of concurrent real-time data visualizations. The enum is annotated with `[Description]` attributes and leverages a custom `EnumDescriptionTypeConverter` to support localization or display-name resolution (e.g., for UI binding or serialization).
|
||
|
|
|
||
|
|
## 2. Public Interface
|
||
|
|
- **`RealtimeGraphsEnum`**
|
||
|
|
- `One = 1` — Represents a configuration with **one** real-time graph.
|
||
|
|
- `Three = 3` — Represents a configuration with **three** real-time graphs.
|
||
|
|
- `Six = 6` — Represents a configuration with **six** real-time graphs.
|
||
|
|
All members are explicitly assigned integer values (1, 3, 6), and each has a `[Description]` attribute containing a string key (e.g., `"RealtimeGraphs_One"`) rather than a human-readable label—suggesting the actual display text is resolved externally (e.g., via resource files using the description string as a key).
|
||
|
|
|
||
|
|
## 3. Invariants
|
||
|
|
- Only the values `1`, `3`, and `6` are valid for this enum; no other numeric values are defined.
|
||
|
|
- The enum is **not** marked as `[Flags]`, so bitwise combinations are not intended or supported.
|
||
|
|
- The `[Description]` attribute values are *keys*, not display strings—consumers must resolve them via the `EnumDescriptionTypeConverter` or external localization mechanism.
|
||
|
|
- The enum relies on `DTS.Common.Converters.EnumDescriptionTypeConverter`; invalid usage without this converter may result in raw numeric values or unlocalized strings.
|
||
|
|
|
||
|
|
## 4. Dependencies
|
||
|
|
- **Depends on**:
|
||
|
|
- `System.ComponentModel` (for `DescriptionAttribute` and `TypeConverter`)
|
||
|
|
- `DTS.Common.Converters.EnumDescriptionTypeConverter` (custom type converter for resolving descriptions)
|
||
|
|
- **Used by**:
|
||
|
|
- Likely consumed by UI layers (e.g., dropdowns, configuration editors) and test setup logic in `DTS.CommonCore` or downstream modules (e.g., `DTS.TestRunner`, `DTS.UI`).
|
||
|
|
- Not directly inferable from this file, but any code that serializes/deserializes or binds to `RealtimeGraphsEnum` will depend on this type.
|
||
|
|
|
||
|
|
## 5. Gotchas
|
||
|
|
- **Non-sequential values**: The enum uses `1`, `3`, `6`—not contiguous integers. Code assuming sequential or incremental values (e.g., `for (int i = 1; i <= 6; i++)`) may fail or misbehave.
|
||
|
|
- **Description strings are keys, not labels**: The `[Description]` values (e.g., `"RealtimeGraphs_One"`) are *not* user-facing text; they are resource keys. Relying on `ToString()` or direct `DescriptionAttribute` access without the converter will yield these keys—not localized text.
|
||
|
|
- **TypeConverter dependency**: If `EnumDescriptionTypeConverter` is missing or misconfigured (e.g., in serialization contexts like JSON.NET without custom converters), deserialization or display may fall back to numeric values or fail.
|
||
|
|
- **No `Default` or `None` member**: There is no `0` or `Unspecified` value; uninitialized or invalid enum values will default to `0`, which is *not* a defined member—this may cause `InvalidCastException` or unexpected behavior if cast from an arbitrary `int`.
|