bitor bitxor bitand upgraded. Help pages rewritten. Bug #14654 fixed
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / bitand.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
4 // Copyright (C) 2016 - Samuel GOUGEON
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- CLI SHELL MODE -->
10
11 icodes = [0 1 2 4 8 11 12 14 18];
12
13 // Tests 1 :
14 //  - all inttypes are accepted
15 //  - Rows, columns, and matrices are accepted
16 // =============================================================================
17
18 // test 1.1
19 A = [0 1 0 1];
20 B = [0 0 1 1];
21 C = [0 0 0 1];
22 for it = icodes
23     a = iconvert(A, it);
24     b = iconvert(B, it);
25     c = iconvert(C, it);
26     assert_checkequal(bitand(a, b), c);
27     assert_checkequal(typeof(c), typeof(a));
28 end
29
30 // test 1.2
31 A = [0 1 ; 0 1];
32 B = [0 0 ; 1 1];
33 C = [0 0 ; 0 1];
34 for it = icodes
35     a = iconvert(A, it);
36     b = iconvert(B, it);
37     c = iconvert(C, it);
38     assert_checkequal(bitand(a, b), c);
39     assert_checkequal(typeof(c), typeof(a));
40 end
41
42 // test 1.3
43 A = [0 ; 1 ; 0 ; 1];
44 B = [0 ; 0 ; 1 ; 1];
45 C = [0 ; 0 ; 0 ; 1];
46 for it = icodes
47     a = iconvert(A, it);
48     b = iconvert(B, it);
49     c = iconvert(C, it);
50     assert_checkequal(bitand(a, b), c);
51     assert_checkequal(typeof(c), typeof(a));
52 end
53
54
55 // Tests 2 : mismatching input types must all be accepted
56 // =============================================================================
57 A = [0 1 0 1];
58 B = [0 0 1 1];
59 for i = 2:length(icodes)-1
60     for j = i+1:length(icodes)
61         a = iconvert(A,icodes(i));
62         b = iconvert(B,icodes(j));
63         assert_checktrue(execstr("bitand(a, b);","errcatch")==0);
64     end
65 end
66
67
68 // Tests 3 : size of output
69 // =============================================================================
70 A = floor(100 * rand(100,20));
71 B = floor(100 * rand(100,20));
72 C = floor(100 * rand(1,1));
73 for it = icodes
74     a = iconvert(A, it);
75     b = iconvert(B, it);
76     c = iconvert(C, it);
77     d = bitand(a,b);
78     assert_checkequal(size(a), size(d));
79     d = bitand(a,c);
80     assert_checkequal(size(a), size(d));
81     d = bitand(c,a);
82     assert_checkequal(size(a), size(d));
83 end
84
85 // Tests 4 : decimal numbers > 2^52  are  accepted
86 // =============================================================================
87 for i = 301:400
88     a = sum(2 .^(i- (0:10:60)));
89     b = sum(2 .^(i- (5:5:40)));
90     c = sum(2 .^(i- (10:10:40)));
91     assert_checkequal(bitand(a,b), c);
92 end
93
94 // Test 5
95 // =============================================================================
96
97 A = [ ..
98     299.    258.    314.    359.    616.    152.    834.    68.     175.    734.    749.    976.    261.    214.    94.     217.    754.    245.    693.    557.  ; ..
99     409.    783.    234.    932.    811.    552.    272.    375.    551.    373.    477.    784.    736.    15.     712.    419.    204.    949.    12.     682.  ; ..
100     261.    273.    627.    652.    209.    280.    855.    221.    243.    720.    430.    936.    767.    48.     191.    731.    896.    18.     372.    527.  ; ..
101     646.    848.    629.    446.    624.    194.    89.     948.    217.    786.    873.    374.    400.    215.    302.    766.    804.    442.    285.    476.  ; ..
102     654.    127.    42.     559.    679.    811.    872.    769.    604.    453.    47.     220.    447.    333.    385.    915.    418.    270.    85.     583.  ; ..
103     560.    432.    600.    158.    280.    327.    874.    625.    689.    178.    600.    19.     444.    423.    303.    128.    653.    420.    394.    99.   ; ..
104     161.    739.    408.    134.    775.    955.    86.     133.    207.    589.    276.    644.    312.    819.    190.    996.    999.    969.    776.    353.  ; ..
105     765.    53.     958.    530.    658.    567.    665.    447.    672.    549.    132.    651.    4.      114.    379.    941.    971.    713.    490.    395.  ; ..
106     697.    613.    118.    798.    627.    430.    475.    538.    286.    324.    750.    550.    701.    298.    567.    106.    189.    483.    25.     793.  ; ..
107     89.     809.    27.     587.    151.    393.    839.    811.    452.    286.    304.    23.     501.    770.    658.    467.    482.    771.    246.    464.  ; ..
108     198.    192.    364.    532.    417.    391.    730.    442.    274.    992.    529.    85.     786.    984.    805.    23.     867.    843.    185.    994.  ; ..
109     259.    541.    18.     303.    656.    875.    990.    0.      347.    357.    376.    801.    735.    490.    643.    878.    319.    587.    287.    152.  ; ..
110     509.    415.    752.    82.     540.    526.    638.    658.    966.    193.    488.    221.    473.    160.    131.    80.     627.    399.    464.    959.  ; ..
111     167.    286.    292.    201.    715.    985.    230.    174.    792.    303.    914.    245.    945.    427.    225.    920.    110.    401.    873.    999.  ; ..
112     340.    511.    379.    221.    206.    132.    488.    450.    888.    4.      664.    41.     652.    387.    620.    998.    2.      873.    998.    347.  ; ..
113     895.    767.    977.    562.    323.    323.    165.    765.    843.    849.    546.    963.    938.    980.    650.    195.    653.    131.    503.    220.  ; ..
114     667.    378.    74.     594.    248.    601.    77.     723.    984.    815.    6.      21.     240.    909.    668.    987.    357.    587.    33.     127.  ; ..
115     25.     934.    150.    336.    74.     154.    443.    790.    951.    998.    174.    670.    292.    482.    672.    424.    340.    202.    314.    513.  ; ..
116     31.     488.    191.    944.    278.    751.    925.    113.    495.    689.    377.    76.     653.    665.    141.    868.    811.    725.    582.    886.  ; ..
117     427.    998.    456.    225.    892.    31.     275.    852.    313.    652.    564.    34.     993.    246.    407.    45.     764.    445.    354.    343.  ; ..
118     108.    593.    580.    61.     718.    140.    942.    652.    683.    265.    647.    444.    449.    771.    627.    649.    29.     372.    573.    579.  ; ..
119     767.    892.    475.    334.    514.    573.    668.    396.    876.    24.     506.    323.    509.    899.    448.    58.     395.    648.    715.    774.  ; ..
120     373.    995.    364.    956.    981.    351.    157.    269.    143.    430.    484.    356.    377.    915.    403.    238.    629.    11.     91.     145.  ; ..
121     151.    481.    266.    111.    930.    313.    117.    979.    997.    273.    556.    689.    92.     986.    587.    992.    953.    294.    152.    792.  ; ..
122     721.    77.     478.    875.    541.    562.    820.    835.    301.    650.    504.    355.    300.    207.    115.    255.    500.    605.    84.     53.   ; ..
123     539.    68.     214.    955.    98.     536.    11.     867.    752.    733.    815.    298.    978.    631.    768.    114.    800.    714.    995.    136.  ; ..
124     145.    567.    792.    271.    225.    858.    442.    355.    681.    444.    94.     318.    786.    911.    234.    507.    84.     713.    310.    822.  ; ..
125     745.    599.    365.    664.    288.    836.    28.     930.    794.    749.    46.     83.     931.    575.    589.    469.    336.    233.    728.    53.   ; ..
126     257.    106.    548.    68.     115.    204.    609.    511.    922.    248.    823.    262.    976.    691.    320.    29.     835.    587.    676.    306.  ; ..
127     770.    381.    844.    771.    219.    382.    9.      531.    351.    276.    557.    505.    146.    903.    742.    790.    853.    837.    521.    654.  ; ..
128     997.    259.    58.     886.    395.    969.    997.    454.    871.    307.    393.    61.     41.     727.    498.    93.     134.    389.    864.    331.  ; ..
129     845.    6.      504.    575.    678.    609.    267.    800.    331.    11.     584.    214.    770.    298.    903.    748.    395.    210.    46.     920.  ; ..
130     646.    810.    600.    729.    615.    937.    384.    948.    593.    645.    756.    781.    405.    875.    670.    467.    226.    760.    617.    627.  ; ..
131     720.    266.    563.    265.    318.    59.     756.    76.     436.    716.    295.    882.    114.    379.    853.    192.    874.    640.    22.     402.  ; ..
132     674.    124.    517.    290.    650.    84.     915.    23.     282.    854.    893.    784.    485.    87.     175.    82.     635.    489.    632.    163.  ; ..
133     354.    187.    518.    781.    840.    296.    931.    485.    497.    427.    773.    403.    830.    635.    764.    916.    747.    97.     968.    466.  ; ..
134     327.    112.    124.    957.    342.    503.    810.    555.    205.    975.    61.     382.    163.    225.    300.    234.    409.    241.    82.     382.  ; ..
135     23.     664.    936.    844.    491.    38.     344.    243.    922.    383.    447.    270.    844.    446.    513.    898.    986.    644.    451.    205.  ; ..
136     593.    145.    411.    132.    974.    78.     500.    146.    292.    278.    476.    121.    102.    310.    625.    147.    762.    635.    721.    900.  ; ..
137     924.    430.    751.    807.    771.    799.    864.    389.    914.    513.    174.    867.    514.    588.    543.    816.    603.    129.    643.    844.  ; ..
138     672.    614.    228.    945.    547.    181.    239.    481.    205.    849.    836.    22.     590.    727.    936.    320.    684.    801.    680.    194.  ; ..
139     484.    216.    206.    500.    208.    312.    864.    40.     21.     168.    461.    674.    244.    314.    918.    768.    617.    671.    15.     514.  ; ..
140     641.    968.    900.    371.    797.    247.    871.    646.    56.     797.    91.     714.    323.    178.    865.    88.     148.    194.    832.    203.  ; ..
141     594.    663.    567.    914.    981.    590.    538.    815.    312.    252.    56.     856.    392.    491.    864.    427.    873.    710.    485.    412.  ; ..
142     106.    519.    458.    287.    327.    848.    45.     827.    772.    79.     884.    754.    732.    752.    784.    546.    129.    379.    373.    843.  ; ..
143     808.    867.    999.    316.    852.    684.    656.    680.    90.     994.    127.    139.    812.    166.    914.    255.    452.    178.    97.     639.  ; ..
144     516.    287.    322.    770.    554.    275.    196.    909.    769.    697.    440.    880.    499.    574.    216.    824.    72.     10.     365.    652.  ; ..
145     61.     143.    418.    27.     254.    767.    369.    13.     275.    17.     448.    319.    445.    304.    901.    638.    399.    572.    219.    129.  ; ..
146     16.     187.    588.    110.    674.    63.     317.    50.     515.    773.    802.    897.    196.    684.    519.    7.      101.    734.    853.    491.  ; ..
147     509.    619.    630.    558.    308.    73.     52.     977.    395.    177.    243.    944.    88.     72.     93.     901.    64.     222.    285.    54.   ; ..
148     469.    217.    542.    54.     17.     567.    365.    760.    83.     137.    493.    687.    904.    240.    157.    193.    547.    620.    109.    749.  ; ..
149     528.    445.    451.    915.    864.    283.    429.    348.    335.    544.    478.    559.    522.    828.    832.    910.    283.    731.    943.    703.  ; ..
150     33.     408.    985.    108.    295.    241.    496.    641.    309.    911.    395.    874.    501.    390.    967.    563.    616.    310.    10.     313.  ; ..
151     711.    636.    740.    559.    312.    44.     314.    408.    519.    888.    365.    351.    607.    884.    846.    262.    928.    288.    226.    2.    ; ..
152     790.    497.    722.    600.    728.    794.    480.    237.    9.      518.    190.    325.    598.    489.    735.    399.    640.    799.    866.    952.  ; ..
153     623.    739.    101.    588.    735.    343.    47.     566.    868.    947.    452.    867.    477.    829.    912.    768.    765.    234.    706.    451.  ; ..
154     799.    0.      631.    93.     262.    521.    49.     703.    353.    992.    488.    304.    41.     136.    576.    949.    704.    932.    537.    135.  ; ..
155     42.     428.    478.    116.    784.    302.    998.    566.    623.    448.    840.    604.    598.    832.    580.    972.    41.     685.    524.    108.  ; ..
156     867.    878.    372.    991.    411.    984.    990.    602.    153.    795.    155.    70.     1.      222.    367.    442.    888.    792.    833.    68.   ; ..
157     345.    809.    666.    369.    506.    415.    235.    611.    776.    218.    663.    588.    976.    542.    146.    608.    644.    148.    533.    351.  ; ..
158     798.    819.    405.    135.    124.    424.    764.    492.    51.     832.    761.    445.    235.    42.     260.    618.    337.    401.    314.    174.  ; ..
159     372.    326.    944.    619.    861.    347.    448.    217.    286.    661.    868.    427.    124.    42.     828.    155.    868.    748.    405.    229.  ; ..
160     186.    525.    12.     276.    670.    18.     807.    441.    635.    553.    781.    722.    521.    95.     383.    390.    131.    65.     116.    862.  ; ..
161     505.    795.    299.    636.    965.    834.    435.    979.    413.    199.    368.    584.    406.    502.    13.     781.    682.    763.    405.    244.  ; ..
162     342.    772.    709.    901.    545.    890.    787.    525.    795.    131.    671.    576.    961.    666.    730.    899.    10.     608.    624.    470.  ; ..
163     582.    973.    114.    632.    856.    17.     656.    690.    136.    919.    778.    705.    895.    690.    463.    929.    841.    544.    359.    254.  ; ..
164     92.     791.    288.    280.    840.    859.    269.    187.    524.    200.    522.    841.    71.     167.    158.    826.    620.    915.    185.    211.  ; ..
165     639.    109.    423.    678.    825.    469.    543.    68.     732.    494.    936.    579.    893.    204.    225.    431.    993.    491.    128.    657.  ; ..
166     328.    929.    42.     285.    76.     791.    965.    359.    266.    880.    69.     423.    880.    811.    885.    567.    589.    240.    823.    105.  ; ..
167     ];
168
169 B = [ ..
170     511.    299.    529.    766.    739.    39.     125.    996.    368.    699.    914.    155.    428.    455.    616.    283.    424.    803.    615.    922.  ; ..
171     403.    223.    453.    985.    260.    337.    35.     632.    64.     113.    551.    688.    331.    580.    463.    859.    689.    839.    780.    362.  ; ..
172     827.    66.     978.    614.    218.    678.    161.    20.     560.    768.    596.    890.    553.    53.     853.    856.    480.    429.    772.    419.  ; ..
173     589.    677.    202.    42.     319.    256.    772.    61.     840.    507.    931.    68.     147.    638.    708.    406.    269.    599.    98.     105.  ; ..
174     298.    994.    102.    50.     811.    524.    521.    618.    997.    538.    934.    439.    592.    754.    812.    889.    399.    300.    884.    943.  ; ..
175     750.    321.    48.     310.    370.    948.    80.     245.    226.    670.    818.    373.    979.    272.    977.    20.     120.    839.    539.    242.  ; ..
176     605.    885.    102.    86.     269.    308.    723.    151.    307.    253.    61.     463.    588.    379.    777.    270.    910.    368.    147.    532.  ; ..
177     889.    20.     483.    246.    947.    795.    186.    755.    81.     768.    113.    88.     853.    511.    339.    190.    319.    312.    374.    662.  ; ..
178     724.    518.    73.     894.    321.    922.    883.    758.    406.    470.    227.    179.    192.    567.    854.    768.    53.     626.    860.    333.  ; ..
179     122.    726.    397.    287.    566.    459.    294.    34.     257.    61.     855.    504.    806.    761.    605.    73.     869.    799.    550.    568.  ; ..
180     702.    915.    256.    290.    123.    780.    939.    129.    985.    639.    863.    33.     535.    680.    742.    203.    797.    457.    750.    890.  ; ..
181     562.    646.    707.    169.    769.    226.    84.     970.    964.    322.    252.    971.    760.    240.    574.    836.    239.    469.    818.    351.  ; ..
182     250.    477.    828.    368.    794.    940.    381.    978.    719.    681.    475.    998.    863.    319.    31.     551.    822.    570.    913.    43.   ; ..
183     485.    2.      265.    453.    408.    613.    387.    298.    231.    101.    675.    471.    193.    689.    892.    701.    297.    835.    0.      390.  ; ..
184     59.     763.    740.    509.    933.    443.    469.    678.    101.    757.    858.    193.    778.    385.    10.     915.    297.    213.    829.    602.  ; ..
185     464.    368.    504.    384.    164.    290.    303.    505.    725.    900.    670.    738.    185.    477.    373.    457.    513.    458.    56.     130.  ; ..
186     27.     748.    605.    327.    664.    860.    805.    229.    783.    334.    335.    607.    373.    898.    564.    739.    274.    976.    896.    785.  ; ..
187     822.    203.    393.    286.    820.    856.    1.      856.    651.    735.    897.    974.    737.    489.    385.    907.    483.    719.    192.    307.  ; ..
188     485.    963.    211.    267.    26.     905.    63.     266.    993.    875.    65.     625.    529.    379.    420.    953.    737.    473.    975.    100.  ; ..
189     862.    5.      297.    449.    803.    679.    343.    818.    257.    94.     694.    717.    922.    623.    515.    97.     404.    265.    816.    470.  ; ..
190     382.    72.     303.    20.     784.    533.    143.    609.    203.    458.    301.    204.    678.    959.    238.    267.    689.    937.    49.     233.  ; ..
191     715.    389.    169.    756.    727.    788.    186.    267.    643.    929.    527.    430.    497.    189.    221.    100.    27.     120.    432.    738.  ; ..
192     647.    819.    212.    895.    358.    713.    298.    260.    240.    712.    118.    350.    699.    857.    60.     981.    446.    584.    499.    55.   ; ..
193     192.    133.    0.      22.     166.    403.    566.    520.    858.    848.    849.    904.    747.    928.    279.    444.    687.    694.    600.    943.  ; ..
194     897.    99.     69.     333.    903.    197.    327.    123.    715.    40.     90.     269.    693.    775.    938.    811.    732.    926.    177.    356.  ; ..
195     663.    854.    477.    8.      304.    187.    928.    77.     632.    990.    670.    266.    601.    550.    507.    947.    82.     46.     599.    822.  ; ..
196     767.    541.    101.    94.     47.     704.    96.     452.    535.    500.    868.    705.    610.    593.    450.    716.    799.    385.    707.    773.  ; ..
197     486.    204.    314.    298.    575.    404.    854.    43.     389.    61.     382.    374.    181.    588.    339.    497.    546.    456.    442.    621.  ; ..
198     686.    965.    283.    749.    721.    203.    728.    552.    515.    403.    165.    819.    396.    768.    694.    945.    827.    974.    731.    983.  ; ..
199     854.    259.    424.    411.    547.    831.    435.    292.    221.    576.    864.    325.    925.    746.    221.    207.    349.    701.    92.     182.  ; ..
200     371.    538.    721.    326.    337.    877.    355.    779.    357.    946.    475.    910.    872.    490.    596.    836.    813.    842.    410.    945.  ; ..
201     918.    17.     81.     719.    235.    392.    203.    474.    305.    289.    602.    729.    20.     814.    342.    123.    84.     105.    235.    261.  ; ..
202     956.    2.      998.    638.    592.    246.    503.    6.      610.    455.    484.    746.    333.    287.    330.    752.    308.    466.    841.    172.  ; ..
203     597.    418.    188.    671.    395.    833.    409.    798.    488.    80.     286.    95.     78.     307.    841.    263.    226.    487.    391.    266.  ; ..
204     943.    194.    655.    391.    827.    136.    535.    617.    290.    430.    832.    561.    294.    742.    751.    180.    134.    665.    523.    49.   ; ..
205     435.    988.    665.    431.    236.    357.    227.    998.    522.    999.    994.    41.     567.    335.    145.    994.    426.    281.    578.    727.  ; ..
206     454.    671.    465.    947.    500.    200.    393.    272.    820.    927.    60.     304.    130.    737.    296.    959.    963.    675.    933.    508.  ; ..
207     154.    937.    681.    253.    105.    707.    15.     962.    420.    629.    526.    982.    385.    549.    427.    574.    858.    359.    943.    479.  ; ..
208     808.    984.    404.    12.     327.    736.    555.    452.    336.    292.    668.    896.    153.    449.    229.    104.    775.    774.    90.     296.  ; ..
209     962.    209.    832.    459.    994.    745.    28.     950.    601.    367.    586.    261.    58.     299.    169.    864.    889.    232.    629.    637.  ; ..
210     883.    315.    811.    905.    368.    144.    43.     535.    483.    168.    443.    357.    109.    649.    800.    214.    39.     604.    4.      892.  ; ..
211     175.    421.    260.    805.    124.    888.    774.    110.    714.    405.    157.    351.    115.    199.    367.    774.    293.    256.    594.    827.  ; ..
212     104.    260.    341.    802.    159.    786.    825.    301.    53.     544.    174.    173.    673.    46.     114.    316.    427.    921.    580.    432.  ; ..
213     119.    747.    98.     71.     90.     751.    410.    912.    209.    57.     530.    564.    243.    59.     852.    657.    177.    88.     918.    691.  ; ..
214     891.    823.    471.    824.    324.    670.    468.    578.    494.    607.    697.    483.    595.    796.    808.    577.    328.    247.    146.    938.  ; ..
215     452.    490.    205.    820.    149.    920.    94.     123.    638.    518.    822.    542.    656.    441.    522.    616.    452.    830.    280.    304.  ; ..
216     185.    569.    779.    424.    272.    647.    780.    720.    883.    851.    490.    15.     59.     371.    211.    57.     705.    356.    796.    241.  ; ..
217     955.    164.    16.     293.    993.    706.    906.    848.    326.    978.    373.    603.    582.    787.    652.    334.    70.     847.    601.    660.  ; ..
218     715.    801.    480.    591.    995.    83.     734.    54.     749.    472.    989.    508.    8.      926.    31.     839.    407.    850.    431.    561.  ; ..
219     234.    295.    173.    250.    613.    34.     655.    847.    202.    132.    50.     594.    856.    109.    972.    501.    165.    188.    204.    718.  ; ..
220     292.    821.    997.    318.    0.      567.    741.    726.    493.    134.    906.    42.     925.    724.    81.     949.    162.    844.    251.    120.  ; ..
221     633.    724.    357.    46.     614.    24.     582.    735.    174.    473.    972.    125.    39.     411.    596.    9.      589.    550.    116.    488.  ; ..
222     92.     342.    197.    953.    436.    566.    460.    911.    597.    853.    361.    591.    343.    234.    469.    746.    637.    277.    731.    854.  ; ..
223     787.    779.    363.    286.    312.    329.    376.    562.    334.    81.     527.    887.    261.    224.    87.     798.    950.    864.    219.    192.  ; ..
224     834.    186.    570.    810.    805.    409.    454.    510.    480.    625.    113.    671.    465.    762.    506.    374.    419.    893.    334.    529.  ; ..
225     558.    249.    673.    876.    178.    677.    91.     658.    323.    915.    545.    943.    937.    823.    808.    278.    89.     607.    711.    492.  ; ..
226     509.    987.    573.    176.    783.    917.    233.    582.    392.    717.    792.    428.    113.    140.    624.    736.    11.     67.     577.    842.  ; ..
227     453.    376.    589.    29.     381.    286.    172.    202.    294.    688.    28.     421.    452.    616.    145.    681.    787.    744.    617.    54.   ; ..
228     142.    22.     846.    976.    861.    794.    156.    246.    293.    731.    348.    386.    203.    569.    215.    708.    257.    537.    136.    700.  ; ..
229     909.    106.    203.    747.    369.    674.    940.    848.    962.    167.    805.    705.    843.    839.    15.     240.    259.    751.    818.    126.  ; ..
230     400.    979.    549.    186.    223.    948.    530.    17.     735.    953.    144.    689.    370.    489.    968.    264.    446.    277.    651.    214.  ; ..
231     897.    393.    3.      268.    357.    824.    225.    565.    30.     994.    753.    955.    212.    842.    217.    695.    590.    160.    75.     335.  ; ..
232     9.      721.    909.    77.     816.    528.    495.    873.    701.    535.    785.    355.    678.    752.    243.    277.    4.      521.    258.    415.  ; ..
233     45.     277.    580.    861.    230.    496.    445.    615.    784.    899.    656.    454.    942.    873.    491.    168.    495.    580.    728.    263.  ; ..
234     386.    391.    673.    771.    380.    139.    235.    165.    508.    47.     79.     271.    888.    751.    761.    338.    610.    708.    2.      622.  ; ..
235     786.    772.    664.    87.     527.    614.    991.    222.    717.    137.    252.    718.    743.    110.    527.    771.    597.    876.    940.    592.  ; ..
236     892.    775.    882.    934.    567.    633.    174.    171.    660.    302.    9.      716.    895.    897.    730.    351.    78.     212.    452.    223.  ; ..
237     746.    994.    326.    974.    772.    977.    344.    659.    469.    201.    423.    427.    889.    801.    395.    300.    616.    158.    562.    488.  ; ..
238     134.    234.    546.    949.    699.    645.    354.    988.    286.    489.    546.    458.    93.     320.    808.    322.    882.    602.    577.    641.  ; ..
239     ];
240
241  C  = [ ..
242     299.    258.    16.     102.    608.    0.      64.     68.     32.     666.    640.    144.    260.    198.    72.     25.     160.    33.     549.    520.  ; ..
243     401.    15.     192.    896.    256.    0.      0.      112.    0.      113.    5.      528.    64.     4.      200.    259.    128.    773.    12.     42.   ; ..
244     257.    0.      594.    516.    208.    0.      1.      20.     48.     512.    4.      808.    553.    48.     21.     600.    384.    0.      260.    3.    ; ..
245     516.    512.    64.     42.     48.     0.      0.      52.     72.     274.    801.    68.     144.    86.     4.      150.    260.    18.     0.      72.   ; ..
246     10.     98.     34.     34.     547.    520.    520.    512.    580.    0.      38.     148.    16.     64.     256.    785.    386.    268.    84.     519.  ; ..
247     544.    256.    16.     22.     272.    260.    64.     113.    160.    146.    528.    17.     400.    256.    257.    0.      8.      260.    10.     98.   ; ..
248     1.      609.    0.      6.      261.    304.    82.     133.    3.      77.     20.     132.    8.      307.    8.      260.    902.    320.    0.      0.    ; ..
249     633.    20.     418.    18.     658.    531.    152.    179.    0.      512.    0.      8.      4.      114.    339.    172.    267.    8.      354.    130.  ; ..
250     656.    516.    64.     798.    65.     394.    339.    530.    278.    324.    226.    34.     128.    34.     534.    0.      53.     98.     24.     265.  ; ..
251     88.     512.    9.      11.     22.     393.    262.    34.     256.    28.     272.    16.     292.    512.    528.    65.     352.    771.    38.     16.   ; ..
252     134.    128.    256.    0.      33.     260.    650.    128.    272.    608.    529.    1.      530.    648.    548.    3.      769.    329.    168.    866.  ; ..
253     2.      516.    2.      41.     512.    98.     84.     0.      320.    320.    120.    769.    728.    224.    514.    836.    47.     65.     274.    24.   ; ..
254     248.    413.    560.    80.     536.    524.    124.    658.    710.    129.    456.    196.    345.    32.     3.      0.      562.    10.     400.    43.   ; ..
255     165.    2.      256.    193.    136.    577.    130.    42.     0.      37.     642.    213.    129.    161.    96.     664.    40.     257.    0.      390.  ; ..
256     16.     251.    96.     221.    132.    128.    448.    130.    96.     4.      536.    1.      520.    385.    8.      898.    0.      65.     804.    90.   ; ..
257     336.    112.    464.    0.      0.      258.    37.     249.    577.    768.    514.    706.    168.    468.    0.      193.    513.    130.    48.     128.  ; ..
258     27.     104.    72.     66.     152.    600.    5.      193.    776.    270.    6.      21.     112.    896.    532.    707.    256.    576.    0.      17.   ; ..
259     16.     130.    128.    272.    0.      24.     1.      784.    643.    710.    128.    654.    32.     480.    128.    392.    320.    202.    0.      1.    ; ..
260     5.      448.    147.    256.    18.     649.    29.     0.      481.    545.    65.     64.     513.    25.     132.    800.    545.    209.    582.    100.  ; ..
261     266.    4.      264.    193.    800.    7.      275.    784.    257.    12.     564.    0.      896.    102.    3.      33.     148.    265.    288.    342.  ; ..
262     108.    64.     4.      20.     512.    4.      142.    512.    139.    264.    5.      140.    128.    771.    98.     9.      17.     288.    49.     65.   ; ..
263     715.    260.    137.    68.     514.    532.    152.    264.    512.    0.      10.     258.    497.    129.    192.    32.     11.     8.      128.    514.  ; ..
264     5.      803.    68.     828.    324.    73.     8.      260.    128.    136.    100.    324.    57.     785.    16.     196.    52.     8.      83.     17.   ; ..
265     128.    129.    0.      6.      162.    273.    52.     512.    832.    272.    512.    640.    72.     896.    3.      416.    681.    38.     24.     776.  ; ..
266     641.    65.     68.     329.    517.    0.      260.    67.     9.      8.      88.     257.    36.     7.      34.     43.     212.    540.    16.     36.   ; ..
267     531.    68.     212.    8.      32.     24.     0.      65.     624.    732.    526.    266.    592.    550.    256.    50.     0.      10.     579.    0.    ; ..
268     145.    533.    0.      14.     33.     576.    32.     320.    513.    436.    68.     0.      514.    513.    194.    200.    20.     129.    2.      772.  ; ..
269     224.    68.     296.    8.      32.     260.    20.     34.     256.    45.     46.     82.     161.    524.    65.     465.    0.      200.    152.    37.   ; ..
270     0.      64.     0.      68.     81.     200.    576.    40.     514.    144.    37.     258.    384.    512.    0.      17.     771.    586.    640.    274.  ; ..
271     770.    257.    264.    259.    3.      318.    1.      0.      93.     0.      544.    321.    144.    642.    196.    6.      341.    517.    8.      134.  ; ..
272     353.    2.      16.     326.    257.    841.    353.    258.    357.    306.    393.    12.     40.     194.    80.     68.     4.      256.    256.    257.  ; ..
273     772.    0.      80.     527.    162.    0.      11.     256.    257.    1.      584.    208.    0.      298.    262.    104.    0.      64.     42.     256.  ; ..
274     644.    2.      576.    600.    576.    160.    384.    4.      576.    133.    228.    520.    261.    267.    10.     208.    32.     208.    585.    32.   ; ..
275     592.    258.    48.     9.      266.    1.      144.    12.     416.    64.     262.    82.     66.     307.    833.    0.      98.     128.    6.      258.  ; ..
276     674.    64.     517.    258.    522.    0.      531.    1.      258.    262.    832.    528.    292.    70.     175.    16.     2.      137.    520.    33.   ; ..
277     290.    152.    512.    269.    72.     288.    163.    484.    0.      419.    768.    1.      566.    75.     144.    896.    170.    1.      576.    210.  ; ..
278     326.    16.     80.     945.    340.    192.    264.    0.      4.      911.    60.     304.    130.    225.    296.    170.    385.    161.    0.      380.  ; ..
279     18.     648.    680.    76.     105.    2.      8.      194.    384.    117.    14.     262.    256.    36.     1.      514.    858.    4.      387.    205.  ; ..
280     512.    144.    400.    4.      326.    64.     32.     128.    256.    260.    156.    0.      0.      256.    97.     0.      514.    514.    80.     256.  ; ..
281     896.    128.    576.    259.    770.    521.    0.      388.    528.    1.      10.     257.    2.      8.      9.      800.    601.    128.    513.    588.  ; ..
282     544.    34.     32.     897.    32.     144.    43.     1.      193.    0.      256.    4.      76.     641.    800.    64.     36.     512.    0.      64.   ; ..
283     164.    128.    4.      292.    80.     312.    768.    40.     0.      128.    141.    2.      112.    2.      262.    768.    33.     0.      2.      514.  ; ..
284     0.      256.    260.    290.    29.     18.     801.    4.      48.     512.    10.     136.    1.      34.     96.     24.     128.    128.    576.    128.  ; ..
285     82.     643.    34.     2.      80.     590.    26.     768.    16.     56.     16.     528.    128.    43.     832.    129.    33.     64.     388.    144.  ; ..
286     106.    519.    450.    280.    324.    528.    4.      514.    260.    79.     560.    226.    592.    528.    768.    512.    0.      115.    16.     778.  ; ..
287     256.    354.    197.    308.    20.     648.    16.     40.     90.     514.    54.     10.     512.    160.    514.    104.    452.    50.     0.      48.   ; ..
288     0.      25.     258.    256.    0.      3.      4.      640.    769.    529.    424.    0.      51.     50.     208.    56.     64.     0.      268.    128.  ; ..
289     57.     132.    0.      1.      224.    706.    256.    0.      258.    16.     320.    27.     4.      272.    644.    78.     6.      524.    89.     128.  ; ..
290     0.      33.     64.     78.     674.    19.     28.     50.     513.    256.    768.    384.    0.      652.    7.      7.      5.      594.    261.    33.   ; ..
291     232.    35.     36.     42.     36.     0.      4.      833.    138.    128.    50.     528.    88.     72.     76.     389.    0.      156.    12.     6.    ; ..
292     260.    17.     516.    54.     0.      567.    101.    720.    65.     128.    392.    42.     904.    208.    17.     129.    34.     588.    105.    104.  ; ..
293     528.    148.    321.    2.      608.    24.     4.      92.     14.     0.      460.    45.     2.      280.    576.    8.      9.      514.    36.     168.  ; ..
294     0.      272.    193.    40.     292.    48.     448.    641.    21.     773.    265.    586.    341.    130.    453.    546.    616.    276.    10.     272.  ; ..
295     515.    520.    96.     14.     312.    8.      312.    16.     6.      80.     13.     343.    5.      96.     70.     262.    928.    288.    194.    0.    ; ..
296     770.    176.    530.    520.    512.    280.    448.    236.    0.      512.    48.     5.      80.     232.    218.    262.    128.    797.    322.    528.  ; ..
297     558.    225.    33.     588.    146.    5.      11.     530.    320.    915.    0.      803.    393.    821.    768.    256.    89.     74.     706.    448.  ; ..
298     285.    0.      565.    16.     262.    513.    33.     518.    256.    704.    264.    288.    33.     136.    576.    672.    0.      0.      513.    2.    ; ..
299     0.      296.    76.     20.     272.    270.    164.    2.      38.     128.    8.      4.      68.     576.    0.      648.    1.      680.    520.    36.   ; ..
300     2.      6.      324.    976.    281.    792.    156.    82.     1.      539.    24.     2.      1.      24.     71.     128.    256.    536.    0.      4.    ; ..
301     265.    40.     138.    97.     368.    130.    168.    576.    768.    130.    517.    576.    832.    518.    2.      96.     0.      132.    528.    94.   ; ..
302     272.    787.    5.      130.    92.     416.    528.    0.      19.     768.    144.    177.    98.     40.     256.    8.      272.    273.    10.     134.  ; ..
303     256.    256.    0.      8.      325.    280.    192.    17.     30.     640.    608.    427.    84.     10.     24.     147.    580.    160.    1.      69.   ; ..
304     8.      513.    12.     4.      528.    16.     295.    297.    569.    513.    769.    66.     512.    80.     115.    260.    0.      1.      0.      286.  ; ..
305     41.     273.    0.      604.    196.    320.    433.    579.    272.    131.    16.     64.     390.    352.    9.      8.      170.    576.    144.    4.    ; ..
306     258.    260.    641.    769.    32.     10.     3.      5.      280.    3.      15.     0.      832.    650.    728.    258.    2.      576.    0.      70.   ; ..
307     514.    772.    16.     80.     520.    0.      656.    146.    136.    129.    8.      704.    615.    34.     15.     769.    577.    544.    292.    80.   ; ..
308     92.     775.    288.    256.    512.    601.    12.     171.    516.    8.      8.      584.    71.     129.    154.    282.    76.     144.    128.    211.  ; ..
309     618.    96.     262.    646.    768.    465.    24.     0.      212.    200.    416.    3.      889.    0.      129.    300.    608.    138.    0.      128.  ; ..
310     0.      160.    34.     277.    8.      517.    320.    324.    266.    352.    0.      386.    80.     256.    800.    2.      576.    80.     513.    1.    ; ..
311     ];
312 assert_checkequal(bitand(A,B), C);