// Path: src/org/kefirsf/bb/BBProcessorFactory.java
// public class BBProcessorFactory implements TextProcessorFactory {
//     /**
//      * Instance of this class. See the Singleton pattern
//      */
//     private static final BBProcessorFactory instance = new BBProcessorFactory();
//     private final ConfigurationFactory configurationFactory = ConfigurationFactory.getInstance();
// 
//     /**
//      * Return instance of BBProcessorFactory
//      *
//      * @return factory instance
//      */
//     public static BBProcessorFactory getInstance() {
//         return instance;
//     }
// 
//     /**
//      * Private constructor. Because this is a singleton.
//      */
//     private BBProcessorFactory() {
//     }
// 
//     /**
//      * Create the default bb-code processor.
//      *
//      * @return Default bb-code processor
//      * @throws TextProcessorFactoryException when can't read the default code set resource
//      */
//     public TextProcessor create() {
//         return create(configurationFactory.create());
//     }
// 
//     /**
//      * Create TextProcessor by programmatic configuration.
//      *
//      * @param conf programmatic configuration
//      * @return bb-code text processor
//      */
//     public TextProcessor create(Configuration conf) {
//         return new ProcessorBuilder(conf).build();
//     }
// 
//     /**
//      * Create the bb-processor using xml-configuration resource
//      *
//      * @param resourceName name of resource file
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException when can't find or read the resource or illegal config file
//      */
//     public TextProcessor createFromResource(String resourceName) {
//         return create(configurationFactory.createFromResource(resourceName));
//     }
// 
//     /**
//      * Create the bb-processor from XML InputStream
//      *
//      * @param stream the input stream with XML
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException when can't build Document
//      */
//     public TextProcessor create(InputStream stream) {
//         return create(configurationFactory.create(stream));
//     }
// 
//     /**
//      * Create the bb-code processor from file with XML-configuration.
//      *
//      * @param file file with configuration
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException any problems
//      */
//     public TextProcessor create(File file) {
//         return create(configurationFactory.create(file));
//     }
// 
//     /**
//      * Create the bb-code processor from file with XML-configuration.
//      *
//      * @param fileName name of file with configuration
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException any problems
//      */
//     public TextProcessor create(String fileName) {
//         return create(new File(fileName));
//     }
// }
// 
// Path: src/org/kefirsf/bb/TextProcessor.java
// public interface TextProcessor {
//     /**
//      * Process the text.
//      *
//      * ATTENTION!!! Do not use java.nio.CharBuffer.
//      * CharBuffer has invalid realization of subSequence methods from interface java.lang.CharSequence
//      * since 1.6.0_10 version of JRE. http://bugs.sun.com/view_bug.do?bug_id=6795561
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     CharSequence process(CharSequence source);
// 
//     /**
//      * Process the text
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     String process(String source);
// 
//     /**
//      * Process the text
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     StringBuilder process(StringBuilder source);
// 
//     /**
//      * Process the text
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     StringBuffer process(StringBuffer source);
// }


