Fix Samsung pattern to handle variable revision lengths
Das Samsung-Muster hat die Revision auf exakt 3 Zeichen festgelegt und die Dichte-Gruppe auf exakt 4 Folgezeichen. Dies führte dazu, dass bei abweichender Revisionslänge das gesamte Muster nicht passte und Bauform, Geschwindigkeit und Kapazität verloren gingen. Das neue Muster verwendet einen faul (lazy) Quantifier für die Dichte-Gruppe (4-6 Zeichen) und erlaubt beliebig lange Revisionen vor dem Bindestrich. Dadurch werden Bauform und Geschwindigkeit auch bei nicht standardisierten Revisionslängen korrekt erkannt. - M393A2K43B-CTD (einteilige Revision) - M393A2K43BBX1-CTD (vierteilige Revision) Beide Tests bestätigen jetzt die korrekte Erkennung von Bauform und Geschwindigkeit unabhängig von der Revisionslänge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -16,7 +16,7 @@ export const VENDOR_TABLES = [
|
|||||||
// erfasste dadurch nie den vollstaendigen Dichte-Code 'A8K40' - die
|
// erfasste dadurch nie den vollstaendigen Dichte-Code 'A8K40' - die
|
||||||
// Tabellensuche schlug immer fehl. Hier korrigiert: 'A' gehoert zur
|
// Tabellensuche schlug immer fehl. Hier korrigiert: 'A' gehoert zur
|
||||||
// erfassten Dichte-Gruppe, die Revision hat feste Laenge 3.
|
// erfassten Dichte-Gruppe, die Revision hat feste Laenge 3.
|
||||||
pattern: /^M(\d{3})(A[A-Z0-9]{4})[A-Z0-9]{3}-([A-Z]{3})/,
|
pattern: /^M(\d{3})(A[A-Z0-9]{4,6}?)[A-Z0-9]*-([A-Z]{3})/,
|
||||||
formFactor: {
|
formFactor: {
|
||||||
378: 'UDIMM',
|
378: 'UDIMM',
|
||||||
391: 'UDIMM',
|
391: 'UDIMM',
|
||||||
|
|||||||
@@ -39,3 +39,19 @@ test('leere Eingabe liefert ein vollstaendig leeres Spec', () => {
|
|||||||
assert.equal(spec.partNumber, null);
|
assert.equal(spec.partNumber, null);
|
||||||
assert.equal(spec.capacityGb, null);
|
assert.equal(spec.capacityGb, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('erkennt Bauform und Geschwindigkeit auch mit einteiliger Revision', () => {
|
||||||
|
const spec = decodePartNumber('M393A2K43B-CTD');
|
||||||
|
assert.equal(spec.formFactor, 'RDIMM');
|
||||||
|
assert.equal(spec.speed, 'PC4-2666');
|
||||||
|
assert.equal(spec.capacityGb, null, 'unbekannter Dichte-Code laesst das Feld offen');
|
||||||
|
assert.equal(spec.partNumber, 'M393A2K43B-CTD');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('erkennt Bauform und Geschwindigkeit auch mit vierteiliger Revision', () => {
|
||||||
|
const spec = decodePartNumber('M393A2K43BBX1-CTD');
|
||||||
|
assert.equal(spec.formFactor, 'RDIMM');
|
||||||
|
assert.equal(spec.speed, 'PC4-2666');
|
||||||
|
assert.equal(spec.capacityGb, null, 'unbekannter Dichte-Code laesst das Feld offen');
|
||||||
|
assert.equal(spec.partNumber, 'M393A2K43BBX1-CTD');
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user