public class org.graalvm.component.installer.VersionTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.component.installer.VersionTest
  super_class: java.lang.Object
{
  public org.junit.rules.ExpectedException exception;
    descriptor: Lorg/junit/rules/ExpectedException;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.Rule()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 38
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 39
            aload 0 /* this */
            invokestatic org.junit.rules.ExpectedException.none:()Lorg/junit/rules/ExpectedException;
            putfield org.graalvm.component.installer.VersionTest.exception:Lorg/junit/rules/ExpectedException;
         2: .line 38
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/VersionTest;

  public void testNoVersionInfimum();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 43
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.toString:()Ljava/lang/String;
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            astore 1 /* otherNullVersion */
        start local 1 // org.graalvm.component.installer.Version otherNullVersion
         1: .line 45
            aload 1 /* otherNullVersion */
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.compareTo:(Lorg/graalvm/component/installer/Version;)I
            ifle 2
            iconst_1
            goto 3
      StackMap locals: org.graalvm.component.installer.Version
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 46
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            aload 1 /* otherNullVersion */
            invokevirtual org.graalvm.component.installer.Version.compareTo:(Lorg/graalvm/component/installer/Version;)I
            ifge 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: invokestatic org.junit.Assert.assertTrue:(Z)V
         7: .line 48
            aload 1 /* otherNullVersion */
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         8: .line 49
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            aload 1 /* otherNullVersion */
            invokevirtual org.graalvm.component.installer.Version.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         9: .line 50
            return
        end local 1 // org.graalvm.component.installer.Version otherNullVersion
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   10     0              this  Lorg/graalvm/component/installer/VersionTest;
            1   10     1  otherNullVersion  Lorg/graalvm/component/installer/Version;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testNoVersionEqualToSelf();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 54
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.compareTo:(Lorg/graalvm/component/installer/Version;)I
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic org.junit.Assert.assertTrue:(Z)V
         3: .line 55
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            getstatic org.graalvm.component.installer.Version.NO_VERSION:Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         4: .line 56
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/graalvm/component/installer/VersionTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testNormalizeTo4Numbers();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 60
            ldc "1.0.0.0-0.r"
            ldc "1.0-r"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 61
            ldc "1.0.0.0-0.r"
            ldc "1.0.0-r"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 62
            ldc "1.0.0.0-0.r"
            ldc "1.0.0.0-r"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 63
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/component/installer/VersionTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testFailOnTooManyVersions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 67
            aload 0 /* this */
            getfield org.graalvm.component.installer.VersionTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Ljava/lang/IllegalArgumentException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         1: .line 68
            ldc "1.0.0.0.0-r"
            ldc "1.0.0.0.0-r"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 69
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/VersionTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testFailOnTooFewVersions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 73
            aload 0 /* this */
            getfield org.graalvm.component.installer.VersionTest.exception:Lorg/junit/rules/ExpectedException;
            ldc Ljava/lang/IllegalArgumentException;
            invokevirtual org.junit.rules.ExpectedException.expect:(Ljava/lang/Class;)V
         1: .line 74
            ldc "1-r"
            ldc "1.0.0.0.0-r"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 75
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/VersionTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static void assertOlder(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String older
        start local 1 // java.lang.String newer
         0: .line 78
            new java.lang.StringBuilder
            dup
            ldc "Versions didn't compare "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* older */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " < "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* newer */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         1: .line 79
            aload 0 /* older */
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            aload 1 /* newer */
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.compareTo:(Lorg/graalvm/component/installer/Version;)I
            ifge 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: java.lang.String
         2: iconst_0
         3: .line 78
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.lang.String int
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
         4: .line 80
            aload 0 /* older */
            aload 1 /* newer */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         5: .line 81
            return
        end local 1 // java.lang.String newer
        end local 0 // java.lang.String older
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  older  Ljava/lang/String;
            0    6     1  newer  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      older  
      newer  

  public void testVersionOrder();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 85
            bipush 18
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 86
            ldc "1.0"
            aastore
            dup
            iconst_1
         2: .line 87
            ldc "1.0.1"
            aastore
            dup
            iconst_2
         3: .line 88
            ldc "1.1.0"
            aastore
            dup
            iconst_3
         4: .line 89
            ldc "1.1.0-0.dev.1"
            aastore
            dup
            iconst_4
         5: .line 90
            ldc "1.1.0-0.dev.2"
            aastore
            dup
            iconst_5
         6: .line 91
            ldc "1.1.0-0.dev8"
            aastore
            dup
            bipush 6
         7: .line 92
            ldc "1.1.0-0.dev.10"
            aastore
            dup
            bipush 7
         8: .line 93
            ldc "1.1.0-0.dev13"
            aastore
            dup
            bipush 8
         9: .line 94
            ldc "1.1.0-1.beta1"
            aastore
            dup
            bipush 9
        10: .line 95
            ldc "1.1.0-1.beta-3"
            aastore
            dup
            bipush 10
        11: .line 96
            ldc "1.1.0-1.beta.9"
            aastore
            dup
            bipush 11
        12: .line 97
            ldc "1.1.0-1.beta.10"
            aastore
            dup
            bipush 12
        13: .line 98
            ldc "1.1.0-1.beta.13"
            aastore
            dup
            bipush 13
        14: .line 99
            ldc "1.1.0-1.beta15"
            aastore
            dup
            bipush 14
        15: .line 100
            ldc "1.1.0-2"
            aastore
            dup
            bipush 15
        16: .line 101
            ldc "1.1.0.2-0.rc.1"
            aastore
            dup
            bipush 16
        17: .line 102
            ldc "1.1.0.2-1"
            aastore
            dup
            bipush 17
        18: .line 103
            ldc "1.1.0.3"
            aastore
        19: .line 85
            astore 1 /* versionSequence */
        start local 1 // java.lang.String[] versionSequence
        20: .line 106
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        21: goto 28
        22: .line 107
      StackMap locals: java.lang.String[] int
      StackMap stack:
            iload 2 /* i */
            iconst_1
            iadd
            istore 3 /* j */
        start local 3 // int j
        23: goto 26
        24: .line 108
      StackMap locals: int
      StackMap stack:
            aload 1 /* versionSequence */
            iload 2 /* i */
            aaload
            aload 1 /* versionSequence */
            iload 3 /* j */
            aaload
            invokestatic org.graalvm.component.installer.VersionTest.assertOlder:(Ljava/lang/String;Ljava/lang/String;)V
        25: .line 107
            iinc 3 /* j */ 1
      StackMap locals:
      StackMap stack:
        26: iload 3 /* j */
            aload 1 /* versionSequence */
            arraylength
            if_icmplt 24
        end local 3 // int j
        27: .line 106
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 2 /* i */
            aload 1 /* versionSequence */
            arraylength
            if_icmplt 22
        end local 2 // int i
        29: .line 111
            return
        end local 1 // java.lang.String[] versionSequence
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   30     0             this  Lorg/graalvm/component/installer/VersionTest;
           20   30     1  versionSequence  [Ljava/lang/String;
           21   29     2                i  I
           23   27     3                j  I
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testComponentizeVersion();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 115
            ldc "1.0.0.0-0.rc.1"
            ldc "1.0.0-rc1"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.toString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 116
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/VersionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDisplayReleaseVersions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 120
            ldc "1.0.0"
            ldc "1.0.0.0"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.displayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 121
            ldc "1.0.0"
            ldc "1.0.0.0-1"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.displayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 122
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/VersionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDisplayPreReleases();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 126
            ldc "1.0.0-rc1"
            ldc "1.0.0.0-1.rc.1"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.displayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 127
            ldc "1.0.0-rc9"
            ldc "1.0.0.0-1.rc.9"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.displayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 128
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/VersionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDisplayPreReleaseBuilds();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 132
            ldc "1.0.0-beta1.1"
            ldc "1.0.0.0-1.beta.1.1"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.displayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 133
            ldc "1.0.0-beta1.b2"
            ldc "1.0.0.0-1.beta.1.b.2"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.displayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         2: .line 134
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/component/installer/VersionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testDisplayWildardVersions();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.graalvm.component.installer.VersionTest this
         0: .line 138
            ldc "1.0.0-beta1.1"
            ldc "1.0.0.0-*.beta.1.1"
            invokestatic org.graalvm.component.installer.Version.fromString:(Ljava/lang/String;)Lorg/graalvm/component/installer/Version;
            invokevirtual org.graalvm.component.installer.Version.displayString:()Ljava/lang/String;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 139
            return
        end local 0 // org.graalvm.component.installer.VersionTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/component/installer/VersionTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "VersionTest.java"