import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.kefirsf.bb.BBProcessorFactory;
import org.kefirsf.bb.TextProcessor;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class CssStylesTest {
    @Parameterized.Parameters(name = "{0}")
    public static Collection<String> data() {
        return Arrays.asList(
                "color: red;",
                "color: #00ff00;",
                "color: rgb(0,0,255);",
                "color: rgba(255, 0, 0, 0.3);",
                "color: hsl(120, 100%, 50%);",
                "color: hsla(120, 100%, 50%, 0.3);",
                "color: white;",
                "color: black;",
                "color: Plum;",
                "color: initial;",
                "color: inherit;",
                "opacity: 0.5;",
                "opacity: initial;",
                "opacity: inherit;",
                "background: yellow;",
                "background: #00ff00;",
                "background: rgb(255,0,255);",
                "background: initial;",
                "background: inherit;",
                "background: transparent;",
                "background-color: yellow;",
                "background-color: #00ff00;",
                "background-color: rgb(255,0,255);",
                "background-color: initial;",
                "background-color: inherit;",
// Path: src/org/kefirsf/bb/BBProcessorFactory.java
// public class BBProcessorFactory implements TextProcessorFactory {
//     /**
//      * Instance of this class. See the Singleton pattern
//      */
//     private static final BBProcessorFactory instance = new BBProcessorFactory();
//     private final ConfigurationFactory configurationFactory = ConfigurationFactory.getInstance();
// 
//     /**
//      * Return instance of BBProcessorFactory
//      *
//      * @return factory instance
//      */
//     public static BBProcessorFactory getInstance() {
//         return instance;
//     }
// 
//     /**
//      * Private constructor. Because this is a singleton.
//      */
//     private BBProcessorFactory() {
//     }
// 
//     /**
//      * Create the default bb-code processor.
//      *
//      * @return Default bb-code processor
//      * @throws TextProcessorFactoryException when can't read the default code set resource
//      */
//     public TextProcessor create() {
//         return create(configurationFactory.create());
//     }
// 
//     /**
//      * Create TextProcessor by programmatic configuration.
//      *
//      * @param conf programmatic configuration
//      * @return bb-code text processor
//      */
//     public TextProcessor create(Configuration conf) {
//         return new ProcessorBuilder(conf).build();
//     }
// 
//     /**
//      * Create the bb-processor using xml-configuration resource
//      *
//      * @param resourceName name of resource file
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException when can't find or read the resource or illegal config file
//      */
//     public TextProcessor createFromResource(String resourceName) {
//         return create(configurationFactory.createFromResource(resourceName));
//     }
// 
//     /**
//      * Create the bb-processor from XML InputStream
//      *
//      * @param stream the input stream with XML
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException when can't build Document
//      */
//     public TextProcessor create(InputStream stream) {
//         return create(configurationFactory.create(stream));
//     }
// 
//     /**
//      * Create the bb-code processor from file with XML-configuration.
//      *
//      * @param file file with configuration
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException any problems
//      */
//     public TextProcessor create(File file) {
//         return create(configurationFactory.create(file));
//     }
// 
//     /**
//      * Create the bb-code processor from file with XML-configuration.
//      *
//      * @param fileName name of file with configuration
//      * @return bb-code processor
//      * @throws TextProcessorFactoryException any problems
//      */
//     public TextProcessor create(String fileName) {
//         return create(new File(fileName));
//     }
// }
// 
// Path: src/org/kefirsf/bb/TextProcessor.java
// public interface TextProcessor {
//     /**
//      * Process the text.
//      *
//      * ATTENTION!!! Do not use java.nio.CharBuffer.
//      * CharBuffer has invalid realization of subSequence methods from interface java.lang.CharSequence
//      * since 1.6.0_10 version of JRE. http://bugs.sun.com/view_bug.do?bug_id=6795561
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     CharSequence process(CharSequence source);
// 
//     /**
//      * Process the text
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     String process(String source);
// 
//     /**
//      * Process the text
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     StringBuilder process(StringBuilder source);
// 
//     /**
//      * Process the text
//      *
//      * @param source the source text
//      * @return the result of text processing
//      */
//     StringBuffer process(StringBuffer source);
// }


// Path: test/org/kefirsf/bb/test/blackbox/CssStylesTest.java
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.kefirsf.bb.BBProcessorFactory;
import org.kefirsf.bb.TextProcessor;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertEquals;

@RunWith(Parameterized.class)
public class CssStylesTest {
    @Parameterized.Parameters(name = "{0}")
    public static Collection<String> data() {
        return Arrays.asList(
                "color: red;",
                "color: #00ff00;",
                "color: rgb(0,0,255);",
                "color: rgba(255, 0, 0, 0.3);",
                "color: hsl(120, 100%, 50%);",
                "color: hsla(120, 100%, 50%, 0.3);",
                "color: white;",
                "color: black;",
                "color: Plum;",
                "color: initial;",
                "color: inherit;",
                "opacity: 0.5;",
                "opacity: initial;",
                "opacity: inherit;",
                "background: yellow;",
                "background: #00ff00;",
                "background: rgb(255,0,255);",
                "background: initial;",
                "background: inherit;",
                "background: transparent;",
                "background-color: yellow;",
                "background-color: #00ff00;",
                "background-color: rgb(255,0,255);",
                "background-color: initial;",
                "background-color: inherit;",
                "background-color: transparent;"