{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":42877,"title":"Cellular Automaton | Rule X","description":"Cellular Automata (CA) provide a convenient way to represent many kinds of systems in which the values of cells (either 0 or 1) in an array are updated in discrete steps according to a local rule.\r\n\r\nStart with a single *ONE* at the center of the 1st row of an (n+1)-by-(2*n+1) sheet of *ZEROs* , the value of each point in the array at position A(i,j) , i = 2:n is determined by values of its 3-neighbors A(i-1, j-1), A(i-1,j), A(i-1,j+1) according to the given Rule.\r\n\r\nSince we consider 3-neighbors, they can have one of 8 possible states (starting with 000 to 111). The Rule number is a decimal number between 1-256 (i.e. 2^8), where its 8-bit Bin form represents the outputs of those 8 possible states as shown in the figure below.\r\n\r\nYou problem is to generate the Cellular Automaton array given the Rule number and number of iteration to run (n = rows of array).\r\n\r\nNOTE: you can plot the result using imagesc(CA) for fun.\r\n\r\n\\\r\n\r\n/\r\n\r\n\r\n\u003c\u003chttp://mathworld.wolfram.com/images/eps-gif/ElementaryCARule030_1000.gif\u003e\u003e","description_html":"\u003cp\u003eCellular Automata (CA) provide a convenient way to represent many kinds of systems in which the values of cells (either 0 or 1) in an array are updated in discrete steps according to a local rule.\u003c/p\u003e\u003cp\u003eStart with a single \u003cb\u003eONE\u003c/b\u003e at the center of the 1st row of an (n+1)-by-(2*n+1) sheet of \u003cb\u003eZEROs\u003c/b\u003e , the value of each point in the array at position A(i,j) , i = 2:n is determined by values of its 3-neighbors A(i-1, j-1), A(i-1,j), A(i-1,j+1) according to the given Rule.\u003c/p\u003e\u003cp\u003eSince we consider 3-neighbors, they can have one of 8 possible states (starting with 000 to 111). The Rule number is a decimal number between 1-256 (i.e. 2^8), where its 8-bit Bin form represents the outputs of those 8 possible states as shown in the figure below.\u003c/p\u003e\u003cp\u003eYou problem is to generate the Cellular Automaton array given the Rule number and number of iteration to run (n = rows of array).\u003c/p\u003e\u003cp\u003eNOTE: you can plot the result using imagesc(CA) for fun.\u003c/p\u003e\u003cp\u003e\\\u003c/p\u003e\u003cp\u003e/\u003c/p\u003e\u003cimg src = \"http://mathworld.wolfram.com/images/eps-gif/ElementaryCARule030_1000.gif\"\u003e","function_template":"function CA = cellular_automaton(rule, n)\r\n  CA = zeros(n);\r\nend","test_suite":"%%\r\nrule = 30;\r\nn = 3;\r\ny_correct = [0  0  0  1  0  0  0\r\n             0  0  1  1  1  0  0\r\n             0  1  1  0  0  1  0\r\n             0  1  0  1  1  1  0] ;\r\nassert(isequal(cellular_automaton(rule,n),y_correct))\r\n\r\n%%\r\nrule = 49;\r\nn = 2;\r\ny_correct = [0  0  1  0  0\r\n             0  0  0  1  0\r\n             0  1  0  0  0];\r\nassert(isequal(cellular_automaton(rule,n),y_correct))\r\n\r\n%%\r\nrule = 90\r\nn = 4\r\ny_correct = [0  0  0  0  1  0  0  0  0\r\n             0  0  0  1  0  1  0  0  0\r\n             0  0  1  0  0  0  1  0  0\r\n             0  1  0  1  0  1  0  1  0\r\n             0  0  0  0  0  0  0  0  0];\r\nassert(isequal(cellular_automaton(rule,n),y_correct))\r\n\r\n%%\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":5,"created_by":49025,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":677,"created_at":"2016-06-04T21:09:27.000Z","updated_at":"2026-02-09T15:04:50.000Z","published_at":"2016-06-04T21:10:13.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCellular Automata (CA) provide a convenient way to represent many kinds of systems in which the values of cells (either 0 or 1) in an array are updated in discrete steps according to a local rule.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eStart with a single\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eONE\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e at the center of the 1st row of an (n+1)-by-(2*n+1) sheet of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eZEROs\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e , the value of each point in the array at position A(i,j) , i = 2:n is determined by values of its 3-neighbors A(i-1, j-1), A(i-1,j), A(i-1,j+1) according to the given Rule.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSince we consider 3-neighbors, they can have one of 8 possible states (starting with 000 to 111). The Rule number is a decimal number between 1-256 (i.e. 2^8), where its 8-bit Bin form represents the outputs of those 8 possible states as shown in the figure below.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou problem is to generate the Cellular Automaton array given the Rule number and number of iteration to run (n = rows of array).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNOTE: you can plot the result using imagesc(CA) for fun.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\\\\\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e/\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":42877,"title":"Cellular Automaton | Rule X","description":"Cellular Automata (CA) provide a convenient way to represent many kinds of systems in which the values of cells (either 0 or 1) in an array are updated in discrete steps according to a local rule.\r\n\r\nStart with a single *ONE* at the center of the 1st row of an (n+1)-by-(2*n+1) sheet of *ZEROs* , the value of each point in the array at position A(i,j) , i = 2:n is determined by values of its 3-neighbors A(i-1, j-1), A(i-1,j), A(i-1,j+1) according to the given Rule.\r\n\r\nSince we consider 3-neighbors, they can have one of 8 possible states (starting with 000 to 111). The Rule number is a decimal number between 1-256 (i.e. 2^8), where its 8-bit Bin form represents the outputs of those 8 possible states as shown in the figure below.\r\n\r\nYou problem is to generate the Cellular Automaton array given the Rule number and number of iteration to run (n = rows of array).\r\n\r\nNOTE: you can plot the result using imagesc(CA) for fun.\r\n\r\n\\\r\n\r\n/\r\n\r\n\r\n\u003c\u003chttp://mathworld.wolfram.com/images/eps-gif/ElementaryCARule030_1000.gif\u003e\u003e","description_html":"\u003cp\u003eCellular Automata (CA) provide a convenient way to represent many kinds of systems in which the values of cells (either 0 or 1) in an array are updated in discrete steps according to a local rule.\u003c/p\u003e\u003cp\u003eStart with a single \u003cb\u003eONE\u003c/b\u003e at the center of the 1st row of an (n+1)-by-(2*n+1) sheet of \u003cb\u003eZEROs\u003c/b\u003e , the value of each point in the array at position A(i,j) , i = 2:n is determined by values of its 3-neighbors A(i-1, j-1), A(i-1,j), A(i-1,j+1) according to the given Rule.\u003c/p\u003e\u003cp\u003eSince we consider 3-neighbors, they can have one of 8 possible states (starting with 000 to 111). The Rule number is a decimal number between 1-256 (i.e. 2^8), where its 8-bit Bin form represents the outputs of those 8 possible states as shown in the figure below.\u003c/p\u003e\u003cp\u003eYou problem is to generate the Cellular Automaton array given the Rule number and number of iteration to run (n = rows of array).\u003c/p\u003e\u003cp\u003eNOTE: you can plot the result using imagesc(CA) for fun.\u003c/p\u003e\u003cp\u003e\\\u003c/p\u003e\u003cp\u003e/\u003c/p\u003e\u003cimg src = \"http://mathworld.wolfram.com/images/eps-gif/ElementaryCARule030_1000.gif\"\u003e","function_template":"function CA = cellular_automaton(rule, n)\r\n  CA = zeros(n);\r\nend","test_suite":"%%\r\nrule = 30;\r\nn = 3;\r\ny_correct = [0  0  0  1  0  0  0\r\n             0  0  1  1  1  0  0\r\n             0  1  1  0  0  1  0\r\n             0  1  0  1  1  1  0] ;\r\nassert(isequal(cellular_automaton(rule,n),y_correct))\r\n\r\n%%\r\nrule = 49;\r\nn = 2;\r\ny_correct = [0  0  1  0  0\r\n             0  0  0  1  0\r\n             0  1  0  0  0];\r\nassert(isequal(cellular_automaton(rule,n),y_correct))\r\n\r\n%%\r\nrule = 90\r\nn = 4\r\ny_correct = [0  0  0  0  1  0  0  0  0\r\n             0  0  0  1  0  1  0  0  0\r\n             0  0  1  0  0  0  1  0  0\r\n             0  1  0  1  0  1  0  1  0\r\n             0  0  0  0  0  0  0  0  0];\r\nassert(isequal(cellular_automaton(rule,n),y_correct))\r\n\r\n%%\r\n","published":true,"deleted":false,"likes_count":4,"comments_count":5,"created_by":49025,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":677,"created_at":"2016-06-04T21:09:27.000Z","updated_at":"2026-02-09T15:04:50.000Z","published_at":"2016-06-04T21:10:13.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.gif\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eCellular Automata (CA) provide a convenient way to represent many kinds of systems in which the values of cells (either 0 or 1) in an array are updated in discrete steps according to a local rule.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eStart with a single\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eONE\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e at the center of the 1st row of an (n+1)-by-(2*n+1) sheet of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eZEROs\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e , the value of each point in the array at position A(i,j) , i = 2:n is determined by values of its 3-neighbors A(i-1, j-1), A(i-1,j), A(i-1,j+1) according to the given Rule.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSince we consider 3-neighbors, they can have one of 8 possible states (starting with 000 to 111). The Rule number is a decimal number between 1-256 (i.e. 2^8), where its 8-bit Bin form represents the outputs of those 8 possible states as shown in the figure below.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou problem is to generate the Cellular Automaton array given the Rule number and number of iteration to run (n = rows of array).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNOTE: you can plot the result using imagesc(CA) for fun.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\\\\\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e/\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.gif\",\"contentType\":\"image/gif\",\"content\":\"data:image/gif;base64,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\"}]}"}],"term":"tag:\"incorrect testsuite\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"incorrect testsuite\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"incorrect testsuite\"","","\"","incorrect testsuite","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f4a03464390\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f4a034642f0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f4a03460830\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f4a03464930\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f4a03464890\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f4a034644d0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f4a03464430\u003e":"tag:\"incorrect testsuite\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f4a03464430\u003e":"tag:\"incorrect testsuite\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"incorrect testsuite\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"incorrect testsuite\"","","\"","incorrect testsuite","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f4a03464390\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f4a034642f0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f4a03460830\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f4a03464930\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f4a03464890\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f4a034644d0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f4a03464430\u003e":"tag:\"incorrect testsuite\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f4a03464430\u003e":"tag:\"incorrect testsuite\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":42877,"difficulty_rating":"easy-medium"}]}}