Diff
checker
Text
Text
Bilder
Dokumente
Excel
Ordner
Legal
Enterprise
Desktop-App
Preise
Einloggen
Diffchecker Desktop herunterladen
Texte vergleichen
Finde den Unterschied zwischen zwei Textdateien
Werkzeuge
Verlauf
Live-Editor
Gleiches ausblenden
Zeilenumbruch aus
Ansicht
Zweispaltig
Einspaltig
Vergleichsgenauigkeit
Intelligent
Wort
Zeichen
Syntaxhervorhebung
Syntax auswählen
Ignorieren
Text umwandeln
Zur ersten Änderung
Eingabe bearbeiten
Diffchecker Desktop
Der sicherste Weg, Diffchecker zu nutzen. Hol dir die Desktop-App: Deine Diffs verlassen nie deinen Computer!
Desktop holen
Untitled diff
Erstellt
vor 9 Jahren
Diff läuft nie ab
Löschen
Exportieren
Teilen
Erklären
44 Entfernungen
Zeilen
Gesamt
Entfernt
Zeichen
Gesamt
Entfernt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
175 Zeilen
Kopieren
66 Hinzufügungen
Zeilen
Gesamt
Hinzugefügt
Zeichen
Gesamt
Hinzugefügt
Um diese Funktion weiterhin zu nutzen, aktualisiere auf
Diff
checker
Pro
Preise anzeigen
189 Zeilen
Kopieren
/*
/*
* (C) Copyright 2017 Code-House, Łukasz Dywicki.
* (C) Copyright 2017 Code-House, Łukasz Dywicki.
*
*
* Licensed under the Apache License, Version 2.0 (the "License");
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
*
* http://www.apache.org/licenses/LICENSE-2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*
* Unless required by applicable law or agreed to in writing, software
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* See the License for the specific language governing permissions and
* limitations under the License.
* limitations under the License.
*/
*/
Kopieren
Kopiert
Kopieren
Kopiert
package org.
eclipse.aether.util
.version;
package org.
code_house.maven.osgi.resolver.shared
.version;
import org.code_house.maven.osgi.resolver.test.VersionRangeTest;
import org.code_house.maven.osgi.resolver.test.VersionRangeTest;
import org.eclipse.aether.version.InvalidVersionSpecificationException;
import org.eclipse.aether.version.InvalidVersionSpecificationException;
import org.junit.Test;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.junit.Assert.*;
/**
/**
Kopieren
Kopiert
Kopieren
Kopiert
*
Customized version
of
aether generic
version
. Located here to verify {@link VersionRangeTest} and to track eventual
*
Test
of
OSGi
version
range filtering.
* changes in aether's logic.
*/
*/
Kopieren
Kopiert
Kopieren
Kopiert
public class
Generic
VersionRangeTest extends VersionRangeTest<
Generic
VersionRange,
GenericVersion
> {
public class
Osgi
VersionRangeTest extends VersionRangeTest<
Osgi
VersionRange,
OsgiVersion
> {
Kopieren
Kopiert
Kopieren
Kopiert
protected
GenericVersion
newVersion(String version) {
@Override
return new
GenericVersion
(version);
protected
OsgiVersion
newVersion(String version) {
return new
OsgiVersion
(version);
}
}
Kopieren
Kopiert
Kopieren
Kopiert
protected
Generic
VersionRange parseValid(String range) {
@Override
protected
Osgi
VersionRange parseValid(String range) {
try {
try {
Kopieren
Kopiert
Kopieren
Kopiert
return new
Generic
VersionRange(range);
return new
Osgi
VersionRange(range);
} catch (InvalidVersionSpecificationException e) {
} catch (InvalidVersionSpecificationException e) {
Kopieren
Kopiert
Kopieren
Kopiert
AssertionError error =
new AssertionError(range + " should be valid but failed to parse due to: " + e.getMessage());
AssertionError error =
new AssertionError(range + " should be valid but failed to parse due to: " + e.getMessage());
error.initCause(e);
error.initCause(e);
throw error;
throw error;
}
}
}
}
Kopieren
Kopiert
Kopieren
Kopiert
@Override
protected void parseInvalid(String range) {
protected void parseInvalid(String range) {
try {
try {
Kopieren
Kopiert
Kopieren
Kopiert
new
Generic
VersionRange(range);
new
Osgi
VersionRange(range);
fail(range + " should be invalid");
fail(range + " should be invalid");
} catch (InvalidVersionSpecificationException e) {
} catch (InvalidVersionSpecificationException e) {
assertTrue(true);
assertTrue(true);
}
}
}
}
@Test
@Test
public void testLowerBoundInclusiveUpperBoundInclusive() {
public void testLowerBoundInclusiveUpperBoundInclusive() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("[1,2]");
Osgi
VersionRange range = parseValid("[1,2]");
assertContains(range, "1");
assertContains(range, "1");
assertContains(range, "1.1-SNAPSHOT");
assertContains(range, "1.1-SNAPSHOT");
assertContains(range, "2");
assertContains(range, "2");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
}
}
@Test
@Test
public void testLowerBoundInclusiveUpperBoundExclusive() {
public void testLowerBoundInclusiveUpperBoundExclusive() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("[1.2.3.4
.5
,1.2.3.
4.
6)");
Osgi
VersionRange range = parseValid("[1.2.3.4
,1.2.3.
6)");
assertContains(range, "1.2.3.4
.5");
assertContains(range, "1.2.3.4
");
assertNotContains(range, "1.2.3.
4.
6");
assertContains(range, "1.2.3.45");
assertContains(range, "1.2.3
.5");
assertNotContains(range, "1.2.3.
6");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
}
}
@Test
@Test
public void testLowerBoundExclusiveUpperBoundInclusive() {
public void testLowerBoundExclusiveUpperBoundInclusive() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("(
1a,1b
]");
Osgi
VersionRange range = parseValid("(
1.0.0.a,1.0.0.b
]");
assertNotContains(range, "1
a");
assertNotContains(range, "1
-
a");
assertContains(range, "1
b");
assertContains(range, "1
-
b");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
}
}
@Test
@Test
public void testLowerBoundExclusiveUpperBoundExclusive() {
public void testLowerBoundExclusiveUpperBoundExclusive() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("(1,3)");
Osgi
VersionRange range = parseValid("(1,3)");
assertNotContains(range, "1");
assertNotContains(range, "1");
assertContains(range, "2-SNAPSHOT");
assertContains(range, "2-SNAPSHOT");
assertNotContains(range, "3");
assertNotContains(range, "3");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
}
}
@Test
@Test
public void testSingleVersion() {
public void testSingleVersion() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("[1
]");
Osgi
VersionRange range = parseValid("[1
,1
]");
assertContains(range, "1");
assertContains(range, "1");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
range = parseValid("[1,1]");
range = parseValid("[1,1]");
assertContains(range, "1");
assertContains(range, "1");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
}
}
@Test
@Test
public void testSingleWildcardVersion() {
public void testSingleWildcardVersion() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("
[
1.2
.*]
");
Osgi
VersionRange range = parseValid("
1.2
");
assertContains(range, "1.2-alpha-1");
assertContains(range, "1.2-alpha-1");
assertContains(range, "1.2-SNAPSHOT");
assertContains(range, "1.2-SNAPSHOT");
assertContains(range, "1.2");
assertContains(range, "1.2");
assertContains(range, "1.2.9999999");
assertContains(range, "1.2.9999999");
Kopieren
Kopiert
Kopieren
Kopiert
assert
Not
Contains(range, "1.3-rc-1");
assert
Contains(range, "1.3-rc-1");
assertContains(range, "1.9");
assertContains(range, "9");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
}
}
@Test
@Test
public void testMissingOpenCloseDelimiter() {
public void testMissingOpenCloseDelimiter() {
Kopieren
Kopiert
Kopieren
Kopiert
parse
Inv
alid("1.0");
parse
V
alid("1.0");
}
}
@Test
@Test
public void testMissingOpenDelimiter() {
public void testMissingOpenDelimiter() {
parseInvalid("1.0]");
parseInvalid("1.0]");
parseInvalid("1.0)");
parseInvalid("1.0)");
}
}
@Test
@Test
public void testMissingCloseDelimiter() {
public void testMissingCloseDelimiter() {
parseInvalid("[1.0");
parseInvalid("[1.0");
parseInvalid("(1.0");
parseInvalid("(1.0");
}
}
@Test
@Test
public void testTooManyVersions() {
public void testTooManyVersions() {
parseInvalid("[1,2,3]");
parseInvalid("[1,2,3]");
parseInvalid("(1,2,3)");
parseInvalid("(1,2,3)");
parseInvalid("[1,2,3)");
parseInvalid("[1,2,3)");
}
}
@Test
@Test
public void testSnapshotAndReleaseWithMinimum() {
public void testSnapshotAndReleaseWithMinimum() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("[4.0.0.min,5)");
Osgi
VersionRange range = parseValid("[4.0.0.min,5)");
Kopieren
Kopiert
Kopieren
Kopiert
assert
Contains(range, "4.0-alpha-1");
assert
Not
Contains(range, "4.0-alpha-1");
assert
Contains(range, "4.0-SNAPSHOT");
assert
Not
Contains(range, "4.0-SNAPSHOT");
assert
Contains(range, "4.0.0-SNAPSHOT");
assert
Not
Contains(range, "4.0.0-SNAPSHOT");
assertContains(range, "4.min");
assertContains(range, "4.99");
assertContains(range, "4.99");
assertNotContains(range, "5");
assertNotContains(range, "5");
assertEquals(range, parseValid(range.toString()));
assertEquals(range, parseValid(range.toString()));
}
}
@Test
@Test
public void testSnapshotAndReleaseWithoutMinimum() {
public void testSnapshotAndReleaseWithoutMinimum() {
Kopieren
Kopiert
Kopieren
Kopiert
Generic
VersionRange range = parseValid("[4.0.0,5)");
Osgi
VersionRange range = parseValid("[4.0.0,5)");
assertNotContains(range, "4.0-alpha-1");
assertNotContains(range, "4.0-SNAPSHOT");
assertNotContains(range, "4.0.0-SNAPSHOT");
assertContains(range, "4.99.99");
assertNotContains(range, "5");
assertContains(range, "5.0.0-SNAPSHOT");
Text moved with changes to lines 163-168 (98.1% similarity)
assertEquals(range, parseValid(range.toString()));
}
@Test
public void testSnapshotAndReleaseWithMinAndMax() {
GenericVersionRange range = parseValid("[4.min,5.min)");
assertContains(range, "4.0-alpha-1");
assertContains(range, "4.0-alpha-1");
assertContains(range, "4.0-SNAPSHOT");
assertContains(range, "4.0-SNAPSHOT");
assertContains(range, "4.0.0-SNAPSHOT");
assertContains(range, "4.0.0-SNAPSHOT");
assertContains(range, "4.99.99");
assertContains(range, "4.99.99");
assertNotContains(range, "5");
assertNotContains(range, "5");
assertNotContains(range, "5.0.0-SNAPSHOT");
assertNotContains(range, "5.0.0-SNAPSHOT");
Kopieren
Kopiert
Kopieren
Kopiert
Text moved with changes from lines 155-160 (98.1% similarity)
assertNotContains(range,
"5-alpha-1");
assertEquals(range, parseValid(range.toString()));
}
@Test
public void testSnapshotAndReleaseWithMinAndMax() {
OsgiVersionRange range = parseValid("[4.0.0.min,5.0.0.min)");
assertNotContains(range, "4.0-alpha-1");
assertNotContains(range, "4.0-SNAPSHOT");
assertNotContains(range,
"4.0.0-SNAPSHOT");
assertContains(range, "4.0.0.min");
assertContains(range, "4.0.0-min");
assertContains(range, "4.0.0-minimum");
assertContains(range, "4.99.99");
assertContains(range, "5");
assertContains(range, "5.0.0-SNAPSHOT");
assertContains(range,
"5-alpha-1");
assertNotContains(range, "5-rc");
assertNotContains(range, "5-rc");
Kopieren
Kopiert
Kopieren
Kopiert
assertNotContains(range, "5-
ga
");
assertContains(range, "5-ga");
assertContains(range, "5-mi");
assertNotContains(range, "5-
min");
assertNotContains(range, "5-minimum
");
}
}
}
}
0
0
Gespeicherte Diffs
Originaltext
Datei öffnen
/* * (C) Copyright 2017 Code-House, Łukasz Dywicki. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.eclipse.aether.util.version; import org.code_house.maven.osgi.resolver.test.VersionRangeTest; import org.eclipse.aether.version.InvalidVersionSpecificationException; import org.junit.Test; import static org.junit.Assert.*; /** * Customized version of aether generic version. Located here to verify {@link VersionRangeTest} and to track eventual * changes in aether's logic. */ public class GenericVersionRangeTest extends VersionRangeTest<GenericVersionRange, GenericVersion> { protected GenericVersion newVersion(String version) { return new GenericVersion(version); } protected GenericVersionRange parseValid(String range) { try { return new GenericVersionRange(range); } catch (InvalidVersionSpecificationException e) { AssertionError error = new AssertionError(range + " should be valid but failed to parse due to: " + e.getMessage()); error.initCause(e); throw error; } } protected void parseInvalid(String range) { try { new GenericVersionRange(range); fail(range + " should be invalid"); } catch (InvalidVersionSpecificationException e) { assertTrue(true); } } @Test public void testLowerBoundInclusiveUpperBoundInclusive() { GenericVersionRange range = parseValid("[1,2]"); assertContains(range, "1"); assertContains(range, "1.1-SNAPSHOT"); assertContains(range, "2"); assertEquals(range, parseValid(range.toString())); } @Test public void testLowerBoundInclusiveUpperBoundExclusive() { GenericVersionRange range = parseValid("[1.2.3.4.5,1.2.3.4.6)"); assertContains(range, "1.2.3.4.5"); assertNotContains(range, "1.2.3.4.6"); assertEquals(range, parseValid(range.toString())); } @Test public void testLowerBoundExclusiveUpperBoundInclusive() { GenericVersionRange range = parseValid("(1a,1b]"); assertNotContains(range, "1a"); assertContains(range, "1b"); assertEquals(range, parseValid(range.toString())); } @Test public void testLowerBoundExclusiveUpperBoundExclusive() { GenericVersionRange range = parseValid("(1,3)"); assertNotContains(range, "1"); assertContains(range, "2-SNAPSHOT"); assertNotContains(range, "3"); assertEquals(range, parseValid(range.toString())); } @Test public void testSingleVersion() { GenericVersionRange range = parseValid("[1]"); assertContains(range, "1"); assertEquals(range, parseValid(range.toString())); range = parseValid("[1,1]"); assertContains(range, "1"); assertEquals(range, parseValid(range.toString())); } @Test public void testSingleWildcardVersion() { GenericVersionRange range = parseValid("[1.2.*]"); assertContains(range, "1.2-alpha-1"); assertContains(range, "1.2-SNAPSHOT"); assertContains(range, "1.2"); assertContains(range, "1.2.9999999"); assertNotContains(range, "1.3-rc-1"); assertEquals(range, parseValid(range.toString())); } @Test public void testMissingOpenCloseDelimiter() { parseInvalid("1.0"); } @Test public void testMissingOpenDelimiter() { parseInvalid("1.0]"); parseInvalid("1.0)"); } @Test public void testMissingCloseDelimiter() { parseInvalid("[1.0"); parseInvalid("(1.0"); } @Test public void testTooManyVersions() { parseInvalid("[1,2,3]"); parseInvalid("(1,2,3)"); parseInvalid("[1,2,3)"); } @Test public void testSnapshotAndReleaseWithMinimum() { GenericVersionRange range = parseValid("[4.0.0.min,5)"); assertContains(range, "4.0-alpha-1"); assertContains(range, "4.0-SNAPSHOT"); assertContains(range, "4.0.0-SNAPSHOT"); assertContains(range, "4.99"); assertNotContains(range, "5"); assertEquals(range, parseValid(range.toString())); } @Test public void testSnapshotAndReleaseWithoutMinimum() { GenericVersionRange range = parseValid("[4.0.0,5)"); assertNotContains(range, "4.0-alpha-1"); assertNotContains(range, "4.0-SNAPSHOT"); assertNotContains(range, "4.0.0-SNAPSHOT"); assertContains(range, "4.99.99"); assertNotContains(range, "5"); assertContains(range, "5.0.0-SNAPSHOT"); assertEquals(range, parseValid(range.toString())); } @Test public void testSnapshotAndReleaseWithMinAndMax() { GenericVersionRange range = parseValid("[4.min,5.min)"); assertContains(range, "4.0-alpha-1"); assertContains(range, "4.0-SNAPSHOT"); assertContains(range, "4.0.0-SNAPSHOT"); assertContains(range, "4.99.99"); assertNotContains(range, "5"); assertNotContains(range, "5.0.0-SNAPSHOT"); assertNotContains(range, "5-alpha-1"); assertNotContains(range, "5-rc"); assertNotContains(range, "5-ga"); } } 0
Bearbeitung
Datei öffnen
/* * (C) Copyright 2017 Code-House, Łukasz Dywicki. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.code_house.maven.osgi.resolver.shared.version; import org.code_house.maven.osgi.resolver.test.VersionRangeTest; import org.eclipse.aether.version.InvalidVersionSpecificationException; import org.junit.Test; import static org.junit.Assert.*; /** * Test of OSGi version range filtering. */ public class OsgiVersionRangeTest extends VersionRangeTest<OsgiVersionRange, OsgiVersion> { @Override protected OsgiVersion newVersion(String version) { return new OsgiVersion(version); } @Override protected OsgiVersionRange parseValid(String range) { try { return new OsgiVersionRange(range); } catch (InvalidVersionSpecificationException e) { AssertionError error = new AssertionError(range + " should be valid but failed to parse due to: " + e.getMessage()); error.initCause(e); throw error; } } @Override protected void parseInvalid(String range) { try { new OsgiVersionRange(range); fail(range + " should be invalid"); } catch (InvalidVersionSpecificationException e) { assertTrue(true); } } @Test public void testLowerBoundInclusiveUpperBoundInclusive() { OsgiVersionRange range = parseValid("[1,2]"); assertContains(range, "1"); assertContains(range, "1.1-SNAPSHOT"); assertContains(range, "2"); assertEquals(range, parseValid(range.toString())); } @Test public void testLowerBoundInclusiveUpperBoundExclusive() { OsgiVersionRange range = parseValid("[1.2.3.4,1.2.3.6)"); assertContains(range, "1.2.3.4"); assertContains(range, "1.2.3.45"); assertContains(range, "1.2.3.5"); assertNotContains(range, "1.2.3.6"); assertEquals(range, parseValid(range.toString())); } @Test public void testLowerBoundExclusiveUpperBoundInclusive() { OsgiVersionRange range = parseValid("(1.0.0.a,1.0.0.b]"); assertNotContains(range, "1-a"); assertContains(range, "1-b"); assertEquals(range, parseValid(range.toString())); } @Test public void testLowerBoundExclusiveUpperBoundExclusive() { OsgiVersionRange range = parseValid("(1,3)"); assertNotContains(range, "1"); assertContains(range, "2-SNAPSHOT"); assertNotContains(range, "3"); assertEquals(range, parseValid(range.toString())); } @Test public void testSingleVersion() { OsgiVersionRange range = parseValid("[1,1]"); assertContains(range, "1"); assertEquals(range, parseValid(range.toString())); range = parseValid("[1,1]"); assertContains(range, "1"); assertEquals(range, parseValid(range.toString())); } @Test public void testSingleWildcardVersion() { OsgiVersionRange range = parseValid("1.2"); assertContains(range, "1.2-alpha-1"); assertContains(range, "1.2-SNAPSHOT"); assertContains(range, "1.2"); assertContains(range, "1.2.9999999"); assertContains(range, "1.3-rc-1"); assertContains(range, "1.9"); assertContains(range, "9"); assertEquals(range, parseValid(range.toString())); } @Test public void testMissingOpenCloseDelimiter() { parseValid("1.0"); } @Test public void testMissingOpenDelimiter() { parseInvalid("1.0]"); parseInvalid("1.0)"); } @Test public void testMissingCloseDelimiter() { parseInvalid("[1.0"); parseInvalid("(1.0"); } @Test public void testTooManyVersions() { parseInvalid("[1,2,3]"); parseInvalid("(1,2,3)"); parseInvalid("[1,2,3)"); } @Test public void testSnapshotAndReleaseWithMinimum() { OsgiVersionRange range = parseValid("[4.0.0.min,5)"); assertNotContains(range, "4.0-alpha-1"); assertNotContains(range, "4.0-SNAPSHOT"); assertNotContains(range, "4.0.0-SNAPSHOT"); assertContains(range, "4.min"); assertContains(range, "4.99"); assertNotContains(range, "5"); assertEquals(range, parseValid(range.toString())); } @Test public void testSnapshotAndReleaseWithoutMinimum() { OsgiVersionRange range = parseValid("[4.0.0,5)"); assertContains(range, "4.0-alpha-1"); assertContains(range, "4.0-SNAPSHOT"); assertContains(range, "4.0.0-SNAPSHOT"); assertContains(range, "4.99.99"); assertNotContains(range, "5"); assertNotContains(range, "5.0.0-SNAPSHOT"); assertEquals(range, parseValid(range.toString())); } @Test public void testSnapshotAndReleaseWithMinAndMax() { OsgiVersionRange range = parseValid("[4.0.0.min,5.0.0.min)"); assertNotContains(range, "4.0-alpha-1"); assertNotContains(range, "4.0-SNAPSHOT"); assertNotContains(range, "4.0.0-SNAPSHOT"); assertContains(range, "4.0.0.min"); assertContains(range, "4.0.0-min"); assertContains(range, "4.0.0-minimum"); assertContains(range, "4.99.99"); assertContains(range, "5"); assertContains(range, "5.0.0-SNAPSHOT"); assertContains(range, "5-alpha-1"); assertNotContains(range, "5-rc"); assertContains(range, "5-ga"); assertContains(range, "5-mi"); assertNotContains(range, "5-min"); assertNotContains(range, "5-minimum"); } } 0
Unterschied finden