{"id":673,"date":"2026-01-21T20:03:40","date_gmt":"2026-01-21T20:03:40","guid":{"rendered":"https:\/\/camilo.matajira.com\/?p=673"},"modified":"2026-01-27T19:16:02","modified_gmt":"2026-01-27T19:16:02","slug":"my-failed-sudoku-solver-in-rust","status":"publish","type":"post","link":"https:\/\/camilo.matajira.com\/?p=673","title":{"rendered":"My failed sudoku solver in Rust"},"content":{"rendered":"\n<p>For this project, I decided to revisit my classic sudoku solver: A project I like to implement whenever I\u2019m learning a new programming language. The sudoku solver was my first personal project which I originally wrote in Java in 2008. Since then, I\u2019ve recreated it in Python (<a href=\"https:\/\/camilo.matajira.com\/?p=220\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/camilo.matajira.com\/?p=220<\/a>) and JavaScript as well.<\/p>\n\n\n\n<p>This time, I was eager to try implementing it in Rust. However, the experience was somewhat lukewarm. While I learned a lot about the language, I wasn\u2019t able to compile the code including the last function (the solver that joined all together.) The code compiled all the way, until the very last step.<\/p>\n\n\n\n<p><strong>The technical issue:<\/strong><br>I wanted to create a linked list of&nbsp;<code>Cell<\/code>&nbsp;objects, where each&nbsp;<code>Cell<\/code>&nbsp;kept a reference to the next&nbsp;<code>Cell<\/code>, and the solver has a <code>Cell<\/code> as parameter,  and a reference&nbsp;to the head of the linked list. To trigger the solver, I needed to provide a mutable reference to the head (the initial&nbsp;<code>Cell<\/code>&nbsp;of the puzzle) as well as another (possibly mutable) reference to the head, so that each&nbsp;<code>Cell<\/code>&nbsp;could compute the &#8220;state&#8221; of the game (see the snippet below).<br>The Rust compiler didn\u2019t allow this, and despite all kinds of acrobatics and efforts, I couldn\u2019t get the code to compile.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>cell_00.solve(&amp;cell_00);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">solve<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cell_00);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>It\u2019s a bit of a bummer, but I learned that Rust is not a language that lets you get away with &#8220;just any&#8221; programming approach. In the world of Rust, a struct cannot have a reference to itself. Having a\u00a0<code>Cell<\/code>\u00a0that references another\u00a0<code>Cell<\/code>\u00a0already requires moving off the beginner&#8217;s happy path (by using\u00a0<code>Box&lt;Cell><\/code>). Having two references of the same object in the same function proved to be extremely difficult.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>struct Cell {\n    i: usize,\n    j: usize,\n    value: usize,\n    next: Option&lt;Box&lt;Cell>>,\n    is_fixed: bool,\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">struct<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Option<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\">&gt;&gt;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Anyway, below is my code (including unit tests), followed by the last compiler error I encountered.<br><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>use std::collections::HashSet;\n\nfn main() {}\n\nstruct Cell {\n    i: usize,\n    j: usize,\n    value: usize,\n    next: Option&lt;Box&lt;Cell>>,\n    is_fixed: bool,\n}\n\nimpl Cell {\n    fn next_value(&amp;mut self) -> Result&lt;(), String> {\n        if self.value == 9 {\n            return Err(\"Something went wrong\".into());\n        }\n        self.value = self.value + 1;\n        Ok(())\n    }\n    fn get_ij(&amp;self, i: usize, j: usize) -> Result&lt;&amp;Cell, String> {\n        if i == 0 &amp;&amp; j == 0 {\n            return Ok(self);\n        } else {\n            let mut current = self;\n            loop {\n                let next = &amp;current.next;\n                current = match next {\n                    Some(current) => current,\n                    None => {\n                        break;\n                    }\n                };\n                if current.i == i &amp;&amp; current.j == j {\n                    return Ok(current);\n                }\n            }\n            return Err(\"Cell not found\".into());\n        }\n    }\n    fn get_set_from_column_i(&amp;self, i: usize) -> Result&lt;HashSet&lt;usize>, String> {\n        let mut answer = HashSet::new();\n\n        if self.i != 0 || self.j != 0 {\n            return Err(\"only valid for the head\".into());\n        } else {\n            let mut current = self;\n            answer.insert(current.value);\n            loop {\n                let next = &amp;current.next;\n                current = match next {\n                    Some(current) => current,\n                    None => {\n                        break;\n                    }\n                };\n                if current.i == i {\n                    answer.insert(current.value);\n                }\n            }\n            return Ok(answer);\n        }\n    }\n    fn get_set_from_row_j(&amp;self, j: usize) -> Result&lt;HashSet&lt;usize>, String> {\n        let mut answer = HashSet::new();\n\n        if self.i != 0 || self.j != 0 {\n            return Err(\"only valid for the head\".into());\n        } else {\n            let mut current = self;\n            answer.insert(current.value);\n            loop {\n                let next = &amp;current.next;\n                current = match next {\n                    Some(current) => current,\n                    None => {\n                        break;\n                    }\n                };\n                if current.j == j {\n                    answer.insert(current.value);\n                }\n            }\n            return Ok(answer);\n        }\n    }\n    fn get_set_from_sub_matrix_ij(&amp;self, i: usize, j: usize) -> Result&lt;HashSet&lt;usize>, String> {\n        let mut answer = HashSet::new();\n        if self.i != 0 || self.j != 0 {\n            return Err(\"only valid for the head\".into());\n        } else {\n            let original_quadrant = get_quadrant_from_ij(i, j);\n            let mut current = self;\n            let current_quadrant = get_quadrant_from_ij(current.i, current.j);\n            if current_quadrant == original_quadrant {\n                answer.insert(current.value);\n            }\n            loop {\n                let next = &amp;current.next;\n                current = match next {\n                    Some(current) => current,\n                    None => {\n                        break;\n                    }\n                };\n                let current_quadrant = get_quadrant_from_ij(current.i, current.j);\n                if current_quadrant == original_quadrant {\n                    answer.insert(current.value);\n                }\n            }\n            return Ok(answer);\n        }\n    }\n    fn is_a_good_candidate_for_column_i(&amp;self, i: usize, candidate: usize) -> bool {\n        let values_column_i = self.get_set_from_column_i(i).unwrap();\n        !values_column_i.contains(&amp;candidate)\n    }\n    fn is_a_good_candidate_for_row_j(&amp;self, j: usize, candidate: usize) -> bool {\n        let values_row_j = self.get_set_from_row_j(j).unwrap();\n        !values_row_j.contains(&amp;candidate)\n    }\n    fn is_a_good_candidate_for_sub_matrix_ij(&amp;self, i: usize, j: usize, candidate: usize) -> bool {\n        let values_quadrant_ij = self.get_set_from_sub_matrix_ij(i, j).unwrap();\n        !values_quadrant_ij.contains(&amp;candidate)\n    }\n    fn solve(&amp;mut self, head: &amp;Cell) -> Result&lt;String, String> {\n        match self.next {\n            Some(_) => println!(\"ok\"),\n            None => return Ok(\"solved\".into()),\n        }\n        if self.is_fixed {\n            self.next.as_mut().expect(\"paila\").solve(&amp;head)\n        } else {\n            for candidate in self.value + 1..10 {\n                if head.is_a_good_candidate_for_column_i(self.i, candidate)\n                    &amp;&amp; head.is_a_good_candidate_for_row_j(self.j, candidate)\n                    &amp;&amp; head.is_a_good_candidate_for_sub_matrix_ij(self.i, self.j, candidate)\n                {\n                    self.value = candidate;\n                    match self.next.as_mut().expect(\"paila\").solve(&amp;head) {\n                        Ok(solution) => return Ok(solution),\n                        Err(_) => continue,\n                    }\n                } else {\n                    continue;\n                }\n            }\n            Err(\"paila\".into())\n        }\n    }\n}\n\n#&#91;derive(PartialEq, Debug)&#93;\nenum SubMatrixQuadrant {\n    Quadrant1,\n    Quadrant2,\n    Quadrant3,\n    Quadrant4,\n    Quadrant5,\n    Quadrant6,\n    Quadrant7,\n    Quadrant8,\n    Quadrant9,\n}\n\nfn get_quadrant_from_ij(x: usize, y: usize) -> SubMatrixQuadrant {\n    match (x, y) {\n        (x, y) if x &lt; 3 &amp;&amp; y &lt; 3 => SubMatrixQuadrant::Quadrant1,\n        (x, y) if x &lt; 3 &amp;&amp; y &lt; 6 => SubMatrixQuadrant::Quadrant2,\n        (x, y) if x &lt; 3 => SubMatrixQuadrant::Quadrant3,\n        (x, y) if x &lt; 6 &amp;&amp; y &lt; 3 => SubMatrixQuadrant::Quadrant4,\n        (x, y) if x &lt; 6 &amp;&amp; y &lt; 6 => SubMatrixQuadrant::Quadrant5,\n        (x, y) if x &lt; 6 => SubMatrixQuadrant::Quadrant6,\n        (x, y) if y &lt; 3 => SubMatrixQuadrant::Quadrant7,\n        (x, y) if y &lt; 6 => SubMatrixQuadrant::Quadrant8,\n        _ => SubMatrixQuadrant::Quadrant9,\n    }\n}\nfn initialize_cells(&amp;initial_conditions: &amp;[&#91;usize; 9&#93;; 9]) -> Box&lt;Cell> {\n    let mut cell_00 = Box::new(Cell {\n        i: 0,\n        j: 0,\n        value: initial_conditions&#91;0&#93;&#91;0&#93;,\n        next: None,\n        is_fixed: initial_conditions&#91;0&#93;&#91;0&#93; > 0,\n    });\n    let mut previous_cell = &amp;mut cell_00;\n    for (i, row_i) in initial_conditions.iter().enumerate() {\n        for (j, value_j) in row_i.iter().enumerate() {\n            if i == 0 &amp;&amp; j == 0 {\n                continue;\n            }\n            let is_fixed = *value_j > (0 as usize);\n            let new_cell = Box::new(Cell {\n                i: j,\n                j: i,\n                value: *value_j,\n                is_fixed: is_fixed,\n                next: None,\n            });\n            previous_cell.next = Some(new_cell);\n            previous_cell = previous_cell.next.as_mut().unwrap();\n        }\n    }\n    return cell_00;\n}\n\n#&#91;cfg(test)&#93;\nmod tests {\n    use super::*;\n\n    #&#91;test&#93;\n    fn test_cell() {\n        let test_1 = Cell {\n            i: 0,\n            j: 1,\n            value: 9,\n            next: None,\n            is_fixed: false,\n        };\n        assert_eq!(test_1.i, 0);\n        assert_eq!(test_1.j, 1);\n    }\n    #&#91;test&#93;\n    fn test_cell_next_value() {\n        let mut test_1 = Cell {\n            i: 0,\n            j: 0,\n            value: 0,\n            next: None,\n            is_fixed: false,\n        };\n        let _ = test_1.next_value();\n        assert_eq!(test_1.value, 1);\n    }\n    #&#91;test&#93;\n    fn test_cell_next_value_9() {\n        let mut test_1 = Cell {\n            i: 0,\n            j: 0,\n            value: 9,\n            next: None,\n            is_fixed: false,\n        };\n        let res = test_1.next_value();\n        assert!(matches!(res, Err(_)), \"expected error, got: {:?}\", res);\n    }\n    #&#91;test&#93;\n    fn test_cell_next_cell() {\n        let test_2 = Box::new(Cell {\n            i: 0,\n            j: 1,\n            value: 1,\n            next: None,\n            is_fixed: false,\n        });\n        let test_1 = Box::new(Cell {\n            i: 0,\n            j: 0,\n            value: 0,\n            next: Some(test_2),\n            is_fixed: false,\n        });\n        let Some(next) = test_1.next else { panic!() };\n        assert_eq!(next.value, 1);\n    }\n    #&#91;test&#93;\n    fn test_initialize() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(cell_00.i, 0);\n        assert_eq!(cell_00.j, 0);\n        assert_eq!(cell_00.value, 5);\n        assert_eq!(cell_00.is_fixed, true);\n\n        let cell_01 = cell_00.next.unwrap();\n        assert_eq!(cell_01.i, 1);\n        assert_eq!(cell_01.j, 0);\n        assert_eq!(cell_01.value, 3);\n        assert_eq!(cell_01.is_fixed, true);\n\n        let cell_02 = cell_01.next.unwrap();\n        assert_eq!(cell_02.i, 2);\n        assert_eq!(cell_02.j, 0);\n        assert_eq!(cell_02.value, 0);\n        assert_eq!(cell_02.is_fixed, false);\n    }\n\n    #&#91;test&#93;\n    fn test_get_ij() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        let result_cell_00 = &amp;cell_00.get_ij(0, 0).unwrap();\n        assert_eq!(result_cell_00.i, 0);\n        assert_eq!(result_cell_00.j, 0);\n        assert_eq!(result_cell_00.value, 5);\n        assert_eq!(result_cell_00.is_fixed, true);\n\n        let cell_40 = &amp;cell_00.get_ij(4, 0).unwrap();\n        assert_eq!(cell_40.i, 4);\n        assert_eq!(cell_40.j, 0);\n        assert_eq!(cell_40.value, 7);\n        assert_eq!(cell_40.is_fixed, true);\n\n        let cell_88 = &amp;cell_00.get_ij(8, 8).unwrap();\n        assert_eq!(cell_88.i, 8);\n        assert_eq!(cell_88.j, 8);\n        assert_eq!(cell_88.value, 9);\n        assert_eq!(cell_88.is_fixed, true);\n    }\n    #&#91;test&#93;\n    fn test_get_column_i() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n        let answer: &#91;usize; 9&#93; = &#91;5, 6, 0, 8, 4, 7, 0, 0, 0&#93;;\n\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(answer, cell_00.get_column_i(0).unwrap());\n    }\n    #&#91;test&#93;\n    fn test_get_set_from_column_i() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n        let mut answer = HashSet::new();\n        for i in &#91;5, 6, 0, 8, 4, 7, 0, 0, 0&#93; {\n            answer.insert(i);\n        }\n\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(answer, cell_00.get_set_from_column_i(0).unwrap());\n    }\n    #&#91;test&#93;\n    fn test_get_row_j() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n        let answer: &#91;usize; 9&#93; = &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;;\n\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(answer, cell_00.get_row_j(0).unwrap());\n    }\n    #&#91;test&#93;\n    fn test_get_set_from_row_j() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n\n        let mut answer = HashSet::new();\n        for i in &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93; {\n            answer.insert(i);\n        }\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(answer, cell_00.get_set_from_row_j(0).unwrap());\n    }\n    #&#91;test&#93;\n    fn test_get_quadrants() {\n        assert_eq!(SubMatrixQuadrant::Quadrant1, get_quadrant_from_ij(0, 0));\n        assert_eq!(SubMatrixQuadrant::Quadrant2, get_quadrant_from_ij(0, 3));\n        assert_eq!(SubMatrixQuadrant::Quadrant9, get_quadrant_from_ij(8, 8));\n        assert_eq!(SubMatrixQuadrant::Quadrant5, get_quadrant_from_ij(4, 4));\n    }\n    #&#91;test&#93;\n    fn test_get_set_from_sub_matrix_ij() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n\n        let mut answer = HashSet::new();\n        for i in &#91;5, 3, 0, 6, 0, 0, 0, 9, 8&#93; {\n            answer.insert(i);\n        }\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(answer, cell_00.get_set_from_sub_matrix_ij(0, 0).unwrap());\n        let mut answer = HashSet::new();\n        for i in &#91;8, 0, 0, 4, 0, 0, 7, 0, 0&#93; {\n            answer.insert(i);\n        }\n        assert_eq!(answer, cell_00.get_set_from_sub_matrix_ij(0, 3).unwrap());\n        let mut answer = HashSet::new();\n        for i in &#91;2, 8, 0, 0, 0, 5, 0, 7, 9&#93; {\n            answer.insert(i);\n        }\n        assert_eq!(answer, cell_00.get_set_from_sub_matrix_ij(7, 7).unwrap());\n        let mut answer = HashSet::new();\n        for i in &#91;0, 6, 0, 8, 0, 3, 0, 2, 0&#93; {\n            answer.insert(i);\n        }\n        assert_eq!(answer, cell_00.get_set_from_sub_matrix_ij(3, 3).unwrap());\n    }\n    #&#91;test&#93;\n    fn test_is_a_good_candidate_for_column_i() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(cell_00.is_a_good_candidate_for_column_i(0, 5), false);\n        assert_eq!(cell_00.is_a_good_candidate_for_column_i(0, 9), true);\n    }\n    #&#91;test&#93;\n    fn test_is_a_good_candidate_for_row_j() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(cell_00.is_a_good_candidate_for_row_j(0, 5), false);\n        assert_eq!(cell_00.is_a_good_candidate_for_row_j(0, 7), false);\n        assert_eq!(cell_00.is_a_good_candidate_for_row_j(0, 3), false);\n        assert_eq!(cell_00.is_a_good_candidate_for_row_j(0, 9), true);\n    }\n    #&#91;test&#93;\n    fn test_is_a_good_candidate_for_quadrant_ij() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        assert_eq!(\n            cell_00.is_a_good_candidate_for_sub_matrix_ij(1, 1, 5),\n            false\n        );\n        assert_eq!(\n            cell_00.is_a_good_candidate_for_sub_matrix_ij(8, 8, 2),\n            false\n        );\n        assert_eq!(cell_00.is_a_good_candidate_for_sub_matrix_ij(8, 8, 3), true);\n    }\n    #&#91;test&#93;\n    fn test_solve() {\n        let initial_conditions = [\n            &#91;5, 3, 0, 0, 7, 0, 0, 0, 0&#93;,\n            &#91;6, 0, 0, 1, 9, 5, 0, 0, 0&#93;,\n            &#91;0, 9, 8, 0, 0, 0, 0, 6, 0&#93;,\n            &#91;8, 0, 0, 0, 6, 0, 0, 0, 3&#93;,\n            &#91;4, 0, 0, 8, 0, 3, 0, 0, 1&#93;,\n            &#91;7, 0, 0, 0, 2, 0, 0, 0, 6&#93;,\n            &#91;0, 6, 0, 0, 0, 0, 2, 8, 0&#93;,\n            &#91;0, 0, 0, 4, 1, 9, 0, 0, 5&#93;,\n            &#91;0, 0, 0, 0, 8, 0, 0, 7, 9&#93;,\n        ];\n\n        let cell_00 = initialize_cells(&amp;initial_conditions);\n        static GLOBAL_HEAD: Box&lt;Cell> = initialize_cells(&amp;initial_conditions);\n\n        cell_00.solve(&amp;cell_00);\n    }\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #FF79C6\">use<\/span><span style=\"color: #F8F8F2\"> std<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #F8F8F2\">collections<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">main<\/span><span style=\"color: #F8F8F2\">() {}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">struct<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Option<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\">&gt;&gt;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">impl<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">next_value<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;mut<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Result<\/span><span style=\"color: #F8F8F2\">&lt;(), <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;Something went wrong&quot;<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">into<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value <\/span><span style=\"color: #FF79C6\">+<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">, j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Result<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> j <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        } <\/span><span style=\"color: #FF79C6\">else<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">loop<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> next <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> next {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(current) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> current,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #FF79C6\">break<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> j {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(current);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;Cell not found&quot;<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">into<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_set_from_column_i<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Result<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">&gt;, <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i <\/span><span style=\"color: #FF79C6\">!=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">||<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j <\/span><span style=\"color: #FF79C6\">!=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;only valid for the head&quot;<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">into<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        } <\/span><span style=\"color: #FF79C6\">else<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">loop<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> next <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> next {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(current) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> current,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #FF79C6\">break<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> i {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(answer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_set_from_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Result<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">&gt;, <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i <\/span><span style=\"color: #FF79C6\">!=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">||<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j <\/span><span style=\"color: #FF79C6\">!=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;only valid for the head&quot;<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">into<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        } <\/span><span style=\"color: #FF79C6\">else<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">loop<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> next <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> next {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(current) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> current,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #FF79C6\">break<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> j {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(answer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_set_from_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">, j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Result<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">&gt;, <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i <\/span><span style=\"color: #FF79C6\">!=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">||<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j <\/span><span style=\"color: #FF79C6\">!=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;only valid for the head&quot;<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">into<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        } <\/span><span style=\"color: #FF79C6\">else<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> original_quadrant <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(i, j);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> current_quadrant <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> current_quadrant <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> original_quadrant {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">loop<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> next <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                current <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> next {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(current) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> current,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #FF79C6\">break<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> current_quadrant <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> current_quadrant <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> original_quadrant {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(current<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(answer);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_column_i<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">, candidate<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> values_column_i <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_column_i<\/span><span style=\"color: #F8F8F2\">(i)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">!<\/span><span style=\"color: #F8F8F2\">values_column_i<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">contains<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">candidate)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">, candidate<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> values_row_j <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_row_j<\/span><span style=\"color: #F8F8F2\">(j)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">!<\/span><span style=\"color: #F8F8F2\">values_row_j<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">contains<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">candidate)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">, j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">, candidate<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">bool<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> values_quadrant_ij <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(i, j)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">!<\/span><span style=\"color: #F8F8F2\">values_quadrant_ij<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">contains<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">candidate)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">solve<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;mut<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #F8F8F2\">, head<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Result<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">String<\/span><span style=\"color: #F8F8F2\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(_) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">println!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;ok&quot;<\/span><span style=\"color: #F8F8F2\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;solved&quot;<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">into<\/span><span style=\"color: #F8F8F2\">()),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">is_fixed {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">as_mut<\/span><span style=\"color: #F8F8F2\">()<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">expect<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;paila&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">solve<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">head)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        } <\/span><span style=\"color: #FF79C6\">else<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> candidate <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value <\/span><span style=\"color: #FF79C6\">+<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #FF79C6\">..<\/span><span style=\"color: #BD93F9\">10<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> head<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_column_i<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, candidate)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> head<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, candidate)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> head<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, candidate)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> candidate;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">self<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">as_mut<\/span><span style=\"color: #F8F8F2\">()<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">expect<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;paila&quot;<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">solve<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">head) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(solution) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Ok<\/span><span style=\"color: #F8F8F2\">(solution),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                        <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(_) <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">continue<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                } <\/span><span style=\"color: #FF79C6\">else<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                    <\/span><span style=\"color: #FF79C6\">continue<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #F1FA8C\">&quot;paila&quot;<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">into<\/span><span style=\"color: #F8F8F2\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">#&#91;derive(<\/span><span style=\"color: #8BE9FD; font-style: italic\">PartialEq<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">Debug<\/span><span style=\"color: #F8F8F2\">)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">enum<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant1<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant2<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant3<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant4<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant5<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant6<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant7<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant8<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant9<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(x<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">, y<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">match<\/span><span style=\"color: #F8F8F2\"> (x, y) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> x <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> y <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant1<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> x <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> y <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant2<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> x <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant3<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> x <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> y <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant4<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> x <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> y <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant5<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> x <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant6<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> y <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant7<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        (x, y) <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> y <\/span><span style=\"color: #FF79C6\">&lt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant8<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        _ <\/span><span style=\"color: #FF79C6\">=&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant9<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">[&#91;<\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">; <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;; <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">]) <\/span><span style=\"color: #FF79C6\">-&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\">&gt; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> initial_conditions&#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;&#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> initial_conditions&#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;&#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93; <\/span><span style=\"color: #FF79C6\">&gt;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    });<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> previous_cell <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;mut<\/span><span style=\"color: #F8F8F2\"> cell_00;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> (i, row_i) <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> initial_conditions<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">iter<\/span><span style=\"color: #F8F8F2\">()<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">enumerate<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> (j, value_j) <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> row_i<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">iter<\/span><span style=\"color: #F8F8F2\">()<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">enumerate<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">if<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> j <\/span><span style=\"color: #FF79C6\">==<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                <\/span><span style=\"color: #FF79C6\">continue<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> is_fixed <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">*<\/span><span style=\"color: #F8F8F2\">value_j <\/span><span style=\"color: #FF79C6\">&gt;<\/span><span style=\"color: #F8F8F2\"> (<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> new_cell <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> j,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> i,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">*<\/span><span style=\"color: #F8F8F2\">value_j,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> is_fixed,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">                next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            });<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            previous_cell<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(new_cell);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            previous_cell <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> previous_cell<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">as_mut<\/span><span style=\"color: #F8F8F2\">()<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">return<\/span><span style=\"color: #F8F8F2\"> cell_00;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">#&#91;cfg(test)&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #FF79C6\">mod<\/span><span style=\"color: #F8F8F2\"> tests {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">use<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9; font-style: italic\">super<\/span><span style=\"color: #FF79C6\">::*<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_cell<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_1 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(test_1<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(test_1<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_cell_next_value<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> test_1 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> _ <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> test_1<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">next_value<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(test_1<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_cell_next_value_9<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> test_1 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> res <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> test_1<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">next_value<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #50FA7B\">matches!<\/span><span style=\"color: #F8F8F2\">(res, <\/span><span style=\"color: #8BE9FD; font-style: italic\">Err<\/span><span style=\"color: #F8F8F2\">(_)), <\/span><span style=\"color: #F1FA8C\">&quot;expected error, got: {:?}&quot;<\/span><span style=\"color: #F8F8F2\">, res);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_cell_next_cell<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_2 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">None<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        });<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> test_1 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            i<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            j<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            value<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            next<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(test_2),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            is_fixed<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        });<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\">(next) <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> test_1<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next <\/span><span style=\"color: #FF79C6\">else<\/span><span style=\"color: #F8F8F2\"> { <\/span><span style=\"color: #50FA7B\">panic!<\/span><span style=\"color: #F8F8F2\">() };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(next<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_initialize<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">is_fixed, <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_01 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_01<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_01<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_01<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_01<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">is_fixed, <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_02 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> cell_01<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">next<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_02<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_02<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_02<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_02<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">is_fixed, <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_get_ij<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> result_cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(result_cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(result_cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(result_cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(result_cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">is_fixed, <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_40 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_40<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_40<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_40<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_40<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">is_fixed, <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_88 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_88<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">i, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_88<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">j, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_88<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">value, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_88<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">is_fixed, <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_get_column_i<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> answer<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">; <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93; <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_column_i<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_get_set_from_column_i<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_column_i<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_get_row_j<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> answer<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #8BE9FD; font-style: italic\">usize<\/span><span style=\"color: #F8F8F2\">; <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93; <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_get_set_from_row_j<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_get_quadrants<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #8BE9FD; font-style: italic\">SubMatrixQuadrant<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #8BE9FD; font-style: italic\">Quadrant5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #50FA7B\">get_quadrant_from_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_get_set_from_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">&#93; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">mut<\/span><span style=\"color: #F8F8F2\"> answer <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">HashSet<\/span><span style=\"color: #FF79C6\">::<\/span><span style=\"color: #50FA7B\">new<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">for<\/span><span style=\"color: #F8F8F2\"> i <\/span><span style=\"color: #FF79C6\">in<\/span><span style=\"color: #F8F8F2\"> &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93; {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            answer<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">insert<\/span><span style=\"color: #F8F8F2\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(answer, cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">get_set_from_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">)<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">unwrap<\/span><span style=\"color: #F8F8F2\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_is_a_good_candidate_for_column_i<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_column_i<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">), <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_column_i<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">), <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_is_a_good_candidate_for_row_j<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">), <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">), <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">), <\/span><span style=\"color: #BD93F9\">false<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_row_j<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">), <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_is_a_good_candidate_for_quadrant_ij<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #BD93F9\">false<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            <\/span><span style=\"color: #BD93F9\">false<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #50FA7B\">assert_eq!<\/span><span style=\"color: #F8F8F2\">(cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">is_a_good_candidate_for_sub_matrix_ij<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">), <\/span><span style=\"color: #BD93F9\">true<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    #&#91;test&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">fn<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">test_solve<\/span><span style=\"color: #F8F8F2\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> initial_conditions <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> [<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">3<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">6<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">2<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">4<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">1<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">            &#91;<\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">8<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">0<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">7<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #BD93F9\">9<\/span><span style=\"color: #F8F8F2\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        ];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">let<\/span><span style=\"color: #F8F8F2\"> cell_00 <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        <\/span><span style=\"color: #FF79C6\">static<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #BD93F9\">GLOBAL_HEAD<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">Box<\/span><span style=\"color: #F8F8F2\">&lt;<\/span><span style=\"color: #8BE9FD; font-style: italic\">Cell<\/span><span style=\"color: #F8F8F2\">&gt; <\/span><span style=\"color: #FF79C6\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #50FA7B\">initialize_cells<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">initial_conditions);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">        cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">solve<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cell_00);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Below the compiler error:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#F8F8F2;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>cargo test\n(...)\nerror&#91;E0502&#93;: cannot borrow `*cell_00` as mutable because it is also borrowed as immutable\n   --> src\/main.rs:532:9\n    |\n532 |         cell_00.solve(&amp;cell_00);\n    |         ^^^^^^^^-----^--------^\n    |         |       |     |\n    |         |       |     immutable borrow occurs here\n    |         |       immutable borrow later used by call\n    |         mutable borrow occurs here\n\nSome errors have detailed explanations: E0435, E0502, E0596, E0599.\nFor more information about an error, try `rustc --explain E0435`.\nerror: could not compile `sudoku_rust` (bin \"sudoku_rust\" test) due to 5 previous errors\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F8F8F2\">cargo test<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">...<\/span><span style=\"color: #F8F8F2\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">error&#91;<\/span><span style=\"color: #8BE9FD; font-style: italic\">E0502<\/span><span style=\"color: #F8F8F2\">&#93;<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> cannot borrow `<\/span><span style=\"color: #FF79C6\">*<\/span><span style=\"color: #F8F8F2\">cell_00` <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> mutable because it is also borrowed <\/span><span style=\"color: #FF79C6\">as<\/span><span style=\"color: #F8F8F2\"> immutable<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">   <\/span><span style=\"color: #FF79C6\">--&gt;<\/span><span style=\"color: #F8F8F2\"> src<\/span><span style=\"color: #FF79C6\">\/<\/span><span style=\"color: #F8F8F2\">main<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #F8F8F2\">rs<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #BD93F9\">532<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #BD93F9\">9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #BD93F9\">532<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">         cell_00<\/span><span style=\"color: #FF79C6\">.<\/span><span style=\"color: #50FA7B\">solve<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #FF79C6\">&amp;<\/span><span style=\"color: #F8F8F2\">cell_00);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">         <\/span><span style=\"color: #FF79C6\">^^^^^^^^-----^--------^<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">         <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">       <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">     <\/span><span style=\"color: #FF79C6\">|<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">         <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">       <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">     immutable borrow occurs here<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">         <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">       immutable borrow later used by call<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">    <\/span><span style=\"color: #FF79C6\">|<\/span><span style=\"color: #F8F8F2\">         mutable borrow occurs here<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #8BE9FD; font-style: italic\">Some<\/span><span style=\"color: #F8F8F2\"> errors have detailed explanations<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #8BE9FD; font-style: italic\">E0435<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">E0502<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">E0596<\/span><span style=\"color: #F8F8F2\">, <\/span><span style=\"color: #8BE9FD; font-style: italic\">E0599<\/span><span style=\"color: #FF79C6\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #8BE9FD; font-style: italic\">For<\/span><span style=\"color: #F8F8F2\"> more information about an error, <\/span><span style=\"color: #FF79C6\">try<\/span><span style=\"color: #F8F8F2\"> `rustc <\/span><span style=\"color: #FF79C6\">--<\/span><span style=\"color: #F8F8F2\">explain <\/span><span style=\"color: #8BE9FD; font-style: italic\">E0435<\/span><span style=\"color: #F8F8F2\">`<\/span><span style=\"color: #FF79C6\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">error<\/span><span style=\"color: #FF79C6\">:<\/span><span style=\"color: #F8F8F2\"> could not compile `sudoku_rust` (bin <\/span><span style=\"color: #F1FA8C\">&quot;sudoku_rust&quot;<\/span><span style=\"color: #F8F8F2\"> test) due to <\/span><span style=\"color: #BD93F9\">5<\/span><span style=\"color: #F8F8F2\"> previous errors<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>For this project, I decided to revisit my classic sudoku solver: A project I like to implement whenever I\u2019m learning a new programming language. The sudoku solver was my first personal project which I originally wrote in Java in 2008. Since then, I\u2019ve recreated it in Python (https:\/\/camilo.matajira.com\/?p=220) and JavaScript as well. This time, I&#8230;<\/p>\n","protected":false},"author":1,"featured_media":665,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-673","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects"],"_links":{"self":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts\/673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=673"}],"version-history":[{"count":3,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts\/673\/revisions"}],"predecessor-version":[{"id":677,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/posts\/673\/revisions\/677"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=\/wp\/v2\/media\/665"}],"wp:attachment":[{"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/camilo.matajira.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}