private string FindSubChainPart(string line) { List <string> subGroupNames = CarbonSubChain.GetAllNames(); string subGroupName = UtilStrings.FindPattern(line, subGroupNames, UtilStrings.SearchDirection.Backward); return(subGroupName); }
private void GetDoubleAndTripleBondLocations(string line, out List <int> doubleBondLocations, out List <int> tripleBondLocations) { if ((line.EndsWith("yne")) && (line.Contains("en-"))) { doubleBondLocations = UtilStrings.FindSecondLastNumberGroup(line); tripleBondLocations = UtilStrings.FindLastNumberGroup(line); } else if (line.EndsWith("ene")) { doubleBondLocations = UtilStrings.FindLastNumberGroup(line); tripleBondLocations = new List <int>(); } else if (line.EndsWith("yne")) { doubleBondLocations = new List <int>(); tripleBondLocations = UtilStrings.FindLastNumberGroup(line); } else { doubleBondLocations = new List <int>(); tripleBondLocations = new List <int>(); } doubleBondLocations = doubleBondLocations.ConvertAll(l => l - 1); tripleBondLocations = tripleBondLocations.ConvertAll(l => l - 1); }
public void RemoveAllLettersTest() { string line = "2-methyl-3,5,7-nonatriyne"; string noLetters = UtilStrings.RemoveAllLetters(line); Assert.AreEqual("2--3,5,7-", noLetters); }
private string FindMainChainPart(string inline) { List <string> lines = inline.Split("-".ToCharArray()).ToList(); foreach (string line in lines) { if (UtilStrings.ContainsNumber(line)) { continue; } else if (line.EndsWith(Constants.SubChainEnd, StringComparison.OrdinalIgnoreCase)) { continue; } else { if (line.Contains(Constants.EndBracket)) { return(UtilStrings.RemoveEverythingBefore(line, Constants.EndBracket)); } else { return(UtilStrings.RemoveEverythingBefore(line, Constants.SubChainEnd)); } } } return(String.Empty); }
private Transform CreateGroup(AudioClip aClip) { if (_creator.groupTemplate == null) { DTGUIHelper.ShowAlert("Your 'Group Template' field is empty, please assign it in debug mode. Drag the 'DynamicSoundGroup' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode."); return(null); } var groupName = UtilStrings.TrimSpace(aClip.name); var matchingGroup = _groups.Find(delegate(DynamicSoundGroup obj) { return(obj.transform.name == groupName); }); if (matchingGroup != null) { DTGUIHelper.ShowAlert("You already have a Group named '" + groupName + "'. \n\nPlease rename this Group when finished to be unique."); } var spawnedGroup = (GameObject)GameObject.Instantiate(_creator.groupTemplate, _creator.transform.position, Quaternion.identity); spawnedGroup.name = groupName; UndoHelper.CreateObjectForUndo(spawnedGroup, "create Dynamic Group"); spawnedGroup.transform.parent = _creator.transform; CreateVariation(spawnedGroup.transform, aClip); return(spawnedGroup.transform); }
public void FindAllEndingSubstringsTest() { string line = "methylpentyl"; List <string> subStrings = UtilStrings.FindAllEndings(line); Assert.AreEqual(11, subStrings.Count); }
public void SplitOnlyOutsideBracketsTest() { string line = "12-34(56-8-9)3456-4(555-7)"; List <string> lines = UtilStrings.SplitOnlyOutsideBrackets(line, "-", "#"); Assert.AreEqual(3, lines.Count, string.Empty); }
public IUPACCompound(string iupacName) { string mainChainDescription = FindMainChainPart(iupacName); Enums.ChainTypes chaintype; if (mainChainDescription.StartsWith("cyclo")) { chaintype = Enums.ChainTypes.Cyclo; mainChainDescription = UtilStrings.RemoveAtStart(mainChainDescription, "cyclo"); } else { chaintype = Enums.ChainTypes.Straight; } int mainChainLength = CarbonMainChain.FindMainChainLength(mainChainDescription); string remaining; if (iupacName.Contains(Constants.EndBracket)) { remaining = UtilStrings.RemoveEverythingAfter(iupacName, Constants.EndBracket); } else { remaining = UtilStrings.RemoveEverythingAfter(iupacName, Constants.SubChainEnd); } List <int> doubleBondLocations, tripleBondLocations; GetDoubleAndTripleBondLocations(iupacName, out doubleBondLocations, out tripleBondLocations); Formula = new Formula(chaintype, 0, mainChainLength, doubleBondLocations, tripleBondLocations, remaining); }
private List <Formula> GetSubFormulas(string line) { if (String.IsNullOrEmpty(line)) { return(new List <Formula>()); } else { List <Formula> formulas = new List <Formula>(); List <string> lines = UtilStrings.SplitOnlyOutsideBrackets(line, Constants.GroupSeperator, "#"); for (int counter = 0; counter < lines.Count; counter++) { line = lines[counter]; if (line.EndsWith(Constants.SubChainEnd, StringComparison.OrdinalIgnoreCase)) { string locationsString = lines[counter - 1]; Group group = new Group(locationsString, line); formulas.AddRange(group.Formulas); } else if ((line.StartsWith(Constants.StartBracket, StringComparison.OrdinalIgnoreCase)) && (line.EndsWith(Constants.EndBracket, StringComparison.OrdinalIgnoreCase))) { string locationsString = lines[counter - 1]; Group group = new Group(locationsString, line); formulas.AddRange(group.Formulas); } } return(formulas); } }
private bool WriteFile(AudioInfoData audInfo) { StreamWriter writer = null; try { var sb = new StringBuilder(string.Empty); var safeFilter = audInfo.SearchFilter.Replace("'", "").Replace("\"", ""); sb.Append(string.Format("<Files searchFilter='{0}' sortColumn='{1}' sortDir='{2}'>", safeFilter, audInfo.SortColumn, audInfo.SortDir)); foreach (var aud in audInfo.AudioInfor) { var mono = aud.HasChanged ? aud.ForceMono : aud.OrigForceMono; var loadBG = aud.HasChanged ? aud.LoadBG : aud.OrigLoadBG; var preload = aud.HasChanged ? aud.Preload : aud.OrigPreload; var loadType = aud.HasChanged ? aud.LoadType : aud.OrigLoadType; var compressionFormat = aud.HasChanged ? aud.CompressionFormat : aud.OrigCompressionFormat; var quality = aud.HasChanged ? aud.Quality : aud.OrigQuality; var sampleSetting = aud.HasChanged ? aud.SampleRateSetting : aud.OrigSampleRateSetting; var sampleRate = aud.HasChanged ? aud.SampleRateOverride : aud.OrigSampleRateOverride; sb.Append(string.Format("<File path='{0}' name='{1}' forceMono='{2}' loadBG='{3}' preload='{4}' loadType='{5}' compFormat='{6}' quality='{7}' sampleSetting='{8}' sampleRate='{9}' />", UtilStrings.ReplaceUnsafeChars(aud.FullPath), UtilStrings.ReplaceUnsafeChars(aud.Name), mono, loadBG, preload, loadType, compressionFormat, quality, sampleSetting, sampleRate)); } sb.Append("</Files>"); writer = new StreamWriter(CacheFilePath); writer.WriteLine(sb.ToString()); _clipList.AudioInfor.RemoveAll(delegate(AudioInformation obj) { return(obj.HasChanged); }); _filterClips = null; // re-generate the filtered list. } catch (Exception ex) { Debug.LogError("Error occurred constructing or writing audioImportSettings.xml file: " + ex); return(false); } finally { if (writer != null) { writer.Close(); } } return(true); }
public void FindSubGroupTest() { List <string> subGroups = CarbonSubChain.GetAllNames(); string line = "1-methylpentyl"; string subgroup = UtilStrings.FindPattern(line, subGroups, UtilStrings.SearchDirection.Backward); StringAssert.AreEqualIgnoringCase("pentyl", subgroup); }
public void FindLastNumberGroupTest() { string compoundName = "2-methyl-3,5,7-nonatriyne"; List <int> numbers = UtilStrings.FindLastNumberGroup(compoundName); Assert.AreEqual(3, numbers[0]); Assert.AreEqual(5, numbers[1]); Assert.AreEqual(7, numbers[2]); }
public void RemoveAtEndTest() { string line = "1-methylpentyl"; string away = "pentyl"; string stripped = UtilStrings.RemoveAtEnd(line, away); StringAssert.AreEqualIgnoringCase("1-methyl", stripped); }
public IUPACCompound(int locationOnParent, string name) { string chainDescription = FindSubChainPart(name); int chainLength = CarbonSubChain.FindSubChainLength(chainDescription); string remaining = UtilStrings.RemoveAtEnd(name, chainDescription); List <int> doubleBondLocations, tripleBondLocations; GetDoubleAndTripleBondLocations(name, out doubleBondLocations, out tripleBondLocations); Formula = new Formula(Enums.ChainTypes.Straight, locationOnParent, chainLength, doubleBondLocations, tripleBondLocations, remaining); }
public bool IsStringRotation2(string a, string b) { if (a.Length != b.Length) { return(false); } string compositeString = a + a; return(UtilStrings.IsSubstring(compositeString, b)); }
public bool IsStringRotation(string a, string b) { if (a.Length != b.Length) { return(false); } var sortedA = UtilSorting.MergeSort <char>(a.ToList()); var sortedB = UtilSorting.MergeSort <char>(b.ToList()); return(UtilStrings.IsSubstring(sortedA.ToString(), sortedB.ToString())); }
private void CreateVariation(Transform aGroup, AudioClip aClip) { if (_creator.variationTemplate == null) { DTGUIHelper.ShowAlert("Your 'Variation Template' field is empty, please assign it in debug mode. Drag the 'DynamicGroupVariation' prefab from MasterAudio/Sources/Prefabs into that field, then switch back to normal mode."); return; } var resourceFileName = string.Empty; if (_creator.bulkVariationMode == MasterAudio.AudioLocation.ResourceFile) { resourceFileName = DTGUIHelper.GetResourcePath(aClip); if (string.IsNullOrEmpty(resourceFileName)) { resourceFileName = aClip.name; } } var clipName = UtilStrings.TrimSpace(aClip.name); var myGroup = aGroup.GetComponent <DynamicSoundGroup>(); var matches = myGroup.groupVariations.FindAll(delegate(DynamicGroupVariation obj) { return(obj.name == clipName); }); if (matches.Count > 0) { DTGUIHelper.ShowAlert("You already have a variation for this Group named '" + clipName + "'. \n\nPlease rename these variations when finished to be unique, or you may not be able to play them by name if you have a need to."); } var spawnedVar = (GameObject)GameObject.Instantiate(_creator.variationTemplate, _creator.transform.position, Quaternion.identity); spawnedVar.name = clipName; spawnedVar.transform.parent = aGroup; var dynamicVar = spawnedVar.GetComponent <DynamicGroupVariation>(); if (_creator.bulkVariationMode == MasterAudio.AudioLocation.ResourceFile) { dynamicVar.audLocation = MasterAudio.AudioLocation.ResourceFile; dynamicVar.resourceFileName = resourceFileName; } else { dynamicVar.audio.clip = aClip; } }
public static string RemoveMultiplyingAffixName(string line) { List <string> affixNames = GetAllNames(); string affixName = UtilStrings.FindPattern(line, affixNames, UtilStrings.SearchDirection.Forward); if (!String.IsNullOrEmpty(affixName)) { return(UtilStrings.RemoveAtStart(line, affixName)); } else { return(line); } }
private bool WriteFile(AudioInfoData audInfo) { StreamWriter writer = null; try { var sb = new StringBuilder(string.Empty); var safeFilter = audInfo.SearchFilter.Replace("'", "").Replace("\"", ""); sb.Append(string.Format("<Files searchFilter='{0}' sortColumn='{1}' sortDir='{2}'>", safeFilter, audInfo.SortColumn, audInfo.SortDir)); foreach (var aud in audInfo.AudioInfor) { var is3D = aud.HasChanged ? aud.Is3D : aud.OrigIs3D; var bitrate = aud.HasChanged ? aud.CompressionBitrate : aud.OrigCompressionBitrate; var mono = aud.HasChanged ? aud.ForceMono : aud.OrigForceMono; var fmt = aud.HasChanged ? aud.Format : aud.OrigFormat; var loadType = aud.HasChanged ? aud.LoadType : aud.OrigLoadType; sb.Append(string.Format("<File path='{0}' name='{1}' is3d='{2}' bitRate='{3}' forceMono='{4}' format='{5}' loadType='{6}' />", UtilStrings.ReplaceUnsafeChars(aud.FullPath), UtilStrings.ReplaceUnsafeChars(aud.Name), is3D, bitrate, mono, fmt, loadType)); } sb.Append("</Files>"); writer = new StreamWriter(CacheFilePath); writer.WriteLine(sb.ToString()); _clipList.AudioInfor.RemoveAll(delegate(AudioInformation obj) { return(obj.HasChanged); }); } catch (Exception ex) { Debug.LogError("Error occurred constructing or writing audioImportSettings.xml file: " + ex); return(false); } finally { if (writer != null) { writer.Close(); } } return(true); }
private bool WriteFile(AudioInfoData audInfo) { StreamWriter writer = null; try { var sb = new StringBuilder(string.Empty); var safeFilter = audInfo.searchFilter.Replace("'", "").Replace("\"", ""); sb.Append(string.Format("<Files searchFilter='{0}' sortColumn='{1}' sortDir='{2}'>", safeFilter, audInfo.sortColumn, audInfo.sortDir)); for (var i = 0; i < audInfo.audioInfo.Count; i++) { var aud = audInfo.audioInfo[i]; var is3d = aud._hasChanged ? aud._is3d : aud._origIs3d; var bitrate = aud._hasChanged ? aud._compressionBitrate : aud._origCompressionBitrate; var mono = aud._hasChanged ? aud._forceMono : aud._origForceMono; var fmt = aud._hasChanged ? aud._format : aud._origFormat; var loadType = aud._hasChanged ? aud._loadType : aud._origLoadType; sb.Append(string.Format("<File path='{0}' name='{1}' is3d='{2}' bitRate='{3}' forceMono='{4}' format='{5}' loadType='{6}' />", UtilStrings.ReplaceUnsafeChars(aud._fullPath), UtilStrings.ReplaceUnsafeChars(aud._name), is3d, bitrate, mono, fmt.ToString(), loadType)); } sb.Append("</Files>"); writer = new StreamWriter(CACHE_FILE_PATH); writer.WriteLine(sb.ToString()); clipList.audioInfo.RemoveAll(delegate(AudioInfo obj) { return(obj._hasChanged == true); }); } catch (Exception ex) { Debug.LogError("Error occurred constructing or writing audioImportSettings.xml file: " + ex.ToString()); return(false); } finally { writer.Close(); } return(true); }
public void ReplaceBetweenBracketsTest() { string resultaat = UtilStrings.ReplaceBetweenBrackets("12-34(56-8-9)3456-4(555-7)", "-", "#"); StringAssert.AreEqualIgnoringCase("12-34(56#8#9)3456-4(555#7)", resultaat); }