A problem was reported through the Runestone "Report a Problem" form.
[log] Timezone cookie matches, not sending timezone to server
[log] This page served by undefined
[log] triggering runestone:pre-login-complete
[log] Runestone pre-login complete
[log] Loading Runestone component: activecode
[log] Loading Runestone component: multiplechoice
[log] Loading Runestone component: answer
[log] Loading Runestone component: feedback
[log] Loading Runestone component: dragndrop
[log] SpliceWrapper: received message subject: undefined from iframe: unknown
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] before get hist
[log] Populating DragNDrop with premises and responses
[log] Populating DragNDrop with premises and responses
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] Response from server: 200
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] making a new scrubber
[log] Fake change event, skipping the log
[log] Data from server: {"answer":"{\"csawesome2__ch4_str1_drop1\":[\"csawesome2__ch4_str1_drag1\"],\"csawesome2__ch4_str1_drop2\":[\"csawesome2__ch4_str1_drag2\"],\"csawesome2__ch4_str1_drop3\":[\"csawesome2__ch4_str1_drag3\"],\"csawesome2__ch4_str1_drop4\":[\"csawesome2__ch4_str1_drag4\"]}","min_height":249,"correct":true,"percent":1,"timestamp":"2026-09-11T17:59:08.219059+00:00","div_id":"csawesome2__ch4_str1","sid":"oteroA2009","course_name":"Block2","id":4962688} calling repopulateFromStorage
[log] Replacing origElem with containerDiv
[log] resolving checkServer with server data
[log] Data from server: {"answer":"{\"csawesome2__ch4_str2_drop1\":[\"csawesome2__ch4_str2_drag1\"],\"csawesome2__ch4_str2_drop2\":[\"csawesome2__ch4_str2_drag2\"],\"csawesome2__ch4_str2_drop3\":[\"csawesome2__ch4_str2_drag3\"],\"csawesome2__ch4_str2_drop4\":[\"csawesome2__ch4_str2_drag4\"]}","min_height":249,"correct":true,"percent":1,"timestamp":"2026-09-11T18:00:24.932883+00:00","div_id":"csawesome2__ch4_str2","sid":"oteroA2009","course_name":"Block2","id":4962700} calling repopulateFromStorage
[log] Replacing origElem with containerDiv
[log] resolving checkServer with server data
[log] Data from server: {"answer":"1","correct":true,"percent":1,"timestamp":"2026-09-08T12:44:49.698369+00:00","div_id":"csawesome2__qse_1","sid":"oteroA2009","course_name":"Block2","id":98372475} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] Data from server: {"answer":"1","correct":true,"percent":1,"timestamp":"2026-09-11T17:45:49.545637+00:00","div_id":"csawesome2__qsb_3","sid":"oteroA2009","course_name":"Block2","id":98653825} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] Data from server: {"answer":"2","correct":true,"percent":1,"timestamp":"2026-09-11T17:46:54.567033+00:00","div_id":"csawesome2__qsb_3b","sid":"oteroA2009","course_name":"Block2","id":98653983} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] Data from server: {"answer":"3","correct":true,"percent":1,"timestamp":"2026-09-11T17:49:57.553399+00:00","div_id":"csawesome2__qsb_3c","sid":"oteroA2009","course_name":"Block2","id":98654477} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] Data from server: {"answer":"0","correct":true,"percent":1,"timestamp":"2026-09-11T17:50:30.962188+00:00","div_id":"csawesome2__qsb_4b","sid":"oteroA2009","course_name":"Block2","id":98654581} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] Data from server: {"answer":"0","correct":true,"percent":1,"timestamp":"2026-09-11T18:00:41.163492+00:00","div_id":"csawesome2__qsb_8-new","sid":"oteroA2009","course_name":"Block2","id":98655636} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] Data from server: {"answer":"0","correct":true,"percent":1,"timestamp":"2026-09-12T13:27:43.688178+00:00","div_id":"csawesome2__AP-substring","sid":"oteroA2009","course_name":"Block2","id":98684345} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] Data from server: {"answer":"0","correct":true,"percent":1,"timestamp":"2026-09-12T13:28:12.815257+00:00","div_id":"csawesome2__AP-immutable","sid":"oteroA2009","course_name":"Block2","id":98684356} calling repopulateFromStorage
[log] resolving checkServer with server data
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__ch4_str1 undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__ch4_str2 undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qse_1 undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_3 undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_3b undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_3c undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_4b undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_8-new undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__AP-substring undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__AP-immutable undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qse_1_feedback undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_3_feedback undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_3b_feedback undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_3c_feedback undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_4b_feedback undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__qsb_8-new_feedback undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__AP-substring_feedback undefined
[log] MathJax Ready -- dequeing a typesetting run for csawesome2__AP-immutable_feedback undefined
[log] adding video popouts
[log] setting up pretext
[log] running {"div_id":"csawesome2__challenge-PigLatin","code":"import java.util.Scanner;\n\npublic class PigLatin\n{\n public static String pigLatin(String word)\n {\n // Change this to use word.substring to construct\n // the pig latin version of word\n String pigLatin = word;\n pigLatin = (pigLatin.substring(1) + pigLatin.substring(0,1) + \"ay\");\n return pigLatin;\n }\n\n public static void main(String[] args)\n {\n // Do not change main!\n // Write your code in the pigLatin method above.\n Scanner scan = new Scanner(System.in);\n String word = scan.nextLine();\n System.out.println(word + \" in Pig Latin is \" + pigLatin(word) );\n scan.close();\n }\n}\n","language":"java","errinfo":"success","to_save":"False","prefix":"","suffix":"import static org.junit.Assert.*;\n\nimport org.junit.*;\n\nimport java.io.*;\n\npublic class RunestoneTests extends CodeTestHelper\n{\n @Test\n public void testMethod() throws IOException\n {\n Object[] args = {\"java\"};\n String output = getMethodOutput(\"pigLatin\", args);\n String expect = \"avajay\";\n boolean passed = getResults(expect, output,\n \"pigLatin(\\\"java\\\") should return \\\"avajay\\\"\");\n assertTrue(passed);\n }\n @Test\n public void testMethod2() throws IOException\n {\n Object[] args = {\"pig\"};\n String output = getMethodOutput(\"pigLatin\", args);\n String expect = \"igpay\";\n boolean passed = getResults(expect, output,\n \"pigLatin(\\\"pig\\\") should return \\\"igpay\\\"\");\n assertTrue(passed);\n }\n @Test\n public void testContainsSubstring()\n {\n String target = \"word.substring(\";\n int count = countOccurences(getCode(), target);\n boolean passed = count >= 2;\n passed =\n getResults(\n \"2 substring calls\",\n count + \" substring call(s)\",\n \"Code contains calls to substring method\",\n passed);\n assertTrue(passed);\n }\n}\n","partner":"","editDist":0,"changesPerSecond":null,"course":"Block2","clientLoginStatus":true,"timezoneoffset":4}
[log] Save logging event {"act":"percent:66.67:passed:2:failed:1","div_id":"csawesome2__challenge-PigLatin","event":"unittest","course_name":"Block2","clientLoginStatus":true,"timezoneoffset":4}
A problem was reported through the Runestone "Report a Problem" form.
Description
For the pig latin challenge my Substring calls are not counted
Browser console log