task19.task1921 не принимает валидатор

Всем привет! Подскажите, почему валидадор не хочет принимать задачу? Локально все работает так, как и должно. Однако валидатор так не считает. Ругается на «Программа должна правильно работать с двойными именами, например Анна-Надежда.»

Собственно код

package com.javarush.task.task19.task1921;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

/* 
Хуан Хуанович
*/

public class Solution {
    public static final List<Person> PEOPLE = new ArrayList<Person>();

    public static void main(String[] args) throws ParseException {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(args[0]));
            SimpleDateFormat sdf = new SimpleDateFormat("dd mm YYYY", Locale.ENGLISH);
            String buffer;

            try {
                while ((buffer = reader.readLine()) != null) {
                    String name = "";
                    String bDay = "";
                    String[] temp = buffer.split(" ");
                    for (int i = 0; i < temp.length; i++) {
                        if (checkNumber(temp[i])) bDay += temp[i] + " ";
                        else name += temp[i] + " ";
                    }
                    Date date = sdf.parse(bDay.substring(0, bDay.length() - 1));

                    PEOPLE.add(new Person(name, date));
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }

    public static boolean checkNumber(String n) {
        try {
            Integer.parseInt(n);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }
}

В консоль выводит это, т.е. имена с "-" обрабатываются более чем нормально и корректно

Petrov Sun Dec 28 00:12:00 MSK 1986
Sidorov Sun Dec 28 00:12:00 MSK 1986
Ivanov Sun Dec 28 00:12:00 MSK 1986
Petrov-Sidorov Popov Sun Dec 31 00:12:00 MSK 1989

Где и что я упускаю?
  • ,

level19.lesson03.task03

Адаптация нескольких интерфейсов
Адаптировать IncomeData к Customer и Contact.
Классом-адаптером является IncomeDataAdapter.
Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
UA Ukraine
RU Russia
CA Canada
Дополнить телефонный номер нулями до 10 цифр при необходимости (смотри примеры)
Обратите внимание на формат вывода фамилии и имени человека

public class Solution {
    public static Map<String, String> countries = new HashMap<String, String>();

    static {
        countries.put ("UA","Ukraine");
        countries.put ("RU","Russia");
        countries.put ("CA","Canada");
    }
    public static void main(String[] args)
    {
        Customer customer = new Customer() {
            public String getCompanyName() {
                return "JavaRush Ltd.";
            }

            public String getCountryName() {
                return "Ukraine";
            }
        };
        Contact contact = new Contact() {
            public String getName() {
                return "Ivanov, Ivan";
            }

            public String getPhoneNumber() {
                return "+38(050)123-45-67";
            }
        };

        IncomeData rowItem = new IncomeDataAdapter(contact, customer );
        System.out.println(rowItem.getCountryCode());
        System.out.println(rowItem.getCompany());
        System.out.println(rowItem.getContactFirstName());
        System.out.println(rowItem.getContactLastName());
        System.out.println(rowItem.getCountryPhoneCode ());
        System.out.println(rowItem.getPhoneNumber ());
    }
    public static class IncomeDataAdapter implements IncomeData{

        private Contact contact;
        private Customer customer;

        public IncomeDataAdapter(Contact contact, Customer customer) {

            this.contact = contact;
            this.customer = customer;
        }

        @Override
        public String getCountryCode() {
            String country = this.customer.getCountryName();

            for (Map.Entry<String, String> pair: countries.entrySet()){
                if (pair.getValue().equals(country))
                    return pair.getKey();
            }
            return null;
        }

        @Override
        public String getCompany() {
            return customer.getCompanyName ();
        }

        @Override
        public String getContactFirstName() {
            return contact.getName ().split (", ")[1];
        }

        @Override
        public String getContactLastName() {
            return contact.getName ().split (", ")[0].trim ();
        }

        @Override
        public int getCountryPhoneCode() {
            String str = contact.getPhoneNumber ();
            String a = str.substring (str.indexOf ("+"), str.indexOf ("("));
            int c = Integer.parseInt (a);
            return c;
        }

        @Override
        public int getPhoneNumber() {

            String a = this.contact.getPhoneNumber ();
            String g = a.replaceAll ("[()+ -]", "");
            String o = g.substring (g.length () - 10 ,g.length ());
            Long d = Long.parseLong (o);
            String s = String.format("%010d", d);
            int in = Integer.parseInt (s);
            return in;
        }
    }

    public static interface IncomeData {
        String getCountryCode();        //example UA

        String getCompany();            //example JavaRush Ltd.

        String getContactFirstName();   //example Ivan

        String getContactLastName();    //example Ivanov

        int getCountryPhoneCode();      //example 38

        int getPhoneNumber();           //example 501234567
    }

    public static interface Customer {
        String getCompanyName();        //example JavaRush Ltd.

        String getCountryName();        //example Ukraine
    }

    public static interface Contact {
        String getName();               //example Ivanov, Ivan

        String getPhoneNumber();        //example +38(050)123-45-67
    }



Подскажите, что тут не так?
не могу догнать что там с номером надо сделать
  • ,

level19.lesson03.task03 не проходит тестирование

/* Адаптация нескольких интерфейсов
Адаптировать IncomeData к Customer и Contact.
Классом-адаптером является IncomeDataAdapter.
Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
UA Ukraine
RU Russia
CA Canada
Дополнить телефонный номер нулями до 10 цифр при необходимости (смотри примеры)
Обратите внимание на формат вывода фамилии и имени человека
*/

import java.util.HashMap;
import java.util.Map;

public class Solution {
    public static Map<String, String> countries = new HashMap<String, String>();

    public static Map<String, String> getCountries()
    {
        countries.put("UA", "Ukraine");
        countries.put("RU", "Russia");
        countries.put("CA", "Canada");
        return countries;
    }
    static {
        getCountries();
    }

    public static class IncomeDataAdapter implements Contact, Customer{
        private IncomeData incomeData;

        IncomeDataAdapter(IncomeData incomeData){
            this.incomeData = incomeData;
        }

        @Override
        public String getName() {
            return String.format("%s, %s", this.incomeData.getContactLastName(), this.incomeData.getContactFirstName());
        }

        @Override
        public String getPhoneNumber() {
            String number = Integer.toString(this.incomeData.getPhoneNumber());
            while(number.length() < 10){
                number = 0 + number;
            }
            String phoneNumber = String.format("+%d(%s)%s-%s-%s", this.incomeData.getCountryPhoneCode(),
                    number.substring(0, 3),
                    number.substring(3, 6),
                    number.substring(6, 8),
                    number.substring(8));
            return phoneNumber;
        }

        @Override
        public String getCompanyName() {
            return this.incomeData.getCompany();
        }

        @Override
        public String getCountryName() {
            return getCountries().get(this.incomeData.getCountryCode());
        }
    }

    public static interface IncomeData {
        String getCountryCode();        //example UA

        String getCompany();            //example JavaRush Ltd.

        String getContactFirstName();   //example Ivan

        String getContactLastName();    //example Ivanov

        int getCountryPhoneCode();      //example 38

        int getPhoneNumber();           //example 501234567
    }

    public static interface Customer {
        String getCompanyName();        //example JavaRush Ltd.

        String getCountryName();        //example Ukraine
    }

    public static interface Contact {
        String getName();               //example Ivanov, Ivan

        String getPhoneNumber();        //example +38(050)123-45-67
    }
}


Вывод, вроде, как в образце, но тестирование не проходит. Никак не могу разобраться, что не нравится серверу.

level19.lesson03.task03 не проходит тестирование.

Добрый вечер. Сервер не принимает мой вариант решения getPhoneNumber(). Когда заменил на решение (которое закомментировано в коде) — то сервер принял. Подскажите в чем ошибка моего решения?

package com.javarush.test.level19.lesson03.task03;

/* Адаптация нескольких интерфейсов
Адаптировать IncomeData к Customer и Contact.
Классом-адаптером является IncomeDataAdapter.
Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
UA Ukraine
RU Russia
CA Canada
Дополнить телефонный номер нулями до 10 цифр при необходимости
*/

import java.util.HashMap;
import java.util.Map;

public class Solution {
    public static Map<String,String> countries = new HashMap<String,String>();

    static {
        countries.put("UA", "Ukraine");
        countries.put("RU", "Russia");
        countries.put("CA", "Canada");

    }

    public static class IncomeDataAdapter implements Customer, Contact
    {

        private IncomeData data;

        IncomeDataAdapter(IncomeData data) {
            this.data=data;
        }

        @Override
        public String getCompanyName()
        {
            return data.getCompany();
        }

        @Override
        public String getCountryName()
        {
            return countries.get(data.getCountryCode());
        }

        @Override
        public String getName()
        {
            return data.getContactLastName()+", "+data.getContactFirstName();
        }

        /*@Override
        public String getPhoneNumber()
        {
            String m = String.format("+%d(%2$s)%3$s-%4$s-%5$s",data.getCountryPhoneCode(),
                    String.format("%010d", data.getPhoneNumber()).substring(0, 3),
                    String.format("%010d", data.getPhoneNumber()).substring(3, 6),
                    String.format("%010d", data.getPhoneNumber()).substring(6, 8),
                    String.format("%010d", data.getPhoneNumber()).substring(8));

            return m;

        }*/

        @Override
        public String getPhoneNumber()
        {
            String number = String.valueOf(data.getPhoneNumber());
            String nol = "";
            int count = 10-number.length();
            for(int i = 0; i<count; i++)
                nol += "0";

            number = "+"+data.getCountryPhoneCode()+nol+number;
            char[] allNumber = number.toCharArray();
            String all = "";
            for(int i=0;i<allNumber.length;i++) {
                if(i==3)
                    all += ("("+allNumber[i]);
                else if(i==6)
                    all += (")"+allNumber[i]);
                else if(i==9 || i==11)
                    all += ("-"+allNumber[i]);
                else
                    all+=allNumber[i];
            }

            return all;
        }


    }

    public static interface IncomeData {
        String getCountryCode();        //example UA
        String getCompany();            //example JavaRush Ltd.
        String getContactFirstName();   //example Ivan
        String getContactLastName();    //example Ivanov
        int getCountryPhoneCode();      //example 38
        int getPhoneNumber();           //example 501234567
    }

    public static interface Customer {
        String getCompanyName();        //example JavaRush Ltd.
        String getCountryName();        //example Ukraine
    }

    public static interface Contact {
        String getName();               //example Ivanov, Ivan
        String getPhoneNumber();        //example +38(050)123-45-67
    }
}

Нужна помощь, level19.lesson03.task03

Помогите решить задачу, работает но не проходит тестирование
Код задачи :
package com.javarush.test.level19.lesson03.task03;

/* Адаптация нескольких интерфейсов
Адаптировать IncomeData к Customer и Contact.
Классом-адаптером является IncomeDataAdapter.
Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
UA Ukraine
RU Russia
CA Canada
Дополнить телефонный номер нулями до 10 цифр при необходимости
*/

import java.util.HashMap;
import java.util.Map;

public class Solution {
    public static Map<String,String> countries = new HashMap<String,String>();

    static {
        countries.put("UA","Ukraine");
        countries.put("RU","Russia");
        countries.put("CA","Canada");
    }

    public static class IncomeDataAdapter implements Customer, Contact {

        private IncomeData incomeData;

        public IncomeDataAdapter(IncomeData incomeData)
        {
            this.incomeData = incomeData;
        }

        @Override
        public String getName()
        {
            return this.incomeData.getContactFirstName() + ", " + this.incomeData.getContactLastName();
        }

        @Override
        public String getPhoneNumber()
        {
            String str = "";


            int number = 10 - Integer.toString(this.incomeData.getPhoneNumber()).length();
            while (number > 0){
                str += 0;
                number--;
            }

            str += Integer.toString(this.incomeData.getPhoneNumber());
            String str_result = "+" + "" + this.incomeData.getCountryPhoneCode() + "(" + str.substring(0,3) + ")" + str.substring(3,6) + "-" + str.substring(6,8) + "-" + str.substring(8,10);
            return str_result;
        }

        @Override
        public String getCompanyName()
        {
            return this.incomeData.getCompany();
        }

        @Override
        public String getCountryName()
        {
            return countries.get(this.incomeData.getCountryCode());
        }
    }

    public static interface IncomeData {
        String getCountryCode();        //example UA
        String getCompany();            //example JavaRush Ltd.
        String getContactFirstName();   //example Ivan
        String getContactLastName();    //example Ivanov
        int getCountryPhoneCode();      //example 38
        int getPhoneNumber();           //example 501234567
    }

    public static interface Customer {
        String getCompanyName();        //example JavaRush Ltd.
        String getCountryName();        //example Ukraine
    }

    public static interface Contact {
        String getName();               //example Ivanov, Ivan
        String getPhoneNumber();        //example +38(050)123-45-67
    }
}


Метод main
public static void main(String[] args)
    {
        IncomeData incomeData = new IncomeData()
        {
            @Override
            public String getCountryCode()
            {
                return "UA";
            }

            @Override
            public String getCompany()
            {
                return "JavaRush Ltd.";
            }

            @Override
            public String getContactFirstName()
            {
                return "Ivan";
            }

            @Override
            public String getContactLastName()
            {
                return "Ivanov";
            }

            @Override
            public int getCountryPhoneCode()
            {
                return 38;
            }

            @Override
            public int getPhoneNumber()
            {
                return 678756453;
            }
        };

        Customer customer = new IncomeDataAdapter(incomeData);
        Contact contact = new IncomeDataAdapter(incomeData);

        System.out.println(customer.getCompanyName());
        System.out.println(customer.getCountryName());
        System.out.println(contact.getName());
        System.out.println(contact.getPhoneNumber());
    }


Вариации номеров и общий вывод:
JavaRush Ltd.
Ukraine
Ivan, Ivanov

1) для 10 цифр return 1234567890;
Вывод : +38(123)456-78-90
2) для 9 цифр return 123456789;
Вывод : +38(012)345-67-89
3) для 8 цифр return 12345678;
Вывод : +38(001)234-56-78
4) для 7 цифр return 1234567;
Вывод : +38(000)123-45-67
5) и т.д. для 1 цифры return 1;
Вывод : +38(000)000-00-01

level19.lesson03.task03

Адаптировать IncomeData к Customer и Contact.
Классом-адаптером является IncomeDataAdapter.
Инициализируйте countries перед началом выполнения программы. Соответствие кода страны и названия:
UA Ukraine
RU Russia
CA Canada
Дополнить телефонный номер нулями до 10 цифр при необходимости

public static interface IncomeData {
int getCountryPhoneCode(); //example 38
int getPhoneNumber(); //example 501234567
}

public static interface Contact {
String getPhoneNumber(); //example +38(050)123-45-67
}

как в итоге должен выглядеть телефонный номер?