level06.lesson11.bonus02 (не проходит тестирование)

Всем доброго времени суток!
Не могу понять, почему не проходит тестирование.
Компилируется, вывод совпадает с условиями.
public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String grandfatherName = reader.readLine();
        Cat catGrandFather = new Cat(grandfatherName);

        String grandmotherName = reader.readLine();
        Cat catGrandMother = new Cat(grandmotherName);

        String fatherName = reader.readLine();
        Cat catFather = new Cat(fatherName, null, catGrandFather);

        String motherName = reader.readLine();
        Cat catMother = new Cat(motherName, catGrandMother, null);

        String sonName = reader.readLine();
        Cat catSon = new Cat(sonName, catMother, catFather);

        String daughterName = reader.readLine();
        Cat catDaughter = new Cat(daughterName, catMother, catFather);

        System.out.println(catGrandFather);
        System.out.println(catGrandMother);
        System.out.println(catFather);
        System.out.println(catMother);
        System.out.println(catSon);
        System.out.println(catDaughter);
    }

    public static class Cat
    {
        private String name;
        private Cat parent1;
        private Cat parent2;

        Cat(String name)
        {
            this.name = name;
        }

        Cat(String name, Cat parent1, Cat parent2)
        {
            this.name = name;
            this.parent1 = parent1;
            this.parent2 = parent2;
        }


        @Override
        public String toString()
        {
            if (parent1 == null && parent2 == null)
                return "Cat name is " + name + ", no mother, no father";
            else if (parent1 == null)
                return "Cat name is " + name + ", no mother, father is " + parent2.name;
            else if (parent2 == null)
                return "Cat name is " + name + ", mother is " + parent1.name + ", no father";
            else
                return "Cat name is " + name + ", mother is " + parent1.name + ", father is " + parent2.name;
        }

    }
}

level06.lesson11.bonus02

не принимает, хотя вывод такой же как в условии, где может быть ошибка?

package com.javarush.test.level06.lesson11.bonus02;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Нужно добавить в программу новую функциональность
Задача: У каждой кошки есть имя и кошка-мама. Создать класс, который бы описывал данную ситуацию. Создать два объекта: кошку-дочь и кошку-маму. Вывести их на экран.
Новая задача: У каждой кошки есть имя, кошка-папа и кошка-мама. Изменить класс Cat так, чтобы он мог описать данную ситуацию.
Создать 6 объектов: маму, папу, сына, дочь, бабушку(мамина мама) и дедушку(папин папа).
Вывести их всех на экран в порядке: дедушка, бабушка, папа, мама, сын, дочь.

Пример ввода:
дедушка Вася
бабушка Мурка
папа Котофей
мама Василиса
сын Мурчик
дочь Пушинка

Пример вывода:
Cat name is дедушка Вася, no mother, no father
Cat name is бабушка Мурка, no mother, no father
Cat name is папа Котофей, no mother, father is дедушка Вася
Cat name is мама Василиса, mother is бабушка Мурка, no father
Cat name is сын Мурчик, mother is мама Василиса, father is папа Котофей
Cat name is дочь Пушинка, mother is мама Василиса, father is папа Котофей

Cat name is дедушка Вася, no mother, no father
Cat name is бабушка Мурка, no mother, no father
Cat name is папа Котофей, no mother, father is дедушка Вася
Cat name is мама Василиса, mother is бабушка Мурка, no father
Cat name is сын Мурчик, mother is мама Василиса, father is папа Котофей
Cat name is дочь Пушинка, mother is мама Василиса, father is папа Котофей
*/

public class Solution
{
public static void main(String[] args) throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String grandpaName = reader.readLine();
Cat catGran = new Cat(grandpaName);

String grandmaName = reader.readLine();
Cat catGram = new Cat(grandmaName);

String dadName = reader.readLine();
Cat catDad = new Cat(dadName, catGran, true);

String momName = reader.readLine();
Cat catMom = new Cat(momName, catGram, false);

String sonName = reader.readLine();
Cat catSon = new Cat(sonName, catMom, catDad);

String datName = reader.readLine();
Cat catDat = new Cat(datName, catMom, catDad);

System.out.println(catGran);
System.out.println(catGram);

System.out.println(catDad);
System.out.println(catMom);

System.out.println(catSon);
System.out.println(catDat);
}

public static class Cat
{
private String name;
private Cat mom;
private Cat dad;

Cat(String name)
{
this.name = name;
}

Cat(String name, Cat parent, boolean f)
{
this.name = name;
if(f)
this.dad = parent;
else
this.mom = parent;
}

Cat(String name, Cat mom, Cat dad){
this.name = name;
this.mom = mom;
this.dad = dad;

}

@Override
public String toString()
{
if ((dad == null)&&(mom == null))
return «Cat name is » + name + ", no mother" + ", no father ";
if(dad == null)
return «Cat name is » + name + ", mother is " + mom.name + ", no father ";
if(mom == null)
return «Cat name is » + name + ", no mother" + ", father is " + dad.name;
return «Cat name is » + name + ", mother is " + mom.name + ", father is " + dad.name;
}
}

}
не принимает, хотя вывод такой же как в условии