OSDN Git Service

rename package
[jindolf/JinParser.git] / src / test / java / jp / osdn / jindolf / parser / content / Bseq.java
1 /*
2  */
3
4 package jp.osdn.jindolf.parser.content;
5
6 import java.io.ByteArrayInputStream;
7 import java.util.ArrayList;
8 import java.util.List;
9
10 /**
11  * テスト用byte列シーケンスを生成する。
12  */
13 class Bseq {
14
15     private Bseq(){
16     }
17
18     static ByteArrayInputStream byteStream(int... array) {
19         byte[] ba = new byte[array.length];
20         int idx = 0;
21         for (int iVal : array) {
22             byte bVal = (byte) (iVal & 255);
23             ba[idx++] = bVal;
24         }
25         return new ByteArrayInputStream(ba);
26     }
27
28     static ByteArrayInputStream byteIs(CharSequence seq) {
29         byte[] bs = byteArray(seq);
30         ByteArrayInputStream result = new ByteArrayInputStream(bs);
31         return result;
32     }
33
34     static byte[] byteArray(CharSequence seq) {
35         byte[] result;
36         List<Byte> byteList = new ArrayList<>();
37         int length = seq.length();
38         for (int pos = 0; pos < length; pos++) {
39             int val = 0;
40             char ch = seq.charAt(pos);
41             if ('0' <= ch && ch <= '9') {
42                 val += ch - '0';
43             } else if ('a' <= ch && ch <= 'f') {
44                 val += ch - 'a' + 10;
45             } else if ('A' <= ch && ch <= 'F') {
46                 val += ch - 'A' + 10;
47             } else {
48                 continue;
49             }
50             pos++;
51             if (pos >= length) {
52                 break;
53             }
54             val *= 16;
55             ch = seq.charAt(pos);
56             if ('0' <= ch && ch <= '9') {
57                 val += ch - '0';
58             } else if ('a' <= ch && ch <= 'f') {
59                 val += ch - 'a' + 10;
60             } else if ('A' <= ch && ch <= 'F') {
61                 val += ch - 'A' + 10;
62             } else {
63                 continue;
64             }
65             byteList.add((byte) val);
66         }
67         result = new byte[byteList.size()];
68         for (int pos = 0; pos < result.length; pos++) {
69             result[pos] = byteList.get(pos);
70         }
71         return result;
72     }
73
74 }