Подскажите пожалуйста не проходят все условия, а метод работает правильно с любыми числами
package com.javarush.task.pro.task09.task0906;
import java.util.regex.Pattern;
/*
Двоичный конвертер
*/
public class Solution {
public static int [] arrayElements;
public static void main(String[] args) {
int decimalNumber = 19546; //Integer.MAX_VALUE
System.out.println("Десятичное число " + decimalNumber + " равно двоичному числу " + toBinary(decimalNumber));
String binaryNumber = "100110001011010"; //"1111111111111111111111111111111";
fillArrayWithBinaryNumb(binaryNumber);
reverseArray(arrayElements);
System.out.println("Двоичное число " + binaryNumber + " равно десятичному числу " + toDecimal(binaryNumber));
System.out.println();
}
public static String toBinary(int decimalNumber) {
if (decimalNumber <= 0) {
return "";
}
String binaryNumb = "";
while(decimalNumber != 0) {
binaryNumb = (decimalNumber % 2) + binaryNumb;
decimalNumber = decimalNumber / 2;
}
return binaryNumb;
}
public static int [] fillArrayWithBinaryNumb(String elements){
arrayElements = new int[elements.length()];
for (int i = elements.length()-1; i >= 0 ; i--) {
arrayElements[i] = Character.getNumericValue(elements.charAt(i));
}
return arrayElements;
}
public static int[] reverseArray(int[] array) {
for (int i = 0; i < array.length/2; i++) {
int temp = array[array.length-i-1];
array[array.length-i-1] = array[i];
array[i] = temp;
}
return array;
}
public static int toDecimal(String binaryNumber) {
if (binaryNumber.equals(null) && binaryNumber.equals("")){
return 0;
}
int decimalNumb = 0;
for (int i = binaryNumber.length()-1; i >= 0; i--) {
decimalNumb = decimalNumb + arrayElements[i] * (int) Math.pow(2, i);
}
return decimalNumb;
}
}