|
| 1 | +"use strict"; |
| 2 | + |
| 3 | +import { Encoder } from "../../Tasks/EncodeSemverToInteger/encoder"; |
| 4 | + |
| 5 | +let minorBits = 5; |
| 6 | +let patchBits = 4; |
| 7 | +let preReleaseTagBits = 2; |
| 8 | +let preReleaseTagMap = { "rc": 2, "beta": 1, "alpha": 0, "unstable": 0 }; |
| 9 | +let preReleaseNumberBits = 9; |
| 10 | + |
| 11 | +describe("Simple encoding", () => { |
| 12 | + it(": '0.0.0-alpha.0' should be encoded to '0'.", () => { |
| 13 | + let encoder = new Encoder("0.0.0-alpha.0"); |
| 14 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 15 | + expect(code).toEqual(0); |
| 16 | + }); |
| 17 | + |
| 18 | + it(": '0.0.0-alpha.1' should be encoded to '1'.", () => { |
| 19 | + let encoder = new Encoder("0.0.0-alpha.1"); |
| 20 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 21 | + expect(code).toEqual(1); |
| 22 | + }); |
| 23 | + |
| 24 | + it(": '0.0.0-alpha.511' should be encoded to '511'.", () => { |
| 25 | + let encoder = new Encoder("0.0.0-alpha.511"); |
| 26 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 27 | + expect(code).toEqual(511); |
| 28 | + }); |
| 29 | + |
| 30 | + it(": '0.0.0-beta.0' should be encoded to '512'.", () => { |
| 31 | + let encoder = new Encoder("0.0.0-beta.0"); |
| 32 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 33 | + expect(code).toEqual(512); |
| 34 | + }); |
| 35 | + |
| 36 | + it(": '0.0.0-beta.511' should be encoded to '1023'.", () => { |
| 37 | + let encoder = new Encoder("0.0.0-beta.511"); |
| 38 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 39 | + expect(code).toEqual(1023); |
| 40 | + }); |
| 41 | + |
| 42 | + it(": '0.0.0-rc.0' should be encoded to '1024'.", () => { |
| 43 | + let encoder = new Encoder("0.0.0-rc.0"); |
| 44 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 45 | + expect(code).toEqual(1024); |
| 46 | + }); |
| 47 | + |
| 48 | + it(": '0.0.0' should be encoded to '2047'.", () => { |
| 49 | + let encoder = new Encoder("0.0.0"); |
| 50 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 51 | + expect(code).toEqual(2047); |
| 52 | + }); |
| 53 | + |
| 54 | + it(": '0.0.1' should be encoded to '4095'.", () => { |
| 55 | + let encoder = new Encoder("0.0.1"); |
| 56 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 57 | + expect(code).toEqual(4095); |
| 58 | + }); |
| 59 | + |
| 60 | + it(": '0.0.15' should be encoded to '32,767'.", () => { |
| 61 | + let encoder = new Encoder("0.0.15"); |
| 62 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 63 | + expect(code).toEqual(32767); |
| 64 | + }); |
| 65 | + |
| 66 | + it(": '0.1.15' should be encoded to '65,535'.", () => { |
| 67 | + let encoder = new Encoder("0.1.15"); |
| 68 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 69 | + expect(code).toEqual(65535); |
| 70 | + }); |
| 71 | + |
| 72 | + it(": '0.31.15' should be encoded to '1,048,575'.", () => { |
| 73 | + let encoder = new Encoder("0.31.15"); |
| 74 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 75 | + expect(code).toEqual(1048575); |
| 76 | + }); |
| 77 | + |
| 78 | + it(": '1.31.15' should be encoded to '2,097,151'.", () => { |
| 79 | + let encoder = new Encoder("1.31.15"); |
| 80 | + let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 81 | + expect(code).toEqual(2097151); |
| 82 | + }); |
| 83 | + |
| 84 | + // it(": '4095.31.15' should be encoded to '2,147,483,648'.", () => { |
| 85 | + // let encoder = new Encoder("4095.31.15"); |
| 86 | + // let code = encoder.encode(minorBits, patchBits, preReleaseTagBits, preReleaseTagMap, preReleaseNumberBits); |
| 87 | + // expect(code).toEqual(2147483648); |
| 88 | + // }); |
| 89 | +}); |
0 commit comments